Initial commit with 🏗️ Scaffold-ETH 2 @ 1.0.5

This commit is contained in:
han
2026-01-10 18:17:37 +07:00
commit 98751c5b87
165 changed files with 29073 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
# Write tests for your smart contract in this directory
# Example: YourContract.ts

View File

@@ -0,0 +1,58 @@
//
// This script executes when you run 'yarn test'
//
import { ethers } from "hardhat";
import { expect } from "chai";
import { YourCollectible } from "../typechain-types";
describe("🚩 Challenge: 🎟 Tokenization 🤓", function () {
let myContract: YourCollectible;
describe("YourCollectible", function () {
const contractAddress = process.env.CONTRACT_ADDRESS;
let contractArtifact: string;
if (contractAddress) {
// For the autograder
contractArtifact = `contracts/download-${contractAddress}.sol:YourCollectible`;
} else {
contractArtifact = "contracts/YourCollectible.sol:YourCollectible";
}
it("Should deploy the contract", async function () {
const YourCollectible = await ethers.getContractFactory(contractArtifact);
myContract = await YourCollectible.deploy();
console.log("\t", " 🛰 Contract deployed on", await myContract.getAddress());
});
describe("mintItem()", function () {
it("Should be able to mint an NFT", async function () {
const [owner] = await ethers.getSigners();
console.log("\t", " 🧑‍🏫 Tester Address: ", owner.address);
const startingBalance = await myContract.balanceOf(owner.address);
console.log("\t", " ⚖️ Starting balance: ", Number(startingBalance));
console.log("\t", " 🔨 Minting...");
const mintResult = await myContract.mintItem(owner.address, "QmfVMAmNM1kDEBYrC2TPzQDoCRFH6F5tE1e9Mr4FkkR5Xr");
console.log("\t", " 🏷 mint tx: ", mintResult.hash);
console.log("\t", " ⏳ Waiting for confirmation...");
const txResult = await mintResult.wait();
expect(txResult?.status).to.equal(1);
console.log("\t", " 🔎 Checking new balance: ", Number(startingBalance));
expect(await myContract.balanceOf(owner.address)).to.equal(startingBalance + 1n);
});
it("Should track tokens of owner by index", async function () {
const [owner] = await ethers.getSigners();
const startingBalance = await myContract.balanceOf(owner.address);
const token = await myContract.tokenOfOwnerByIndex(owner.address, startingBalance - 1n);
expect(token).to.greaterThan(0);
});
});
});
});