# EVMSpvVaultData

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:46](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L46)

Represents the state of the EVM SPV vault (UTXO-controlled vault).

## Extends

* [`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md)<[`EVMSpvWithdrawalData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSpvWithdrawalData.md)>

## Constructors

### Constructor

```
new EVMSpvVaultData(

   owner, 

   vaultId, 

   state, 

   params, 

   initialUtxo?): EVMSpvVaultData;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:68](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L68)

#### Parameters

| Parameter      | Type                       |
| -------------- | -------------------------- |
| `owner`        | `string`                   |
| `vaultId`      | `bigint`                   |
| `state`        | `SpvVaultStateStruct`      |
| `params`       | `SpvVaultParametersStruct` |
| `initialUtxo?` | `string`                   |

#### Returns

`EVMSpvVaultData`

#### Overrides

[`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md).[`constructor`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md#constructor)

### Constructor

```
new EVMSpvVaultData(serializedObj): EVMSpvVaultData;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:69](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L69)

#### Parameters

| Parameter       | Type  |
| --------------- | ----- |
| `serializedObj` | `any` |

#### Returns

`EVMSpvVaultData`

#### Overrides

```
SpvVaultData<EVMSpvWithdrawalData>.constructor
```

## Properties

### confirmations

```
readonly confirmations: number;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:64](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L64)

***

### depositCount

```
depositCount: number;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:66](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L66)

***

### deserializers

```
static deserializers: object = {};
```

Defined in: [atomiq-base/src/spv\_swap/SpvVaultData.ts:50](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/spv_swap/SpvVaultData.ts#L50)

A mapping of deserializers for different spv vault data types coming from different smart chain implementations

#### Index Signature

```
[type: string]: (serialized) => any
```

#### Inherited from

[`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md).[`deserializers`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md#deserializers)

***

### initialUtxo?

```
readonly optional initialUtxo: string;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:62](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L62)

***

### owner

```
readonly owner: string;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:48](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L48)

***

### relayContract

```
readonly relayContract: string;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:51](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L51)

***

### token0

```
readonly token0: object;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:52](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L52)

#### multiplier

```
multiplier: bigint;
```

#### rawAmount

```
rawAmount: bigint;
```

#### token

```
token: string;
```

***

### token1

```
readonly token1: object;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:57](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L57)

#### multiplier

```
multiplier: bigint;
```

#### rawAmount

```
rawAmount: bigint;
```

#### token

```
token: string;
```

***

### utxo

```
utxo: string;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:63](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L63)

***

### vaultId

```
readonly vaultId: bigint;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:49](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L49)

***

### withdrawCount

```
withdrawCount: number;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:65](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L65)

## Methods

### calculateStateAfter()

```
calculateStateAfter(priorWithdrawalTxs): object;
```

Defined in: [atomiq-base/src/spv\_swap/SpvVaultData.ts:129](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/spv_swap/SpvVaultData.ts#L129)

A helper function which calculates the vault balances after processing an array of claims (withdrawals)

#### Parameters

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

#### Returns

`object`

| Name              | Type                      | Defined in                                                                                                                                                                 |
| ----------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `balances`        | `SpvVaultTokenBalance`\[] | [atomiq-base/src/spv\_swap/SpvVaultData.ts:129](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/spv_swap/SpvVaultData.ts#L129) |
| `withdrawalCount` | `number`                  | [atomiq-base/src/spv\_swap/SpvVaultData.ts:129](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/spv_swap/SpvVaultData.ts#L129) |

#### Inherited from

[`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md).[`calculateStateAfter`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md#calculatestateafter)

***

### deserialize()

```
static deserialize<T>(data): T;
```

Defined in: [atomiq-base/src/spv\_swap/SpvVaultData.ts:59](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/spv_swap/SpvVaultData.ts#L59)

Deserializer parsing the chain-specific spv vault data from a JSON-compatible object representation

#### Type Parameters

| Type Parameter                                                                                                                                                                                                                                                 |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `T` *extends* [`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md)<[`SpvWithdrawalTransactionData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvWithdrawalTransactionData.md)> |

#### Parameters

| Parameter | Type  | Description |
| --------- | ----- | ----------- |
| `data`    | `any` |             |

#### Returns

`T`

#### Inherited from

[`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md).[`deserialize`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md#deserialize)

***

### getBalances()

```
getBalances(): SpvVaultTokenBalance[];
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:120](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L120)

Returns the token balance currently available in the vault

#### Returns

`SpvVaultTokenBalance`\[]

#### Overrides

[`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md).[`getBalances`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md#getbalances)

***

### getConfirmations()

```
getConfirmations(): number;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:130](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L130)

Gets the required number of confirmations that a bitcoin transaction has to get in order for the vault claim (withdrawal) to be authorized

#### Returns

`number`

#### Overrides

[`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md).[`getConfirmations`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md#getconfirmations)

***

### getDepositCount()

```
getDepositCount(): number;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:242](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L242)

Returns the current number of deposits deposited into the vault

#### Returns

`number`

#### Overrides

[`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md).[`getDepositCount`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md#getdepositcount)

***

### getOwner()

```
getOwner(): string;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:137](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L137)

Gets the owner of the vault

#### Returns

`string`

#### Overrides

[`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md).[`getOwner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md#getowner)

***

### getTokenData()

```
getTokenData(): SpvVaultTokenData[];
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:144](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L144)

Returns the configuration of the tokens supported by the vault

#### Returns

`SpvVaultTokenData`\[]

#### Overrides

[`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md).[`getTokenData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md#gettokendata)

***

### getUtxo()

```
getUtxo(): string;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:151](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L151)

Returns the UTXO in \[txId]:\[vout] format which currently controls the vault

#### Returns

`string`

#### Overrides

[`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md).[`getUtxo`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md#getutxo)

***

### getVaultId()

```
getVaultId(): bigint;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:158](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L158)

Gets the vault ID, this along with the owner uniquely identifies a vault

#### Returns

`bigint`

#### Overrides

[`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md).[`getVaultId`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md#getvaultid)

***

### getWithdrawalCount()

```
getWithdrawalCount(): number;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:165](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L165)

Returns the current number of claims (withdrawals) processed by the vault

#### Returns

`number`

#### Overrides

[`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md).[`getWithdrawalCount`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md#getwithdrawalcount)

***

### isOpened()

```
isOpened(): boolean;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:172](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L172)

Checks whether a vault is opened and available to process claims (withdrawals)

#### Returns

`boolean`

#### Overrides

[`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md).[`isOpened`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md#isopened)

***

### serialize()

```
serialize(): any;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:179](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L179)

Serializes the object to a JSON-compatible object (i.e. no bigints, functions, etc.)

#### Returns

`any`

#### Overrides

[`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md).[`serialize`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md#serialize)

***

### updateState()

```
updateState(withdrawalTxOrEvent): void;
```

Defined in: [atomiq-chain-evm/src/evm/spv\_swap/EVMSpvVaultData.ts:206](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/spv_swap/EVMSpvVaultData.ts#L206)

Updates the state of the spv vault data from either an on-chain event or a [SpvWithdrawalTransactionData](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvWithdrawalTransactionData.md)

#### Parameters

| Parameter             | Type                                                                                                                                                                                                                              | Description |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `withdrawalTxOrEvent` | \| `SpvVaultOpenEvent` \| `SpvVaultDepositEvent` \| `SpvVaultClaimEvent` \| `SpvVaultCloseEvent` \| [`EVMSpvWithdrawalData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSpvWithdrawalData.md) |             |

#### Returns

`void`

#### Overrides

[`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md).[`updateState`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md#updatestate)
