# Structures

#### VrswStake

```solidity
struct VrswStake {
    uint128 startTs;
    uint128 lockDuration;
    SD59x18 discountFactor;
    SD59x18 amount;
}
```

The Stake structure represents a single VRSW staking/locking position

Contains the following members:

* startTs - start time of the staking position
* lockDuration - lock duration of the current posisiton (0 if position is not locked)
* discountFactor - discount factor for the current position equals exp(lockDuration \* r). Used in formula (3) in [Virtuswap Tokenomics Whitepaper](https://virtuswap.io/docs/Tokenomics-VirtuSwap-Apr-4-2023.pdf)
* amount - amount of tokens staked in the current position

#### LpStake

```solidity
struct LpStake {
    address lpToken;
    SD59x18 amount;
}
```

The Stake structure represents a single LP token staking position
