buttonwood-protocol / button-wrappers

Solidity code for the ButtonToken rebasing wrapper protocol
GNU General Public License v3.0
13 stars 10 forks source link

feat: add weth router #43

Closed marktoda closed 2 years ago

marktoda commented 3 years ago

This commit adds a router contract that automatically wraps and unwraps ETH into WETH before transacting with the Button Token

marktoda commented 2 years ago

LGTM! What does the code-coverage look like?

----------------------------|----------|----------|----------|----------|----------------|
File                        |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
----------------------------|----------|----------|----------|----------|----------------|
 contracts/                 |    89.29 |    81.58 |    89.87 |    89.53 |                |
  ButtonToken.sol           |    82.99 |    84.62 |    86.67 |    83.55 |... 403,404,405 |
  ButtonTokenFactory.sol    |      100 |      100 |      100 |      100 |                |
  ButtonTokenWethRouter.sol |      100 |       75 |      100 |      100 |                |
  UnbuttonToken.sol         |    96.61 |       75 |    90.91 |    96.61 |        189,194 |
  UnbuttonTokenFactory.sol  |      100 |      100 |      100 |      100 |                |
 contracts/interfaces/      |      100 |      100 |      100 |      100 |                |
  IButtonToken.sol          |      100 |      100 |      100 |      100 |                |
  IButtonWrapper.sol        |      100 |      100 |      100 |      100 |                |
  IChainlinkAggregator.sol  |      100 |      100 |      100 |      100 |                |
  IFactory.sol              |      100 |      100 |      100 |      100 |                |
  IOracle.sol               |      100 |      100 |      100 |      100 |                |
  IRebasingERC20.sol        |      100 |      100 |      100 |      100 |                |
  IUnbuttonToken.sol        |      100 |      100 |      100 |      100 |                |
  IWETH.sol                 |      100 |      100 |      100 |      100 |                |
 contracts/oracles/         |      100 |      100 |      100 |      100 |                |
  ChainlinkOracle.sol       |      100 |      100 |      100 |      100 |                |
 contracts/utilities/       |    71.43 |       25 |       80 |    71.43 |                |
  InstanceRegistry.sol      |    71.43 |       25 |       80 |    71.43 |          53,54 |
----------------------------|----------|----------|----------|----------|----------------|
All files                   |    89.02 |    76.19 |    89.53 |    89.26 |                |
----------------------------|----------|----------|----------|----------|----------------|
marktoda commented 2 years ago

Also, is our rule of thumb just to do reentrancy guards on all things payable?

I don't think payable matters -- rather just if we're making unsafe external calls