Skip to content

Instantly share code, notes, and snippets.

View anhtn512's full-sized avatar

Anh Anh anhtn512

View GitHub Profile
@anhtn512
anhtn512 / clean_code.md
Created May 3, 2023 03:37 — forked from wojteklu/clean_code.md
Summary of 'Clean code' by Robert C. Martin

Code is clean if it can be understood easily – by everyone on the team. Clean code can be read and enhanced by a developer other than its original author. With understandability comes readability, changeability, extensibility and maintainability.


General rules

  1. Follow standard conventions.
  2. Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
  3. Boy scout rule. Leave the campground cleaner than you found it.
  4. Always find root cause. Always look for the root cause of a problem.

Design rules

@anhtn512
anhtn512 / TheAirdropDistributor.sol
Created May 17, 2022 07:22 — forked from tntdev21/TheAirdropDistributor.sol
Airdrop contract distributor by merkle tree vs ECDSA signature
// SPDX-License-Identifier: MIT
pragma solidity 0.8.0;
import "@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol";
import "../libs/fota/MerkelProof.sol";
contract TheAirdropDistributor is EIP712Upgradeable {
(() => {
/*
** Author: @MonokaiJsp (MonokaiJs | omfg.vn)
** Home: https://monokai.dev
** Please credit me if you're interested in my work :D
** DO NOT remove these credit line when sharing!
*/
const exceptions = ['100030089564311', '100011158877849', '100001467593814'];