# wstETH audit comments
## Incorrect burning of shares
https://hackmd.io/@mixbytes/Hyx8pX5lt#1-Incorrect-burning-of-shares
Any burning of the stETH token is an emergency that Lido DAO reserves to use against protocol hack or to recover from a failure mode. The burning of tokens for an arbitrary address shouldn’t happen during normal protocol operations.
We acknowledge, that burning any number of stETHs on the wstETH contract balance will violate the wrapping/unwrapping mechanics, but this shouldn’t happen in a normal mode. However this opportunity is very important for failure recovery: if there is an error in the current implementation of the wstETH token, then the DAO will be able to pause stETH, burn stETH from the wstETH contract’s balance, redeploy a new token, and recover balances by minting after that.
## Possible incorrect initialization
https://hackmd.io/@mixbytes/Hyx8pX5lt#1-Possible-incorrect-initialization
We acknowledge the issue. The current instance of the wstETH (0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0) has a correct address that points to stETH contract (0xae7ab96520de3a18e5e111b5eaab095312d7fe84).
## Working with values equal to zero
https://hackmd.io/@mixbytes/Hyx8pX5lt#2-Working-with-values-equal-to-zero
We acknowledge the issue. A situation is possible when the user calls the wrap function with small values (e.g. several Weis) under the assumption that `stEthPerToken` is greater than 1.
Indeed, currently, `stEthPerToken` is 1.04 and if the user tries to wrap 1 Wei of stETH then she gets 0 wstETH in return. However, these losses are negligible compared to the cost of gas for including a transaction in a block and do not lead to a violation of the token's mechanics. We would add this edge case to the documentation.
## stETHcan be paused
https://hackmd.io/@mixbytes/Hyx8pX5lt#3-stETH-can-be-paused
The proposed improvement will slightly increase the readability of the revert message by adding a small gas and contract size overhead. We believe that the current revert message (CONTRACT_IS_STOPPED) is an acceptable compromise in this situation.
## Unchecked returned value
https://hackmd.io/@mixbytes/Hyx8pX5lt#4-Unchecked-returned-value
Since the `transfer` and `transferFrom` methods in stETH token always revert the transaction instead of returning false, we are not checking them because of gas-saving reasons.
The improvment might slightly increase the readability of the error, but add some overhead on contract size. Besides this, the stETH token already has a good error description, like TRANSFER_FROM_THE_ZERO_ADDRESS, TRANSFER_TO_THE_ZERO_ADDRESS, and TRANSFER_AMOUNT_EXCEEDS_BALANCE.