You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.5 KiB
74 lines
2.5 KiB
// require('dotenv').config();
|
|
import dotenv from 'dotenv'
|
|
dotenv.config()
|
|
const API_URL = process.env.API_URL;
|
|
// const { createAlchemyWeb3 } = require("@alch/alchemy-web3");
|
|
import { createAlchemyWeb3 } from "@alch/alchemy-web3"
|
|
const web3 = createAlchemyWeb3(API_URL);
|
|
|
|
// const contract = require("../artifacts/contracts/MyNFT.sol/MyNFT.json");
|
|
import contractABI from './MoonbirdPunks.json' assert { type: 'json' }
|
|
// console.log(JSON.stringify(contract.abi));
|
|
|
|
const contractAddress = "0x90Bc839511e1a8b32e2ba27f37c7632D12E872B6";
|
|
const nftContract = new web3.eth.Contract(contractABI.abi, contractAddress);
|
|
|
|
async function mintOwnerNFT() {
|
|
const nonce = await web3.eth.getTransactionCount(process.env.PUBLIC_OWNER_KEY, 'latest'); //get latest nonce
|
|
|
|
//the transaction
|
|
const tx = {
|
|
'from': process.env.PUBLIC_OWNER_KEY,
|
|
'to': contractAddress,
|
|
'nonce': nonce,
|
|
'gas': 100000,
|
|
'maxFeePerGasGwei': 50,
|
|
// 'maxPriorityFeePerGas': 1000000000,
|
|
'maxPriorityFeePerGasGwei': 2,
|
|
'data': nftContract.methods.ownerMint([process.env.PUBLIC_KEY], 1).encodeABI()
|
|
};
|
|
|
|
const signedTx = await web3.eth.accounts.signTransaction(tx, process.env.PRIVATE_OWNER_KEY);
|
|
console.log("Minting punk...")
|
|
const transactionReceipt = await web3.eth.sendSignedTransaction(signedTx.rawTransaction);
|
|
|
|
console.log(`Transaction receipt: ${JSON.stringify(transactionReceipt)}`);
|
|
}
|
|
|
|
async function mintPunk() {
|
|
const nonce = await web3.eth.getTransactionCount(process.env.PUBLIC_KEY, 'latest'); //get latest nonce
|
|
|
|
//the transaction
|
|
const tx = {
|
|
'from': process.env.PUBLIC_KEY,
|
|
'to': contractAddress,
|
|
'value': .001 * Math.pow(10, 18) * 2,
|
|
'nonce': nonce,
|
|
'gas': 150000,
|
|
'maxFeePerGasGwei': 40,
|
|
// 'maxPriorityFeePerGas': 1000000000,
|
|
'maxPriorityFeePerGasGwei': 1,
|
|
'data': nftContract.methods.mintPunk(2).encodeABI()
|
|
};
|
|
|
|
const signedTx = await web3.eth.accounts.signTransaction(tx, process.env.PRIVATE_KEY);
|
|
console.log("Minting punk...")
|
|
const transactionReceipt = await web3.eth.sendSignedTransaction(signedTx.rawTransaction);
|
|
|
|
console.log(`Transaction receipt: ${JSON.stringify(transactionReceipt)}`);
|
|
}
|
|
|
|
// const fs = require('fs')
|
|
// const base64 = require('base-64');
|
|
|
|
// fs.readFile('scripts/geo.json', 'utf8' , (err, data) => {
|
|
// if (err) {
|
|
// console.error(err)
|
|
// return
|
|
// }
|
|
// // console.log("data:application/json;base64," + base64.encode(data))
|
|
// // mintNFT("data:application/json;base64," + base64.encode(data))
|
|
// })
|
|
|
|
// mintOwnerNFT()
|
|
mintPunk()
|