Skip to content
View CJ42's full-sized avatar

Highlights

  • Pro

Organizations

@lukso-network

Block or report CJ42

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
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) URLContact MeRead My ArticlesYoutube videos 🥖🥐🇫🇷

I am Jean a passionate full stack software engineer, focused on Web3 development, specialised in smart contracts and Solidity.

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

  • 🌱 Currently learning: AI engineering, latest DeFi protocols (Aave v4, Morpho Midnight).
  • 🤝🏻 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!

See GitHubProfile.sol
// SPDX-License-Identifier: YOLOpragma 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. #blazeitimport { Ownable } from"@openzeppelin/contracts/access/Ownable.sol";
/// @title GitHubProfile/// @dev A contract to store and manage your GitHub profile information.contractGitHubProfileisOwnable(0xC0Dec0dec0DeC0Dec0dEc0DEC0DEC0DEC0DEC0dE) {
/// @dev Event emitted when the profile is createdevent ProfileCreated(stringusername, stringurl, stringjob, string[] skills);
/// @dev Event emitted when the job is updatedevent JobChanged(stringoldJob, stringnewJob);
/// @dev Event emitted when a new skill is addedevent SkillAdded(stringnewSkill);
struct Github {
string username;
string url;
}
Github private githubInfos;
/// @dev Set as constant as assigned at birth (not planning to change it!)stringpublic constant FIRST_NAME ="Jean";
/// @notice The current job titlestringpublic job;
/// @notice A list of skillsstring[] public skills;
/// @dev My approach to web3, Blockchain and Programming 🪂stringpublic 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");
emitProfileCreated(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 functionfunction updateJob(stringmemorynewJob) public onlyOwner {
emitJobChanged(job, newJob);
job = newJob;
}
/// @notice Adding a new skill `newSkill` to the list/// @param newSkill The new skill to addfunction addSkill(stringmemorynewSkill) public onlyOwner {
skills.push(newSkill);
emitSkillAdded(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 skillsfunction getSkills() publicviewreturns (string[] memory) {
return skills;
}
/// @notice Retrieves the GitHub username and URL/// @return A tuple containing the GitHub username and URLfunction getGithubInfo() publicviewreturns (stringmemory, stringmemory) {
return (githubInfos.username, githubInfos.url);
}
}

🌟 Featured Projects

Jean's Github Stats

💝 LUKSO Featured

Jean's Github Stats

👨🏻‍🍳 Ongoing projects I am cooking

Languages & Tools

Pinned Loading

  1. All-About-SolidityAll-About-SolidityPublic

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

    Assembly 531 108

  2. solidity-debugger.github.iosolidity-debugger.github.ioPublic

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

    29 2

  3. LUKSO-Foundry-TemplateLUKSO-Foundry-TemplatePublic

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

    TypeScript 6

  4. contracts.any.sendercontracts.any.senderPublic

    Forked from PISAresearch/contracts.any.sender

    Contracts for the any.sender repo

    Solidity 1

  5. Solidity-BytesUtilsSolidity-BytesUtilsPublic

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

    Solidity 1 2