# IVotingEscrow









## Methods

### balanceOf

```solidity
function balanceOf(address addr, uint256 _t) external view returns (uint256)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| addr | address | undefined |
| _t | uint256 | undefined |

#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | uint256 | undefined |

### balanceOf

```solidity
function balanceOf(address addr) external view returns (uint256)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| addr | address | undefined |

#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | uint256 | undefined |

### balanceOfAt

```solidity
function balanceOfAt(address addr, uint256 _block) external view returns (uint256)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| addr | address | undefined |
| _block | uint256 | undefined |

#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | uint256 | undefined |

### checkpoint

```solidity
function checkpoint() external nonpayable
```






### createLock

```solidity
function createLock(uint256 _value, uint256 _duration) external nonpayable
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| _value | uint256 | undefined |
| _duration | uint256 | undefined |

### createLockFor

```solidity
function createLockFor(address _addr, uint256 _value, uint256 _discount, uint256 _duration) external nonpayable
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| _addr | address | undefined |
| _value | uint256 | undefined |
| _discount | uint256 | undefined |
| _duration | uint256 | undefined |

### decimals

```solidity
function decimals() external view returns (uint8)
```






#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | uint8 | undefined |

### delegateAt

```solidity
function delegateAt(address account, uint256 index) external view returns (address)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| account | address | undefined |
| index | uint256 | undefined |

#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | address | undefined |

### delegateLength

```solidity
function delegateLength(address addr) external view returns (uint256)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| addr | address | undefined |

#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | uint256 | undefined |

### depositFor

```solidity
function depositFor(address _addr, uint256 _value) external nonpayable
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| _addr | address | undefined |
| _value | uint256 | undefined |

### epoch

```solidity
function epoch() external view returns (uint256)
```






#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | uint256 | undefined |

### getCheckpointTime

```solidity
function getCheckpointTime(address _addr, uint256 _idx) external view returns (uint256)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| _addr | address | undefined |
| _idx | uint256 | undefined |

#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | uint256 | undefined |

### getLastUserSlope

```solidity
function getLastUserSlope(address addr) external view returns (int128)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| addr | address | undefined |

#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | int128 | undefined |

### increaseAmount

```solidity
function increaseAmount(uint256 _value) external nonpayable
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| _value | uint256 | undefined |

### increaseAmountFor

```solidity
function increaseAmountFor(address _addr, uint256 _value, uint256 _discount) external nonpayable
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| _addr | address | undefined |
| _value | uint256 | undefined |
| _discount | uint256 | undefined |

### increaseUnlockTime

```solidity
function increaseUnlockTime(uint256 _duration) external nonpayable
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| _duration | uint256 | undefined |

### interval

```solidity
function interval() external view returns (uint256)
```






#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | uint256 | undefined |

### isDelegate

```solidity
function isDelegate(address account) external view returns (bool)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| account | address | undefined |

#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | bool | undefined |

### locked

```solidity
function locked(address account) external view returns (int128 amount, int128 discount, uint256 start, uint256 end)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| account | address | undefined |

#### Returns

| Name | Type | Description |
|---|---|---|
| amount | int128 | undefined |
| discount | int128 | undefined |
| start | uint256 | undefined |
| end | uint256 | undefined |

### maxDuration

```solidity
function maxDuration() external view returns (uint256)
```






#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | uint256 | undefined |

### name

```solidity
function name() external view returns (string)
```






#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | string | undefined |

### pointHistory

```solidity
function pointHistory(uint256 epoch) external view returns (int128 bias, int128 slope, uint256 ts, uint256 blk)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| epoch | uint256 | undefined |

#### Returns

| Name | Type | Description |
|---|---|---|
| bias | int128 | undefined |
| slope | int128 | undefined |
| ts | uint256 | undefined |
| blk | uint256 | undefined |

### setDelegate

```solidity
function setDelegate(address account, bool _isDelegate) external nonpayable
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| account | address | undefined |
| _isDelegate | bool | undefined |

### slopeChanges

```solidity
function slopeChanges(uint256 epoch) external view returns (int128)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| epoch | uint256 | undefined |

#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | int128 | undefined |

### supply

```solidity
function supply() external view returns (uint256)
```






#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | uint256 | undefined |

### symbol

```solidity
function symbol() external view returns (string)
```






#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | string | undefined |

### token

```solidity
function token() external view returns (address)
```






#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | address | undefined |

### totalSupply

```solidity
function totalSupply() external view returns (uint256)
```






#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | uint256 | undefined |

### totalSupply

```solidity
function totalSupply(uint256 t) external view returns (uint256)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| t | uint256 | undefined |

#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | uint256 | undefined |

### totalSupplyAt

```solidity
function totalSupplyAt(uint256 _block) external view returns (uint256)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| _block | uint256 | undefined |

#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | uint256 | undefined |

### unlockTime

```solidity
function unlockTime(address _addr) external view returns (uint256)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| _addr | address | undefined |

#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | uint256 | undefined |

### userPointEpoch

```solidity
function userPointEpoch(address account) external view returns (uint256)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| account | address | undefined |

#### Returns

| Name | Type | Description |
|---|---|---|
| _0 | uint256 | undefined |

### userPointHistory

```solidity
function userPointHistory(address account, uint256 epoch) external view returns (int128 bias, int128 slope, uint256 ts, uint256 blk)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| account | address | undefined |
| epoch | uint256 | undefined |

#### Returns

| Name | Type | Description |
|---|---|---|
| bias | int128 | undefined |
| slope | int128 | undefined |
| ts | uint256 | undefined |
| blk | uint256 | undefined |

### withdraw

```solidity
function withdraw() external nonpayable
```








## Events

### Deposit

```solidity
event Deposit(address indexed provider, uint256 value, uint256 discount, uint256 indexed unlockTime, int128 indexed _type, uint256 ts)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| provider `indexed` | address | undefined |
| value  | uint256 | undefined |
| discount  | uint256 | undefined |
| unlockTime `indexed` | uint256 | undefined |
| _type `indexed` | int128 | undefined |
| ts  | uint256 | undefined |

### SetDelegate

```solidity
event SetDelegate(address indexed account, bool isDelegate)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| account `indexed` | address | undefined |
| isDelegate  | bool | undefined |

### Supply

```solidity
event Supply(uint256 prevSupply, uint256 supply)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| prevSupply  | uint256 | undefined |
| supply  | uint256 | undefined |

### Withdraw

```solidity
event Withdraw(address indexed provider, uint256 value, uint256 discount, uint256 ts)
```





#### Parameters

| Name | Type | Description |
|---|---|---|
| provider `indexed` | address | undefined |
| value  | uint256 | undefined |
| discount  | uint256 | undefined |
| ts  | uint256 | undefined |



## Errors

### DiscountTooHigh

```solidity
error DiscountTooHigh()
```






### Discounted

```solidity
error Discounted()
```






### Existent

```solidity
error Existent()
```






### Expired

```solidity
error Expired()
```






### Forbidden

```solidity
error Forbidden()
```






### InvalidAmount

```solidity
error InvalidAmount()
```






### InvalidPath

```solidity
error InvalidPath()
```






### NonExistent

```solidity
error NonExistent()
```






### NotExpired

```solidity
error NotExpired()
```






### NotPastBlock

```solidity
error NotPastBlock()
```






### OutOfRange

```solidity
error OutOfRange()
```






### TooEarly

```solidity
error TooEarly()
```






### TooLate

```solidity
error TooLate()
```







