USSD is an autonomous secure dollar that is censorship-resistent, crypto-backed, autonomous, and multi-collateralized.
Scope
Contest Results
On what chains are the smart contracts going to be deployed?
Ethereum mainnet
The principle of what is wanted to be achieved is described in
https://github.com/USSDofficial/ussd-whitepaper/blob/main/whitepaper.pdf
The extended test/sim of the contract activity is written in
test/USSDsimulator.test.js
(please use ganache, fork mainnet and run it, it uses real DAI, Uniswap contracts. etc. to perform full cycle of operations)
Which ERC20 tokens do you expect will interact with the smart contracts?
DAI, WETH, WBTC, WBGL
Which ERC721 tokens do you expect will interact with the smart contracts?
none
Which ERC777 tokens do you expect will interact with the smart contracts?
none
Are there any FEE-ON-TRANSFER tokens interacting with the smart contracts?
none
Are there any REBASING tokens interacting with the smart contracts?
none
Are the admins of the protocols your contracts integrate with (if any) TRUSTED or RESTRICTED?
There are DEFAULT_ADMIN_ROLE and STABLECONTROL roles defined. They have elevated privileges and are assumed to be TRUSTED actors.
Is the admin/owner of the protocol/contracts TRUSTED or RESTRICTED?
TRUSTED
Are there any additional protocol roles? If yes, please explain in detail:
STABLECONTROL, perform setting of some addresses and values regarding USSD and USSDRebalancer contract behaviour (realancing treshold, pool address, collateral ratios, base asset address)
Is the code/contract expected to comply with any EIPs? Are there specific assumptions around adhering to those EIPs that Watsons should be aware of?
-
Please list any known issues/acceptable risks that should not result in a valid finding.
Dependence on DAI and Uniswap. (however, risks related to price estimation etc. are valid)
Please provide links to previous audits (if any).
-
Are there any off-chain mechanisms or off-chain procedures for the protocol (keeper bots, input validation expectations, etc)?
none. But it's expected for the USSDRebalancer.rebalance() function to be triggered at intervals, conditions (backend/keeper/anyone - it's public)
In case of external protocol integrations, are the risks of external contracts pausing or executing an emergency withdrawal acceptable? If not, Watsons will submit issues related to these situations that can harm your protocol's functionality.
No, we don't expect that this contract activity could be paused from outside.
Total Rewards
Contest Pool
Lead Senior Watson
Judging Pool
Lead Judge
12,000 USDC
5,000 USDC
600 USDC
600 USDC
Status
Scope
Start Time
End Time
Finished
402 nSLOC
May 19, 2023, 3:00 PM
May 23, 2023, 3:00 PM