My Coding Journey: Beginner to Pro

Hi @Jshanks21,

For me, I would focus on Solidity (though that is where my interest lies).

I think follow what interests you, go down a few rabbit holes and discover what you are passionate about and that is what you want to be working on.

1 Like

Thanks for the advice @abcoathup.

I’m also most interested in Solidity, and smart contracts generally. I just wanted to see if this was something that could enhance my contribution to the space, or if it would be more of a distraction from what I should be researching.

Ultimately, I just want the things I learn to help this space grow since it’s helped me grow so much along the way.

1 Like

Day 12:

  • Extended the timed crowdsale tests. Had some minor issues with the access roles like minter role and whitelisted role initially, but easily fixed after reading various OpenZeppelin test files. Really highlighted the benefits of a test-driven development approach for a larger project as opposed to making all tests after inheriting from several contracts.

  • But all tests pass so far!

  • Did further research on the recent MakerDAO exploit where one keeper liquidated a bunch of CDPs for free after the sudden ETH dump a few days ago. Any additional information or resources on this is greatly appreciated!

  • Took notes on the video presentation by @Austin-Williams over the CDP pattern commonly seen in DeFi projects.

1 Like

Hi @Jshanks21,

You may want to join this discussion in the forum:

1 Like

Day 13:

  • Completed all TimedCrowdsale tests!

  • All tests pass!

  • Completed level 5 in Ethernaut.

  • TODO: Start MintedCrowdsale tests. Nothing like a blank slate.

1 Like

Day 14:

1 Like

Day 15:

1 Like

Day 16:

  • Added whitelist crowdsale tests.

  • All tests pass.

  • Completed level 8 in Ethernaut.

  • TODO: Add refundable smart contract features to the crowdsale contract and test.

1 Like

Day 17:

  • Created a guide on how to install Windows Subsystem for Linux (WSL) on Windows 10 on the OpenZeppelin forum. In case you’re wondering, everything still works.

  • Added the RefundablePostDeliveryCrowdsale contract to MyCrowdsale. No testing added yet.

Quick note: when using both a capped crowdsale and refundable crowdsale that takes a goal as a constructor parameter, make sure to require the goal be set below the cap. :wink:

  • Started the DeFi 101 course in the Ivan on Tech Academy.

  • Learned about flipping NFTs from a Bankless article by Ryan Sean Adams. More research needed.

Day 18: Oh man…

So I dove into the deep end of NFTs… and there was no lifeguard on duty. (Honestly, I think I was under a little too long. :wink:)

  • Found some incredible resources on the topic of NFT use and trading by Matty from dclblogger and an article by 3xhuman.

  • Added the refundable crowdsale features to MyCrowdsale and ran tests. (RefundablePostDeliveryCrowdsale more specifically.)

  • All tests pass!

  • Completed Ethernaut level 9: King

Day 19:

  • Added a Pre-ICO and Main ICO phase to the MyCrowdsale. Added testing for the different token rates applied for each of these phases.

  • All test pass! Though more extensive testing would be required for any production use. However, this case is solely for personal education and development experience.

  • Completed Ethernaut level 10: Re-entrancy.

  • Read the first chapter in “The Changing World Order” by Ray Dalio. It’s an ongoing LinkedIn series of articles about the rise and fall of empires over time by economic, financial, and military means. As he suggests in the article, “With that perspective in mind [one of repeating cycles throughout history], we can attempt to squint into the future.”

1 Like

Day 20:

  • Added finalization logic to the crowdsale to renounce the minter role so no new tokens can be minted once the crowdsale is finished. Finalization also unpauses the tokens so they can be transferred after the crowdsale ends.

  • All tests pass!

  • Introduced an artist I know to the crypto art space I recently found myself. Helping her update her website and online presence to be more active in the space. She specializes in fractal art. Check out the Dusty Rose Collection to see what it’s all about!

  • Completed Ethernaut level 11: Elevator.

1 Like

Day 21:

  • Added an arbitrary token distribution to the crowdsale.

  • Completed the DeFi 101 course in the Ivan on Tech Academy.

  • Tinkered with a local DSR (Dai Savings Rate) demo.

  • Read an OpenZeppelin article about exploiting Uniswap after hearing about the imBTC attack.

TODO: Add token vesting and token time locking. Already have some good examples thanks to @abcoathup!

1 Like

Day 22:

  • Completed and deployed crowdsale to the Ropsten testnet.

  • Explored the OpenZeppelin CLI SDK documentation and completed the steps outlined.

  • Started the Crypto & Privacy Coins course in Ivan on Tech Academy.

TODO: Flash loans

1 Like

Day 23:

  • Read chapter 2 of Ray Dalio’s “The Changing World Order” on LinkedIn.

  • Helped an artist friend tokenize some of their art using Rarible.com.

  • Completed Ethernaut level 12: Privacy.

  • Found a couple templates to fork for flash loans thanks to @Austin-Williams and a friend, MattPrime, in the Dapp University slack.

1 Like

The dragonfly looks interesting.

I recommend watching Flash-Mintable Asset-Backed Tokens and having a look at the code: (more goodness from Austin)

1 Like

It’s pretty neat. She mainly does abstract fractal art. I don’t really know anything about art :sweat_smile:, but I’ve been seeing a lot of animated fractal art on crypto art platforms like SuperRare and MakersPlace. Other stuff too of course, but seemed to fit her style somewhat.

I saw that thanks to the banner on the forum. It’s partially why I decided to focus on flash loans. Flash-Mintable tokens sound awesome! I hope at least one exchange starts using it soon since it sounds like we only need one to implement it for it to be used in the rest of the space.

Familiarity with flash loans will surely be useful when that happens. It’s too cool an idea for everyone in DeFi to reject it for long. :sunglasses:

1 Like

Day 24:

  • Successfully performed a flashloan on the Ropsten testnet using the Aave documentation as a guide. Easier than expected using Remix, so time to start tinkering with a local environments and additional functionality.

  • Completed Ethernaut level 13: Gatekeeper One. I found this one to be significantly more challenging than level 12 despite having a lower difficulty rating.

  • Read the Uniswap v2 whitepaper. Flash swaps and ERC20-ERC20 pairs should be popular additions. Personally happy to see it’ll be written in Solidity instead of Vyper, like v1 is, as I’m not yet familiar with it or Python.

  • Found a short tutorial on how to create a PoE (Proof of Existence) blockchain on Substrate using Rust, so gave that a go. I underestimated the tutorial as I have zero knowledge of Substrate or the Rust programming language. It was short, but gave my brain growing pains. :sweat_smile:

1 Like

Hi @Jshanks21,

Congratulations on performing a flash loan on Ropsten. :clap:

I think the Gatekeeper levels are challenging.

I didn’t realize that Uniswap v2 was in Solidity. Nice.

It will be interesting to see what products get built on top of substrate. I have zero Rust and Substrate knowledge.

1 Like

Day 25:

  • Used the money legos package to make a Uniswap trade on the Ropsten testnet.

  • Started a new project to create a simplified liquidity pool exchange.

  • Successfully made a flashloan on the Kovan testnet using the flashloan Truffle box.

  • Completed Ethernaut level 14: Gatekeeper Two.

1 Like