Skip to content

Instantly share code, notes, and snippets.

View polluterofminds's full-sized avatar

Justin Hunter polluterofminds

View GitHub Profile
@polluterofminds
polluterofminds / mint.js
Last active February 3, 2022 20:47
Mint an NFT from hardhat script
const hre = require("hardhat");
async function main() {
try {
const Contract = await hre.ethers.getContractFactory("AvalancheNFTDrop");
const contract = await Contract.attach(
"YOUR CONTRACT ADDRESS" // The deployed contract address
);
let overrides = {
@polluterofminds
polluterofminds / deploy.js
Last active February 3, 2022 20:31
Solidity Hardhat Deploy Script
const hre = require("hardhat");
const BASE_URI = "ipfs://YOUR_METADATA_FOLDER_CID";
const TOKEN_NAME = "YOUR TOKEN NAME";
const TOKEN_SYMBOL = "YOUR TOKEN SYMBOL";
const PRICE = "500000000000000000" // 0.5 AVAX - use whatever price you want, but the denomiation is in WEI
async function main() {
try {
const Contract = await hre.ethers.getContractFactory("AvalancheNFTDrop");
const contract = await Contract.deploy(BASE_URI, PRICE, TOKEN_NAME, TOKEN_SYMBOL);
@polluterofminds
polluterofminds / NFT.sol
Last active February 3, 2022 20:32
Avalanche Example Contract
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.0;
import "hardhat/console.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/Strings.sol";
contract AvalancheNFTDrop is ERC721Enumerable, Ownable {
@polluterofminds
polluterofminds / submarine.js
Created January 4, 2022 15:27
Fetch Submarined CIDs and Generate Access Token
const findContent = await ky(`https://managed.mypinata.cloud/api/v1/content?cidContains=${cid}`, {
method: "GET",
headers: {
'x-api-key': API KEY
},
});
const results = await findContent.json();
const item = results.items[0];
@polluterofminds
polluterofminds / base64_no_fs.js
Created November 11, 2021 19:16
Base64 Without File System
const { Readable } = require("stream");
const FormData = require("form-data");
const axios = require("axios");
(async () => {
try {
const base64 = "BASE64 FILE STRING;
const imgBuffer = Buffer.from(base64, "base64");
const stream = Readable.from(imgBuffer);
@polluterofminds
polluterofminds / base64.js
Created November 10, 2021 20:30
Pinata SDK With base64
const pinataSDK = require("@pinata/sdk");
const pinata = pinataSDK(
"Pinata API Key",
"Pinata API Secret"
);
const { fs, vol } = require("memfs");
(async () => {
try {
const base64 = "base64 file string";
@polluterofminds
polluterofminds / largeFolderUpload.js
Created November 9, 2021 22:32
Pinata Large Folder Uploads
const fs = require("fs");
const FormData = require("form-data");
const rfs = require("recursive-fs");
const basePathConverter = require("base-path-converter");
const got = require('got');
const pinDirectoryToPinata = async () => {
const url = `https://api.pinata.cloud/pinning/pinFileToIPFS`;
const src = "RELATIVE PATH TO DIRECTORY TO UPLOAD";
var status = 0;
@polluterofminds
polluterofminds / pfp.js
Last active November 5, 2021 22:10
PFP Generator
const editly = require('editly');
const randomHex = require('random-hex');
const short = require('short-uuid');
const pathToFile = 'PATH TO FILE IN YOUR WORKING DIRECTORY';
const totalSupply = 5000;
const run = async () => {
for(i = 0; i < totalSupply; i++) {
console.log("generating image: ", i);
const options = {
@polluterofminds
polluterofminds / download.js
Created October 22, 2021 15:26
Download File From Gateway And Write to Local Disk
const http = require('https');
const fs = require('fs');
const file = fs.createWriteStream("FILE_NAME");
const request = http.get("GATEWAY_URL_FOR_FILE_IN_DIRECTORY", function(response) {
response.pipe(file);
});
@polluterofminds
polluterofminds / pinata.php
Created October 20, 2021 16:04
Pinata PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://manage.pinata.cloud/api/v1/content',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,