mirror of
https://github.com/rjNemo/epicNFT
synced 2026-06-12 12:46:39 +00:00
format project
This commit is contained in:
parent
e9aaefcd04
commit
cdcba91f34
18 changed files with 263 additions and 259 deletions
|
|
@ -2,6 +2,10 @@
|
||||||
|
|
||||||
Demo NFT collection for learning purposes.
|
Demo NFT collection for learning purposes.
|
||||||
|
|
||||||
|
Deployed on [link](https://keen-swan-c84e28.netlify.app/)
|
||||||
|
|
||||||
|
[](https://opensea.io/assets/matic/0x3cd266509d127d0eac42f4474f57d0526804b44e/16596)
|
||||||
|
|
||||||
## OpenSea Testnet
|
## OpenSea Testnet
|
||||||
|
|
||||||
1. https://testnets.opensea.io/collection/squarenft-cd2xk3yh7v
|
1. https://testnets.opensea.io/collection/squarenft-cd2xk3yh7v
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,7 @@
|
||||||
/* KeyFrames */
|
/* KeyFrames */
|
||||||
@-webkit-keyframes gradient-animation {
|
@-webkit-keyframes gradient-animation {
|
||||||
0% {
|
0% {
|
||||||
background-position: 0% 50%;
|
background-position: 0 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
|
|
@ -100,13 +100,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
background-position: 0% 50%;
|
background-position: 0 50%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@-moz-keyframes gradient-animation {
|
@-moz-keyframes gradient-animation {
|
||||||
0% {
|
0% {
|
||||||
background-position: 0% 50%;
|
background-position: 0 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
|
|
@ -114,13 +114,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
background-position: 0% 50%;
|
background-position: 0 50%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes gradient-animation {
|
@keyframes gradient-animation {
|
||||||
0% {
|
0% {
|
||||||
background-position: 0% 50%;
|
background-position: 0 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
|
|
@ -128,6 +128,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
background-position: 0% 50%;
|
background-position: 0 50%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import "./App.css";
|
|
||||||
import { providers, Contract } from "ethers";
|
|
||||||
import { useEffect, useState } from "react";
|
|
||||||
import { withEth } from "./lib/eth";
|
|
||||||
import epicNFT from "./lib/epicNFT.json";
|
|
||||||
import {LoadingOverlay} from "@mantine/core";
|
import {LoadingOverlay} from "@mantine/core";
|
||||||
|
import {Contract, providers} from "ethers";
|
||||||
|
import {useEffect, useState} from "react";
|
||||||
|
import "./App.css";
|
||||||
|
import epicNFT from "./lib/epicNFT.json";
|
||||||
|
import {withEth} from "./lib/eth";
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
const [currentAccount, setCurrentAccount] = useState("");
|
const [currentAccount, setCurrentAccount] = useState("");
|
||||||
|
|
@ -13,6 +13,7 @@ function App() {
|
||||||
const [link, setLink] = useState("");
|
const [link, setLink] = useState("");
|
||||||
|
|
||||||
const contractAddress = process.env.REACT_APP_STAGING_CONTRACT_ADDRESS;
|
const contractAddress = process.env.REACT_APP_STAGING_CONTRACT_ADDRESS;
|
||||||
|
const collectionAddress = process.env.REACT_APP_COLLECTION_ADDRESS;
|
||||||
const contractABI = epicNFT.abi;
|
const contractABI = epicNFT.abi;
|
||||||
|
|
||||||
const checkIfWalletConnected = withEth(async (ethereum) => {
|
const checkIfWalletConnected = withEth(async (ethereum) => {
|
||||||
|
|
@ -113,7 +114,7 @@ function App() {
|
||||||
className="cta-button connect-wallet-button"
|
className="cta-button connect-wallet-button"
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
window.open(
|
window.open(
|
||||||
"https://testnets.opensea.io/collection/squarenft-noshuqlivp",
|
collectionAddress,
|
||||||
"_blank"
|
"_blank"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import ReactDOM from "react-dom";
|
import ReactDOM from "react-dom";
|
||||||
import reportWebVitals from "./reportWebVitals";
|
|
||||||
import App from "./App";
|
import App from "./App";
|
||||||
import "./index.css";
|
import "./index.css";
|
||||||
|
import reportWebVitals from "./reportWebVitals";
|
||||||
|
|
||||||
ReactDOM.render(
|
ReactDOM.render(
|
||||||
<React.StrictMode>
|
<React.StrictMode>
|
||||||
|
|
|
||||||
|
|
@ -11,17 +11,16 @@ contract EpicNFT is ERC721URIStorage {
|
||||||
Counters.Counter private _tokenIds;
|
Counters.Counter private _tokenIds;
|
||||||
|
|
||||||
event NewEpicNFTMinted(address sender, uint256 tokenID);
|
event NewEpicNFTMinted(address sender, uint256 tokenID);
|
||||||
uint256 private maxTokenAllowed = 50;
|
|
||||||
|
uint256 private constant MAX_NFT_ALLOWED = 50;
|
||||||
|
|
||||||
constructor() ERC721("SquareNFT", "SQUARE") {
|
constructor() ERC721("SquareNFT", "SQUARE") {
|
||||||
console.log("My first NFT contract! EPIC!!!");
|
console.log("My first NFT contract! EPIC!!!");
|
||||||
}
|
}
|
||||||
|
|
||||||
string baseSvg1 =
|
string baseSvg1 = "<svg xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='xMinYMin meet' viewBox='0 0 350 350'><style>.base { fill:";
|
||||||
"<svg xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='xMinYMin meet' viewBox='0 0 350 350'><style>.base { fill:";
|
|
||||||
|
|
||||||
string baseSvg2 =
|
string baseSvg2 = "; font-family: serif; font-size: 24px; }</style><rect width='100%' height='100%' fill='black' /><text x='50%' y='50%' class='base' dominant-baseline='middle' text-anchor='middle'>";
|
||||||
"; font-family: serif; font-size: 24px; }</style><rect width='100%' height='100%' fill='black' /><text x='50%' y='50%' class='base' dominant-baseline='middle' text-anchor='middle'>";
|
|
||||||
|
|
||||||
string[] colors = [
|
string[] colors = [
|
||||||
"red",
|
"red",
|
||||||
|
|
@ -81,13 +80,13 @@ contract EpicNFT is ERC721URIStorage {
|
||||||
return _tokenIds.current();
|
return _tokenIds.current();
|
||||||
}
|
}
|
||||||
|
|
||||||
function getMaxNFTAllowed() public view returns(uint){
|
function getMaxNFTAllowed() public pure returns (uint) {
|
||||||
return maxTokenAllowed;
|
return MAX_NFT_ALLOWED;
|
||||||
}
|
}
|
||||||
|
|
||||||
function mint() public {
|
function mint() public {
|
||||||
require(
|
require(
|
||||||
_tokenIds.current() < maxTokenAllowed,
|
_tokenIds.current() < MAX_NFT_ALLOWED,
|
||||||
"the maximum of EpicNFT has already been minted"
|
"the maximum of EpicNFT has already been minted"
|
||||||
);
|
);
|
||||||
uint256 tokenID = _tokenIds.current();
|
uint256 tokenID = _tokenIds.current();
|
||||||
|
|
|
||||||
BIN
screenshots/Screenshot 2022-04-07 at 11.50.25.png
Normal file
BIN
screenshots/Screenshot 2022-04-07 at 11.50.25.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 117 KiB |
BIN
screenshots/Screenshot 2022-04-07 at 18.54.18.png
Normal file
BIN
screenshots/Screenshot 2022-04-07 at 18.54.18.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 110 KiB |
BIN
screenshots/Screenshot 2022-04-07 at 19.27.52.png
Normal file
BIN
screenshots/Screenshot 2022-04-07 at 19.27.52.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
BIN
screenshots/Screenshot 2022-04-08 at 05.59.44.png
Normal file
BIN
screenshots/Screenshot 2022-04-08 at 05.59.44.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 223 KiB |
Loading…
Reference in a new issue