# 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