/BC_On_Chain_Membership

NUS Fintech Society AY22/23 Winter Project

Primary LanguageTypeScriptApache License 2.0Apache-2.0

NUS Fintechies • Image Description CI

NUS Fintechies is an on-chain membership NFT project done as part of NUS Fintech Society Blockchain Department's Winter Project AY22/23

Directories

├─ frontend ─ "Next.js Frontend"
├─ lib ─ "Contract Dependencies"
├─ script ─ "Foundry scripts for deployment + preview"
├─ scripts ─ "Typescript tests for previewing NFTs"
├─ src ─ Contract Source Code
├─ test ─ Tests for Contracts (Hardhat and Foundry)

Contracts

interfaces
├── INUSFintechieMetadata"Interface for metadata contract"
├── INUSFintechieRenderer"Interface for renderer contract"
├─ NUSFintechieMetadata - "Metadata contract that generates metadata for Fintechie"
├─ NUSFintechieRenderer - "Renderer contract that renders Fintechie SVG"
├─ NUSFintechies - "Main ERC721 + ERC5192 contract"

Getting Started

Dependencies

  • Foundry

    • For windows users, it is better to use WSL so that you can update foundry easily through foundryup
  • Use Foundry:

forge install
forge test
  • Use Hardhat:
npm install
npx hardhat test
  • Write / run tests with either Hardhat or Foundry:
forge test
# or
npx hardhat test
  • Install libraries with Foundry which work with Hardhat.
forge install vectorized/solady # Already in this repo, just an example

Previewing NFTs

  • In order to preview SVGs and their respective metadata
npm run preview

Notes

Whenever you install new libraries using Foundry, make sure to update your remappings.txt file by running forge remappings > remappings.txt.