Skip to content

Instantly share code, notes, and snippets.

@ChristianOConnor
ChristianOConnor / RandomSurfaceReachT1.sol
Created May 22, 2023 10:53
RandomSurfaceReachT1 05/21/23
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.18;
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@api3/airnode-protocol/contracts/rrp/requesters/RrpRequesterV0.sol";
contract RandomSurfaceReachT1 is ERC721URIStorage, Ownable, RrpRequesterV0 {
event RequestedRandom(bytes32 indexed requestId);
event MintedRandomNFT(bytes32 indexed requestId, uint256 response);
@ChristianOConnor
ChristianOConnor / create_btc_segwit_tx_python.py
Created April 16, 2023 00:45
tx, tb1qj6zz96g8xgrwpgmdlvmkrjlwzz54sf47086yc9 to tb1qxgm8j0cq7tnftef3t563psl56gtmzxanm5c9uy creation
from bitcoinutils.utils import to_satoshis
from bitcoinutils.setup import setup
from bitcoinutils.transactions import Transaction, TxInput, TxOutput
from bitcoinutils.script import Script
from bitcoinutils.keys import PrivateKey as utilPrivKey
from bitcoinutils.constants import SIGHASH_ALL, SIGHASH_ANYONECANPAY
setup('testnet')
# private key for tb1qj6zz96g8xgrwpgmdlvmkrjlwzz54sf47086yc9
@ChristianOConnor
ChristianOConnor / incompleteMintSnippet
Created April 11, 2023 07:40
Simple merkle proof mint command massively incomplete
const provider = new ethers.providers.Web3Provider(window.ethereum);
const signer = provider.getSigner();
const contract = new ethers.Contract(contractAddrs, MyNFT.abi, signer);
const response = await contract.mintFunction(hexProof);
@ChristianOConnor
ChristianOConnor / Whitlisted1NFT.sol
Created April 11, 2023 07:01
Whitelisted NFT contract template
pragma solidity ^0.8.18;
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
contract RandomSurfaceReachT1 is ERC721URIStorage {
struct WhitelistedNft {
uint256 nonce;
address from;
}
@ChristianOConnor
ChristianOConnor / deployRandomSurfaceReacher.ts
Created April 9, 2023 01:12
deploy script for RandomSurfaceReachT1.sol
import { ethers } from "hardhat";
const hre = require("hardhat");
const dotenv = require("dotenv");
dotenv.config();
async function main() {
const SurfaceReachT1NFT = await hre.ethers.getContractFactory("RandomSurfaceReachT1");
const surfaceReachT1NFT = await SurfaceReachT1NFT.deploy(process.env.AIRNODE_NODARY_ADDRESS);
await surfaceReachT1NFT.deployed();
@ChristianOConnor
ChristianOConnor / RandomSurfaceReachT1.sol
Last active May 22, 2023 23:48
Mint NFTs from enum based on random number from API3
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.18;
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@api3/airnode-protocol/contracts/rrp/requesters/RrpRequesterV0.sol";
contract RandomSurfaceReachT1 is ERC721URIStorage, Ownable, RrpRequesterV0 {
event RequestedUint256(bytes32 indexed requestId);
event ReturnedSurfaceReachT1(bytes32 indexed requestId, uint256 response);
@ChristianOConnor
ChristianOConnor / App.tsx
Created March 22, 2023 23:19
address collector frontend App.tsx
import Layout from './components/Layout';
import './App.css';
import NotSignedInHero from './components/NotSignedInHero';
import { useAccount } from 'wagmi';
import SignedInHero from './components/SignedInHero';
import { EmailContextProvider } from './context/EmailContextManagement';
function App() {
const { isConnected } = useAccount();
if (isConnected) {
@ChristianOConnor
ChristianOConnor / EmailContextManagement.tsx
Created March 22, 2023 23:17
address collector frontend context/EmailContextManagement.tsx
import { createContext, useState } from 'react'
export const EmailContext = createContext({
email: "none",
setEmail: () => {}
})
export const EmailContextProvider = (props: any) => {
const setEmail = (email: string) => {
@ChristianOConnor
ChristianOConnor / pyside_qt_scroll_example.py
Created March 13, 2023 23:30
Example Fix for, How do I add widgets to the top left of Pyside Qt layout instead of having the items centered and evenly spaced?
wid = QtWidgets.QWidget()
grid = QtWidgets.QVBoxLayout(wid)
# setting the inner widget and layout
grid_inner = QtWidgets.QVBoxLayout(wid)
wid_inner = QtWidgets.QWidget(wid)
wid_inner.setLayout(grid_inner)
# add the inner widget to the outer layout
grid.addWidget(wid_inner)
@ChristianOConnor
ChristianOConnor / server.js
Created March 9, 2023 21:36
anagram-finder-express-js
var express = require('express');
var router = express.Router();
router.post('/', function findAnagramsInArray(req, res) {
var words = JSON.parse(JSON.stringify(req.body));
let result = {}
for (const word of words) {
const sorted = word.split("").sort().join("");