# ISelfPermit

### Functions <a href="#functions" id="functions"></a>

#### selfPermit <a href="#selfpermit" id="selfpermit"></a>

```solidity
function selfPermit(address token, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external payable;
```

#### selfPermitIfNecessary <a href="#selfpermitifnecessary" id="selfpermitifnecessary"></a>

```solidity
function selfPermitIfNecessary(address token, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
    external
    payable;
```

#### selfPermitAllowed <a href="#selfpermitallowed" id="selfpermitallowed"></a>

```solidity
function selfPermitAllowed(address token, uint256 nonce, uint256 expiry, uint8 v, bytes32 r, bytes32 s)
    external
    payable;
```

#### selfPermitAllowedIfNecessary <a href="#selfpermitallowedifnecessary" id="selfpermitallowedifnecessary"></a>

```solidity
function selfPermitAllowedIfNecessary(address token, uint256 nonce, uint256 expiry, uint8 v, bytes32 r, bytes32 s)
    external
    payable;
```

<br>
