Skip to content

Latest commit

 

History

History
124 lines (111 loc) · 2.32 KB

3- Smartcontract Development.md

File metadata and controls

124 lines (111 loc) · 2.32 KB

Remix IDE

  • Remix Online
  • Remix Desktop
  • remixd (connect to localhost daemon)

VSCode Extensions

  • Solidity Ext (Juan Blanco)
  • Remix Ext
  • Truffle Ext

Local Blockchain and Client Tools

  • Brave
  • Metamask
  • Geth
  • Mist
  • Ganache

Solidity Basics

  • First SmartContract
  • Code Style
  • Structure of a Solidity Source File
  • SPDX License
  • Pragma
  • DataTypes and Variables
  • Ether Units
  • Global Variables
  • Functions
  • Control Structures
  • Loop Structures
  • Event
  • ErrorHandling
  • Custom Error
  • Compile
  • Gas Optimization
  • Deploy on blockchain
  • Solidity Versions Changelogs

Calls

  • External Function Call
  • Low-Level Calls
  • send(), transfer()
  • fallback(), receive()
  • call, staticcall, delegatecall

Object Oriented Programming

  • Visibility modifiers
  • Function Overloading
  • Modifier Overloading
  • Inheritance
  • Abstract Contract
  • Interface
  • Library, import

Solidity Patterns

  • Signature Verifying (ECDSA - ecrecover)
  • Multi-Sig Wallet
  • Merkle Tree
  • Payment Channel
  • Payment Splitter
  • Batch-Distributor
  • Gas Abstraction (Gas relay, Pay in tokens instead of gas, GSN)
  • MetaTransactions (gasless - Delegate Gas payment)
  • Factory
  • TimeLock
  • Access Control
  • Oracles

Upgradability

  • Data Sepration (Eternal Storage . ERC-930)
  • Delegate Proxy (ERC-897)
  • Universal Upgradeable Proxy Standard (UUPS . ERC-1822)
  • Standard Proxy Storage Slots (ERC-1967)
  • Transparent Contract Standard (ERC-1538)
  • Multi-Facet Proxy (Diamonds . ERC-2535)
  • Metamorphic Smart Contracts (CREATE2 . ERC-1014)
  • Minimal Proxy (Clone Factory . ERC-1167)

SmartContract Frameworks

  • Truffle
  • Hardhat
  • Foundry

OpenZeppelin

  • AccessControl (Role-based, Ownable)
  • Address, String, Arrays
  • SafeCast, SignedMath
  • Hash Utils, Base64
  • BitMap, Checkpoints, DoubleEndedQueue
  • EnumerableMap, EnumerableSet
  • Context, Counters
  • Vesting, Governance
  • Pausable, ReentrencyGuard
  • ERC-20, ERC-721, ERC-1155
  • ERC-165, ERC-2981
  • ECDSA (SignatureChecker)
  • MerkleProof
  • Metatx (ERC2771)
  • Multicall
  • Proxy (Create2, ERC-1967, Beacon, Proxy Admin, UUPS)

Certora

ChainLink Oracles

  • PriceFeeds
  • VRF (Random Numbers)
  • AnyAPI
  • Automation

Unit Testing

  • Chai, Mocha
  • Assert, before, after
  • Fork Sandbox
  • JavaScript Tests
  • Solidity Tests
  • OZ Test Helper
  • Remix UnitTest Plugin
  • Apeworx

Security

  • Exploits
  • Pitfalls
  • Hardening
  • Slither
  • Graph