- MyChance is a Lottery protocol which uses priceBonds as an NFT smart contract, having functions like safeMint, safeBurn, pause, unpause, grantRole, revokeRole, renounceRole, supportsInterface, startMigration, migrateMyself, etc. Users can acquire Prize Bonds (which are NFTs) by paying in USDT, DAI or USC, and automatically participate in lotteries. A part of their earnings is shared with charities.
- A random winner chosen by every 7 days’ draw wins the total interests generated in the last week.
- These contracts inherit IERC20, Pausable, ERC721Enumerable, AccessControl, ERC721, Ownable, Counters standard smart contracts from the OpenZeppelin library. And KeeperCompatible, LinkTokenInterface, VRFConsumerBaseV2, LinkTokenInterface, ConfirmedOwner, VRFCoordinatorV2Interface standard smart contracts from the chain link library.
- These OpenZeppelin and chain link contracts are considered community audited and time tested, and hence are not part of the audit scope.
Executive Audit Summery
- According to the standard audit assessment, Customer`s solidity based smart contracts are “Secured”. This token contract does contain owner control, which does not make it fully decentralized.
- We used various tools like Slither, Solhint and Remix IDE. At the same time this finding is based on critical analysis of the manual audit.
- We found 0 critical, 0 high, 0 medium and 4 low and some very low level issues. All the issues have been fixed / acknowledged in the revised code.