---
# System prepended metadata

title: DEVv2

---

# DEVv2

## contracts/src/dev/Dev.sol

No changes

## contracts/src/dev/DevArbitrum.sol

DELETE

:::warning
DEVv2 will be deployed only Polygon.
:::

## contracts/src/dev/DevBridge.sol

DELETE

:::warning
DEVv2 will be deployed only Polygon.
:::

## contracts/src/dev/DevPolygon.sol

DELETE

:::warning
DEVv2 will be deployed only Polygon, and the tokens is Dev.sol.
:::

## contracts/src/lockup/*

DELETE FOLDER

:::warning
Staking will no longer used.
:::

## contracts/src/market/*

DELETE FOLDER

:::warning
xxx
:::

## contracts/src/metrics/*

DELETE FOLDER

:::warning
xxx
:::

## contracts/src/policy/Policy1.sol

Follow the new Policy interface:
```solidity
interface IPolicy {
    // This means "Tokens Mint Per Second"
    function tmps() external view returns (uint256);

    // This means "Rate of Treasury Fee Per Transaction": i.g., 500 = 5%, 10000 = 100%
    function rTfpt() external view returns (uint256);
    
    // This means "Rate of Token Burn Per Transaction": i.g., 500 = 5%, 10000 = 100%
    function rTbpt() external view returns (uint256);
}
```

## contracts/src/policy/PolicyFactory.sol

DELETE

:::warning
Policy is applied by changing the Registry directly.
:::

## contracts/src/property/Property.

### Change the behavior of `initialize` function
- Treasury (= Dev Protocol Treasury) no longer holds Property Tokens.

### Delete the following overrides
- `transfer`
- `transferFrom`


### Delete the following functions
- `withdraw`
- `getBalances`
- `_afterTokenTransfer`

## contracts/src/property/PropertyFactory.sol

No changes

## contracts/src/s-token/STokensDescriptor.sol

No changes

## contracts/src/s-token/STokensManager.sol

### Overview
#### Old (the current) structure
![](https://hackmd.io/_uploads/H1T6qixB3.png)

#### New structure
![](https://hackmd.io/_uploads/rkmO4ngH2.png)

sTokens will be minted directly by transferring any tokens or the native token (= MATIC).

### Add a new getter function, `pathOf`

```solidity
function pathOf(
    address _token
) public view returns(address[] memory);

// This can be implemented as: mapping(address => address[]) public override pathOf;
```

`pathOf` receives a token contract address and returns the path array required by `swapExactTokensForTokens` of Uniswap v3.

### Change the specs of `mint` function

The interface will be changed the following:
```solidity
function mint(
    address _project,
    bytes32 _payload
) payable external returns (uint256);

function mint(
    address _project,
    bytes32 _payload,
    uint256 _token,
    uint256 _amount,
) external returns (uint256);
```

- Transfer the % of the given tokens (or native tokens) that of returned by `Policy.rTfpt` to the Treasury
- Buyback-n-burn the % of DEVv2 that returned by `Policy.rTbpt` through swapping the given tokens or native tokens to DEVv2 using `pathOf`.

### Delete the following functions
- `update`

## contracts/src/withdraw/*

DELETE FOLDER