Skip to content
View CJ42's full-sized avatar

Highlights

  • Pro

Organizations

@lukso-network

Block or report CJ42

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
CJ42/README.md

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(0xC0Dec0dec0DeC0Dec0dEc0DEC0DEC0DEC0DEC0dE) { /// @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

Pinned Loading

  1. All-About-Solidity All-About-Solidity Public

    A series of tutorials that cover most of the core elements of the Solidity language

    Assembly 530 107

  2. solidity-debugger.github.io solidity-debugger.github.io Public

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

    29 2

  3. LUKSO-Foundry-Template LUKSO-Foundry-Template Public

    Forge / Foundry template to get started with @lukso/lsp-smart-contracts

    TypeScript 6

  4. contracts.any.sender contracts.any.sender Public

    Forked from PISAresearch/contracts.any.sender

    Contracts for the any.sender repo

    Solidity 1

  5. Solidity-BytesUtils Solidity-BytesUtils Public

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

    Solidity 1 2