# StarknetSpvVaultData

Defined in: [atomiq-chain-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:43](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L43)

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

## Extends

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

## Constructors

### Constructor

```
new StarknetSpvVaultData(args): StarknetSpvVaultData;
```

Defined in: [atomiq-chain-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:71](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L71)

Creates a new spv vault data based on the provided arguments

#### Parameters

| Parameter | Type                           | Description |
| --------- | ------------------------------ | ----------- |
| `args`    | `StarknetSpvVaultDataCtorArgs` |             |

#### Returns

`StarknetSpvVaultData`

#### 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 StarknetSpvVaultData(data): StarknetSpvVaultData;
```

Defined in: [atomiq-chain-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:78](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L78)

Deserializes the spv vault data from its serialized implementation (returned from [StarknetSpvVaultData.serialize](#serialize))

#### Parameters

| Parameter | Type                                            | Description |
| --------- | ----------------------------------------------- | ----------- |
| `data`    | `Serialized`<`StarknetSpvVaultData`> & `object` |             |

#### Returns

`StarknetSpvVaultData`

#### Overrides

```
SpvVaultData<StarknetSpvWithdrawalData>.constructor
```

## Properties

### confirmations

```
readonly confirmations: number;
```

Defined in: [atomiq-chain-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:60](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L60)

***

### depositCount

```
depositCount: number;
```

Defined in: [atomiq-chain-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:64](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L64)

***

### 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-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:59](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L59)

***

### owner

```
readonly owner: string;
```

Defined in: [atomiq-chain-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:45](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L45)

***

### relayContract

```
readonly relayContract: string;
```

Defined in: [atomiq-chain-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:48](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L48)

***

### token0

```
readonly token0: object;
```

Defined in: [atomiq-chain-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:49](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L49)

#### multiplier

```
multiplier: bigint;
```

#### rawAmount

```
rawAmount: bigint;
```

#### token

```
token: string;
```

***

### token1

```
readonly token1: object;
```

Defined in: [atomiq-chain-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:54](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L54)

#### multiplier

```
multiplier: bigint;
```

#### rawAmount

```
rawAmount: bigint;
```

#### token

```
token: string;
```

***

### utxo

```
utxo: string;
```

Defined in: [atomiq-chain-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:62](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L62)

***

### vaultId

```
readonly vaultId: bigint;
```

Defined in: [atomiq-chain-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:46](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L46)

***

### withdrawCount

```
withdrawCount: number;
```

Defined in: [atomiq-chain-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:63](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L63)

## 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` | [`StarknetSpvWithdrawalData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSpvWithdrawalData.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-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:131](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L131)

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-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:141](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L141)

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-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:253](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L253)

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-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:148](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L148)

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-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:155](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L155)

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-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:162](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L162)

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-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:169](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L169)

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-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:176](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L176)

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-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:183](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L183)

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(): Serialized<StarknetSpvVaultData> & object;
```

Defined in: [atomiq-chain-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:190](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L190)

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

#### Returns

`Serialized`<`StarknetSpvVaultData`> & `object`

#### 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-starknet/src/starknet/spv\_swap/StarknetSpvVaultData.ts:217](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/spv_swap/StarknetSpvVaultData.ts#L217)

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` \| [`StarknetSpvWithdrawalData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSpvWithdrawalData.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)
