Skip to content

Instantly share code, notes, and snippets.

@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
*/
@kmjones1979
kmjones1979 / scaffold.config.ts
Created January 27, 2024 19:25 — forked from technophile-04/scaffold.config.ts
SE-2 frontend config for base mainnet
import * as chains from "wagmi/chains";
// Base chain
export const base = {
id: 8453,
network: "base",
name: "Base",
nativeCurrency: { name: "Base", symbol: "ETH", decimals: 18 },
rpcUrls: {
default: {
@kmjones1979
kmjones1979 / index.tsx
Created November 7, 2023 01:29
Example index.ts with table format for Unchain readme
import type { NextPage } from "next";
import { MetaHeader } from "~~/components/MetaHeader";
import { gql } from "@apollo/client";
import { useQuery } from "@apollo/client";
import { Address } from "~~/components/scaffold-eth";
export const GET_MESSAGES = gql`
{
sendMessages(first: 5) {
@kmjones1979
kmjones1979 / nft.ts
Created September 16, 2023 20:07
example ipfs metadata
import { useState } from 'react';
import ipfsHttpClient from 'ipfs-http-client';
const IPFSUploader: React.FC = () => {
const [name, setName] = useState<string>('');
const [description, setDescription] = useState<string>('');
const [budget, setBudget] = useState<number>(0);
const [image, setImage] = useState<File | null>(null);
const [ipfsResponse, setIPFSResponse] = useState<any | null>(null);
@kmjones1979
kmjones1979 / schema.graphql
Created September 6, 2023 00:08
derivedFrom schema
type PostCreated @entity(immutable: true) {
id: Bytes!
ownerId: BigInt!
contentURI: String!
timestamp: BigInt!
}
type PostContent @entity(immutable: true) {
id: Bytes!
hash: String!
@kmjones1979
kmjones1979 / contract.ts
Created September 6, 2023 00:07
handler
import {
Bytes,
dataSource,
DataSourceContext,
DataSourceTemplate,
log,
ipfs,
json,
} from "@graphprotocol/graph-ts";
import {
@kmjones1979
kmjones1979 / index.ts
Last active February 9, 2024 23:55
Example for Full Stack dapp Development Workshop
"use client";
import { useState } from "react";
import { gql } from "@apollo/client";
import { useQuery } from "@apollo/client";
import type { NextPage } from "next";
import { useAccount } from "wagmi";
import { Address, AddressInput, Balance } from "~~/components/scaffold-eth";
import {
useAccountBalance,