Skip to content

create for number of stamp #2

@codingshot

Description

@codingshot

show total number of stamp

reference code here (from nada.bot home page)

`
import { useState, useEffect } from "react";
import Big from "big.js";
import * as nearAPI from "near-api-js";

const { keyStores, connect, Contract } = nearAPI;

const Status = () => {
const [statsData, setStatsData] = useState({
verified_providers: "-",
total_checks: "-",
verified_humans: "-",
});
useEffect(() => {
(async function () {
const myKeyStore = new keyStores.InMemoryKeyStore();

  const connectionConfig = {
    networkId: "mainnet",
    keyStore: myKeyStore,
    nodeUrl: "https://rpc.mainnet.near.org",
    walletUrl: "https://wallet.mainnet.near.org",
    helperUrl: "https://helper.mainnet.near.org",
    explorerUrl: "https://explorer.mainnet.near.org",
  };

  // connect to NEAR
  const nearConnection = await connect(connectionConfig);
  const account = await nearConnection.account();
  const contract = new Contract(account, "v1.nadabot.near", {
    viewMethods: ["get_providers", "get_users_for_stamp", "is_human"],
  });

  //   get Active Provdiers
  const activeProviders = await contract.get_providers({
    status: "Active",
  });

  //   get Total Checks
  const providers = await contract.get_providers();
  let totalStamps = 0;
  providers.forEach((provider) => (totalStamps += provider.stamp_count));

  //   get Humans Verified

  // Get All Users
  let totalUsers = [];
  for (const provider of providers) {
    const users = await contract.get_users_for_stamp({
      provider_id: provider.provider_id,
    });
    totalUsers.push(...users);
  }
  totalUsers = [...new Set(totalUsers)];
  // Verify Users
  let humanVerified = 0;
  for (const user of totalUsers) {
    const isHuman = await contract.is_human({
      account_id: user,
    });
    if (isHuman) humanVerified += 1;
  }

  const statsData = {
    verified_providers: activeProviders.length,
    total_checks: totalStamps,
    verified_humans: humanVerified,
  };
  setStatsData(statsData);
})();

}, []);
return (





{statsData.verified_humans}

Humans Verified




{statsData.verified_providers}

Verified Providers




{statsData.total_checks}

Total Checks




);
};

export default Status;
`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions