Skip to content

Instantly share code, notes, and snippets.

@kmjones1979
kmjones1979 / sweepMultipleAccounts.ts
Created June 12, 2025 22:29
example sweeper for deployer and burner wallet accounts
import * as dotenv from "dotenv";
dotenv.config();
import { ethers, Wallet } from "ethers";
import { config } from "hardhat";
import password from "@inquirer/password";
import { input, confirm, select } from "@inquirer/prompts";
interface AccountInfo {
address: string;
wallet: Wallet;
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.27;
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol";
import "./MentorNFT.sol";
@kmjones1979
kmjones1979 / MentorNFT.sol
Created June 10, 2025 21:51
Updated Version
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.27;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/security/Pausable.sol";
import "@openzeppelin/contracts/access/AccessControl.sol";
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
// --- Custom Errors ---
error MentorNFT_ZeroAddressOwner();
@kmjones1979
kmjones1979 / README.md
Last active May 30, 2025 11:51
🚀 Stablecoin Challenge Tutorial

🚀 Stablecoin Challenge - Complete Developer Tutorial 💰

Welcome to the most exciting DeFi adventure! 🎉 Get ready to dive into the world of stablecoins, yield farming, and automated market making!

QR Code

📚 Table of Contents

  1. 🌟 Project Overview
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.27;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/security/Pausable.sol";
import "@openzeppelin/contracts/access/AccessControl.sol";
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
// --- Custom Errors ---
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.27;
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol";
import "./MentorNFT.sol";
@kmjones1979
kmjones1979 / FunctionsConsumer.sol
Created November 25, 2024 15:22
Example contract to run chainlink function.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import {FunctionsClient} from "./@chainlink/contracts/src/v0.8/functions/dev/1_0_0/FunctionsClient.sol";
import {ConfirmedOwner} from "./@chainlink/contracts/src/v0.8/shared/access/ConfirmedOwner.sol";
import {FunctionsRequest} from "./@chainlink/contracts/src/v0.8/functions/dev/1_0_0/libraries/FunctionsRequest.sol";
contract FunctionsConsumerExample is FunctionsClient, ConfirmedOwner, ERC721 {
using FunctionsRequest for FunctionsRequest.Request;
@kmjones1979
kmjones1979 / mission-1.js
Created November 25, 2024 15:20
Javascript for Chainlink Function
// This example show how to check if an account is enlisted in the mission
const account = args[0].toLowerCase() // make sure the account is in lowercase
const query_url = args[1] //https://api.studio.thegraph.com/query/37762/mymission/version/latest
// Uncomment to use Graph API Key (for published missions)
//const graphKey = secrets.graphKey
const graphRequest = Functions.makeHttpRequest({
url: `${query_url}`,
method: "POST",
@kmjones1979
kmjones1979 / page.tsx
Last active July 2, 2024 23:20
A full example of a page for Scaffold-ETH that sends tokens using hooks and components
"use client";
import { useState } from "react";
import type { NextPage } from "next";
import { formatEther, parseEther } from "viem";
import { useAccount } from "wagmi";
import { Address, AddressInput, EtherInput } from "~~/components/scaffold-eth";
import { useScaffoldReadContract, useScaffoldWriteContract } from "~~/hooks/scaffold-eth";
const Home: NextPage = () => {
@kmjones1979
kmjones1979 / YourContract.sol
Last active November 15, 2024 13:53
Simple ERC20 contract example for the Hackathon Prep Brunch workshop in Brussels
//SPDX-License-Identifier: MIT
pragma solidity >=0.8.0 <0.9.0;
import "hardhat/console.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
/**
* A smart contract for a workshop during EthCC
* @author Kevin Jones
*/