Skip to content

A full stack digital marketplace running on Ethereum with Polygon & Next.js

Notifications You must be signed in to change notification settings

Mj23978/polygon-ethereum-nextjs-marketplace

Repository files navigation

Full stack digital marketplace built with Polygon, Solidity, IPFS, & Next.js

Header

Running this project

To run this project locally, follow these steps.

  1. Clone the project locally, change into the directory, and install the dependencies:
git clone https://github.com/dabit3/polygon-ethereum-nextjs-marketplace.git

cd polygon-ethereum-nextjs-marketplace

# install using NPM or Yarn
npm install

# or

yarn
  1. Create a file named .secret in the root directory of the project. Either leave it blank or paste in a test account private key if you are going to be deploying to Matic Mumbai.

Consider using an environment variable if working on Matic Mainnet with real tokens and not storing them in a file associated with the project.

  1. Start the local Hardhat node
npx hardhat node
  1. With the network running, deploy the contracts to the local network in a separate terminal window
npx hardhat run scripts/deploy.js --network localhost
  1. Rename config.example.js to config.js and copy the nftmarketaddress and nftaddress values to it.

  2. Start the app

npm run dev

Configuration

The main configuration for this project to work successfully on Polygon is located in hardhat.config.js:

require("@nomiclabs/hardhat-waffle");
const fs = require('fs');
const privateKey = fs.readFileSync(".secret").toString().trim() || "";

// infuraId is optional if you are using Infura RPC
const infuraId = fs.readFileSync(".infuraid").toString().trim() || "";

module.exports = {
  defaultNetwork: "hardhat",
  networks: {
    hardhat: {
      chainId: 1337
    },
    mumbai: {
      // Infura
      // url: `https://polygon-mumbai.infura.io/v3/${infuraId}`
      url: "https://rpc-mumbai.matic.today",
      accounts: [privateKey]
    },
    matic: {
      // Infura
      // url: `https://polygon-mainnet.infura.io/v3/${infuraId}`,
      url: "https://rpc-mainnet.maticvigil.com",
      accounts: [privateKey]
    }
  },
  solidity: {
    version: "0.8.4",
    settings: {
      optimizer: {
        enabled: true,
        runs: 200
      }
    }
  }
};

If using Infura, update .infuraid with your Infura project ID and, if you are planning on deploying to the main network, update .secret with the Private Key of the account that you would like to use to deploy.

About

A full stack digital marketplace running on Ethereum with Polygon & Next.js

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 69.1%
  • Solidity 23.0%
  • CSS 7.7%
  • Shell 0.2%