# Vault

Check [examples](https://docs.ston.fi/developer-section/dex/smart-contracts/v2/examples/vault) for in-depth message flow.

## Off-chain get methods

### `get_vault_data`

Returns `Vault` data

```
(slice, slice, slice, int) get_vault_data() method_id;
```

#### **Arguments**

`None`

#### **Result**

Returns `VaultData` structure containing current state of the `Vault`.

**`VaultData` structure**

| Key                | Type      | Index | Description                                      |
| ------------------ | --------- | ----- | ------------------------------------------------ |
| `owner_address`    | `address` | 0     | Owner of this `Vault`                            |
| `token_address`    | `address` | 1     | Address of `Router`'s jetton wallet for s token' |
| `router_address`   | `address` | 2     | `Router`'s address                               |
| `deposited_amount` | `bigint`  | 3     | Amount of tokens collected                       |

## Any operation handlers

Handles calls from unspecified addresses

### `withdraw_fee` (0x354bcdf4)

Send collected tokens to the owner of the `Vault`.

#### **TL-B**

```
withdraw_fee#354bcdf4 query_id:uint64 = InternalMsgBody;
```

#### **Message body**

| Name       | Type     | Description    |
| ---------- | -------- | -------------- |
| `op`       | `uint32` | Operation code |
| `query_id` | `uint64` | Query id       |

#### **Outgoing messages**

Sends a message with `vault_pay_to` op code to the router contract with the amount of token to be payed.

## Internal message handlers

Handles calls from the `Router`

### `deposit_ref_fee` (0x0490f09b)

Increase ref fee tracker for the user.

#### **TL-B**

```
deposit_ref_fee#490f09b query_id:uint64 jetton_amount:Coins excesses_address:MsgAddress = InternalMsgBody;
```

#### **Message body**

| Name               | Type      | Description                     |
| ------------------ | --------- | ------------------------------- |
| `op`               | `uint32`  | Operation code                  |
| `query_id`         | `uint64`  | Query id                        |
| `jetton_amount`    | `bigint`  | Amount of the tokens            |
| `excesses_address` | `address` | Address to receive TON excesses |

#### **Outgoing messages**

Sends excesses to `excesses_address`.
