A friend in my Slack group inspired me to start recording my coding journey. I’ve already been learning to code on the blockchain for a few months though. So while this is Day 1, it’s technically Day1 += 4mos;
Day 1:
Building a token contract from scratch & first steps to build a separate token contract using the OpenZeppelin library.
Thanks for sharing this awesome series with the community
I would try the Solidity 0.5 version of Ethernaut (https://solidity-05.ethernaut.openzeppelin.com/) (Once OpenZeppelin Contracts 3.0 is out of beta can see who in the community wants to upgrade the contracts to Solidity 0.6).
There are a number of community solutions, though it would be great if you wanted to write your own as well: Ethernaut Community Solutions
-Added the OpenZeppelin test library to my tests
+Kept getting an error about the timeout exceeding 2000ms, so I added a quick fix that disables the timeout this.timeout(0);, but maybe there’s a better fix for this? Perhaps a configuration I overlooked?
-Completed Lesson 4 of CryptoZombies
-Refresher on the batchOverflow hack on BEC
-Studied the MakerDAO vulnerability in the DSChiefApprovals contract, extended by the DSChief contract, identified by OpenZeppelin
I know they won’t be included in v3.0. However, I never learned how to develop them when they were popular. And in case Hester Pierce passes that bill giving ICOs a 3 year grace period, it could be helpful to know.
Regardless, this is all educational. I don’t intend to implement this project for production.
-Imported TimedCrowdsale.sol and added constructor arguments for them. I also added some tests, but ran into issues seen below. I believe the issue has to do with the JavaScript integer limitation MAX_SAFE_INTEGER. However, I still had issues when trying to wrap the integers in a string or BN though. The specific line of code that seems to cause this error is highlighted below.
-Finished reading about the critical vulnerability in MakerDAO and started reading the initial audit for Compund.
The line below seems to cause the error. When commented, the tests complete with the given opening and closing times. Of course, they don’t all pass without the line below though.