Secureum Bootcamp Part 2: Solidity 101
Content
- Article on "Solidity 101": https://secureum.substack.com/p/solidity-101
- YouTube videos on "Solidity 101":
- Block 1: https://youtu.be/5eLqFac5Tkg
- Block 2: https://youtu.be/TCl1IcGl_3I
- Block 3: https://youtu.be/6VIJpze1jbU
- Block 4: https://youtu.be/WgU7KKKomMk
- Block 5: https://youtu.be/_oN7XuyhoZA
Assignments
- Read Chapter 7 from “Mastering Ethereum”: https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc
- Understand Solidity syntax and semantics implemented in OpenZeppelin’s ERC20 contract: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol
- Understand Solidity syntax and semantics implemented in OpenZeppelin’s ERC721 (NFT) contract: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol
- Understand Solidity syntax and semantics implemented in OpenZeppelin’s security-related contracts Ownable, Pausable and ReentrancyGuard: https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/access and https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/security
- Experiment with the various Solidity concepts using https://remix.ethereum.org/
Thoughts
- Solidity resembles Java, another a high-level, class-based, object-oriented programming language (according to Wikipedia).
- The devil is in the details it seems: many security implications (i.e. those popping up in Secureum Bootcamp Part 4) are in the technical implementation and its limitations.
- It's hard truly grasping all these nuances by just reading documentatin (yes, yes, there are the hands-on assignments as well). I guess there is only one way forward: P-R-A-C-T-I-C-E 😏.