Skip to content

create for number of stamp #2

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions