Giter Club home page Giter Club logo

Welcome to my GitHub Profile! 👋

side Gif

X (formerly Twitter) URL Contact Me Read My Articles Youtube videos 🥖🥐🇫🇷

I am Jean a passionate web3 dev, specialised in smart contracts and Solidity.

Author of the 📓 All About Solidity Book! + ✍🏼 All About Solidity article series

  • 🔭 Currently working as: Smart Contract Team Lead at LUKSO.
  • 🌱 Currently learning: Defi.
  • 🤝🏻 Looking to collaborate on: any web3 protocol or project.
  • 💬 Ask me anything about: smart contracts and Solidity! 🫡

🎙️ Talks & Presentations

Note: below is my GitHub profile as a smart contract code in Solidity!


// SPDX-License-Identifier: YOLO
pragma solidity ^0.8.x;

//                                   YOLO LICENSE
//                              Version 1, July 10 2015
// THIS SOFTWARE LICENSE IS PROVIDED "ALL CAPS" SO THAT YOU KNOW IT IS SUPER
// SERIOUS AND YOU DON'T MESS AROUND WITH COPYRIGHT LAW BECAUSE YOU WILL GET IN
// TROUBLE HERE ARE SOME OTHER BUZZWORDS COMMONLY IN THESE THINGS WARRANTIES
// LIABILITY CONTRACT TORT LIABLE CLAIMS RESTRICTION MERCHANTABILITY SUBJECT TO
// THE FOLLOWING CONDITIONS:
// 1. #yolo
// 2. #swag
// 3. #blazeit

import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";

/// @title GitHubProfile
/// @dev A contract to store and manage your GitHub profile information.
contract GitHubProfile is Ownable(0xB82023c6d61C60E8715db485066542d501A91140) { // cj42.eth

    /// @dev Event emitted when the profile is created
    event ProfileCreated(string username, string url, string job, string[] skills);

    /// @dev Event emitted when the job is updated
    event JobChanged(string oldJob, string newJob);

    /// @dev Event emitted when a new skill is added
    event SkillAdded(string newSkill);

    struct Github {
        string username;
        string url;
    }

    Github private githubInfos;

    /// @dev Set as constant as assigned at birth (not planning to change it!)
    string public constant FIRST_NAME = "Jean";
    
    /// @notice The current job title
    string public job;

    /// @notice A list of skills
    string[] public skills;

    /// @dev My approach to web3, Blockchain and Programming 🪂
    string public constant motto = unicode"Keep Learning 📚, Keep BUIDLing! 🫡";

    /// @dev Initializes the contract with default values for GitHub information, job title, and skills.
    constructor() {
        githubInfos.username = "CJ42";
        githubInfos.url = "https://github.com/CJ42";
        job = "Smart Contract Team Lead at LUKSO";

        skills.push("Solidity");
        skills.push("Smart Contracts");
        skills.push("Blockchain");
        skills.push("Web Development");
        skills.push("React");

        emit ProfileCreated(githubInfos.username, githubInfos.url, job, skills);
    }

    /// @notice Updates the job title
    /// @param newJob The new job title to set
    /// @dev Only the contract owner (CJ42.eth) can call this function
    function updateJob(string memory newJob) public onlyOwner {
        emit JobChanged(job, newJob);
        job = newJob;
    }

    /// @notice Adding a new skill `newSkill` to the list
    /// @param newSkill The new skill to add
    function addSkill(string memory newSkill) public onlyOwner {
        skills.push(newSkill);
        emit SkillAdded(newSkill);
    }

    /// @notice Retrieves the list of skills
    /// @dev We cant get back the full array from the `public` getter of the state variable.
    /// The `skills(uint256)` getter function can only get value at specific indexes.
    /// @return An array of strings representing the skills
    function getSkills() public view returns (string[] memory) {
        return skills;
    }

    /// @notice Retrieves the GitHub username and URL
    /// @return A tuple containing the GitHub username and URL
    function getGithubInfo() public view returns (string memory, string memory) {
        return (githubInfos.username, githubInfos.url);
    }
}

🌟 Featured Projects

Jean's Github Stats

💝 LUKSO Featured

Jean's Github Stats

👨🏻‍🍳 Ongoing projects I am cooking

Jean Cvllr's Projects

seaport icon seaport

Seaport is a marketplace protocol for safely and efficiently buying and selling NFTs.

solidity icon solidity

Solidity, the Contract-Oriented Programming Language

solidity-bytesutils icon solidity-bytesutils

(Work in Progress) - Solidity library to manipulate bytes, including getting subsets and toggling.

solidity-debugger.github.io icon solidity-debugger.github.io

Solidity Debugger - A curated list of errors and warnings for Solidity, main smart contract language used by Ethereum

solidity-workshop icon solidity-workshop

A simple Solidity tutorial webpage with embedded code editor and syntax highlighting

speaker-sweepstake icon speaker-sweepstake

Ether sweepstake on the identity of the week8 speaker for the cyptocurrencies MSc-level.

tools-lsp-factory icon tools-lsp-factory

Easy deployments of LSP3UniversalProfile and LSP4DigitalCertificate contracts

unifi icon unifi

UniFi - Wifi sharing Dapp built on Ethereum. EthLondon, Feb 2020

v3-core icon v3-core

🦄 🦄 🦄 Core smart contracts of Uniswap v3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.