review summary
- cow: sign orders restricted to:
- sell usdt for sdai
- sell usdc for sdai
- sell wxdai for sdai
- sell sdai for usdt or usdc or xdai
- sell weth for weth or gno
- sell gno for weth or gno
- cow: unsign any order
- stakewise: axl (StakeWise | Vault)
- burnOsToken(*)
- updateState(*)
- mintOsToken(AVATAR,*,*)
- deposit(*, AVATAR, *)
- claimExitedAssets(*)
- enterExitQueue(*, AVATAR)
- stakewise: stakesaurus (StakeWise | Vault)
- idem as axl
- usdt
- approve(cow_relayer)
- weth
- approve(cow_relayer)
- xdai bridge
- relayTokens(AVATAR)
- gno: approve
- stakewise axl
- stakewise stakesaurus
- stakewise seednode
- cow_relayer
- stakewise stakecat
- gno.transferAndCall(xdai_bridge, *, kpk_managed_msig)
- stakewise: seednode (StakeWise | Vault)
- idem as axl
- sdai.approve
- cow_relayer
- sdai_adapter
- sdai_adapter
- deposit(*, AVATAR)
- redeem(*, AVATAR)
- redeemXDAI(*, AVATAR)
- depositXDAI(AVATAR)
- usdc.approve(cow_relayer)
- stakewise: stakecat (StakeWise | Vault)
- idem as axl
- wxdai.approve
- cow_relayer
- sdai_adapter
remarks
no write funcs on seednode contract
the seednode vault write functions currently cannot be found on gnosisscan: Address: 0x9eeB6be7...77fa96F35 | GnosisScan
this could have to do with the fact that it is upgradable, although the other stakewise vault do not have this issue. this upgradability potentially also jeopardises the value of scoping these permissions; an upgrade could simply replace the logic. note: no audit or review done from our side on any of the stakewise products
inconsistent cowswap token permutations
it is completely unclear to my why the cowswap token combinations are set up the way they are set up here; eg why sell usdt for sdai but not for gno? why the need to swap gno for gno?
that being said, it is good to see the more flexible unsign permissions (no scoping at all)