Skip to content

NFT Explorer πŸ—Ί 🧭 running on Kusama and Polkadot

License

Notifications You must be signed in to change notification settings

corasphinx/nft-gallery

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NFT Explorer for Kusama & Polkadot ecosystem

Coordination

KodaDot NFT Discord

KodaDot NFT Discord

Repository Statistics

Brief code structure

Visualization of this repo Interactive visualization

All Contributors DeepScan grade

DeepSource

GitHub watchers GitHub stars GitHub forks

GitHub contributors GitHub branches

GitHub issues GitHub issues-closed

GitHub total-pull-requests GitHub open-pull-requests

GitHub pull-requests closed GitHub pull-requests merged

GitHub license

Open in Visual Studio Code Contributors over time

Is it maintained?

Average time to resolve an issue Percentage of issues still open

🧫 Culture - where you can read our recent updates

Discontinued for now (if you want help us manage these, shout out on Discord)

πŸ“š Writings by KodaDot team members

Working version ▢️

Roadmap πŸ›£ πŸ—Ί

Development πŸ—

Contribution is welcome! and well rewarded in $KSM!

We are using yarn workspace, as installing things via npm will result in broken dependencies.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Matej Nemček

πŸ’»

Viki Val

πŸ”¬

Jarek KrupiΕ„ski

πŸ’»

Mikhail Krasnoselskii

🌍

jimmy-tudeski

🌍

Harry

🌍

Jiri Rozinek

🌍

Summer2040

🌍

achrafchi

🌍

lunacek

🌍

razi429

🌍

Snyk bot

πŸ›‘οΈ

joaopscastro

🌍

anindyabaidya

🌍

Onuwa Nnachi Isaac

πŸ’»

Ferhat Sirin

🌍

hernanvqt

🌍

Martin Tonhauzer

🌍

katongo11

🌍

kzyxyz

🌍

yacare555

πŸ’»

Ryan Gordon

πŸ’»

Takamasa Arakawa

πŸ’»

dependabot[bot]

πŸ›‘οΈ

allcontributors[bot]

πŸ“’

Made with contributors-img.

πŸ•Ή Play

git clone [email protected]:kodadot/nft-gallery.git
yarn
yarn dev
open http://localhost:9090/

πŸ™‹β€β™€οΈ I want to contribute

Sure, your contribution is welcome. Please follow code of conduct and contribution guidelines

Support the project ⭐

If you feel awesome and want to support us in a small way, please consider starring and sharing the repo! This helps us getting known and grow the community. πŸ™

Patronage πŸ’Έ

We have list of frequent participants in our codebase. You can send them $KSM, native currency we use to payout bounties for Pull Requests and coordinating issues.

Heroes πŸ¦Έβ€β™‚οΈπŸ¦ΈπŸ¦Έβ€β™€οΈ

Want to join?

🐳 Docker

If you just want to try out our KodaDot on Kusama and have a full local setup with a local node, we assume you have docker and docker-compose installed.

Run Kodadot locally

docker-compose up -d --build

Build docker image of KodaDot

docker build . -t kodadot-app

Check if container is up

docker ps

Run it locally and then visit localhost:9090

docker run -p 9090:9090 --name kodadot kodadot-app

Someone clean it pls, bounty for devops kodadot#1635

docker build -t nuxtapp .
docker run -it -p 0.0.0.0:9090:9090 nuxtapp

then go to the http://0.0.0.0:9090

Dev hints

In order to execute some transaction you can use exec located in src/utils/transactionExecutor.ts Usage:

import exec from '@/utils/transactionExecutor';

// arguments: from which account, password for account, which action, array of parameters
this.tx = await exec(this.account, this.password, api.tx.democracy.vote, [referendumId, { aye, conviction }]);

Using reactive properties

Some of the properties on the component needs to be automatically updated (currentBlock)

Usage:

<template>
  <div>{{ currentBlock  }}</div>
</template>

<script lang="ts">
// Skipping imports
export default class Summary extends Vue {
  private currentBlock: any = {};
  private subs: any[] = [];

  public async mounted() {
    this.subs.push(await api.derive.chain.bestNumber(value => this.currentBlock = value));
  }

  // Unsubscribe before destroying component
  public beforeDestroy() {
    this.subs.forEach((sub) => sub());
  }
}

</script>

πŸƒβ€β™€οΈ Quick Setup

Here is a quick setup guide for the project.

git clone https://github.com/kodadot/nft-gallery.git
touch .env

in .env add following properties:

NUXT_ENV_KEYRING=true
PINATA_API_KEY=
PINATA_SECRET_API_KEY=
PINATA_MASTER=
SUBSQUID_ENDPOINT=https://app.gc.subsquid.io/beta/rubick/004/graphql

You can obtain some Westend (WND)

To change the network go to the /settings and change the prefix. Currently supported networks are kusama, westend, statemine, westmint. Wanna add more networks? Open an PR on vue-settings

Install netlify CLI

npm install -g netlify-cli

Install dependencies

yarn

Run the development server

netlify dev

The whole stack will be running on localhost:9000. app is running on localhost:9090.

Running local Polkadot and subquery nodes

To run the full local environment we recommend you to run a polkadot/Kusama node. In case you are using Apple M1, we have a tutorial for that 🍏

To run also a subquery indexing node please check this repo

Linting code

Show all problems

yarn lint

Show only errors

yarn lint --quiet

Fix errors

yarn lint --fix

Dev hints

In order to execute some transaction you can use exec located in src/utils/transactionExecutor.ts Usage:

import exec from '@/utils/transactionExecutor';

// arguments: from which account, password for account, which action, array of parameters
this.tx = await exec(this.account, this.password, api.tx.democracy.vote, [referendumId, { aye, conviction }]);

Using reactive properties

Some of the properties on the component needs to be automatically updated (currentBlock)

Usage:

<template>
  <div>{{ currentBlock  }}</div>
</template>

<script lang="ts">
// Skipping imports
export default class Summary extends Vue {
  private currentBlock: any = {};
  private subs: any[] = [];

  public async mounted() {
    this.subs.push(await api.derive.chain.bestNumber(value => this.currentBlock = value));
  }

  // Unsubscribe before destroying component
  public beforeDestroy() {
    this.subs.forEach((sub) => sub());
  }
}

</script>

Customize configuration

See Configuration Reference.

Generating changelog

To generate changelog use github cli List only merged, if you need limit use -L

gh pr list -s merged --json mergedAt,baseRefName,number,title,headRefName -B main -L 37 | jq -r '.[] | .number, .title' | sed '/^[0-9]/{N; s/\n/ /;}'

Love PermaFrost πŸ‘€

About

NFT Explorer πŸ—Ί 🧭 running on Kusama and Polkadot

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Vue 77.4%
  • TypeScript 19.0%
  • SCSS 1.9%
  • JavaScript 1.7%