compound-vr-on-chain-friends-sdk-eth-india-2023
v1.0.1
Published
## Description
Downloads
3
Readme
Airstack On-Chain Friends SDK (by Compound VR EthIndia 2023)
Description
This repository contains a set of scripts and utilities for fetching, processing, and visualizing blockchain-related data. The primary focus is on fetching on-chain graph data, calculating scores for users, transforming data for visualization, and fetching details about NFTs (Non-Fungible Tokens) and POAP (Proof of Attendance Protocol) events.
Getting Started
To use this project, follow the steps below:
Clone the repository:
git clone https://github.com/Hrishikesh-Thakkar/compound-vr-eth-india-2023-sdk.git cd compound-vr-eth-india-2023-sdk
Install dependencies:
npm install
Set up your environment variables:
Create a .env file in the root of the project and add your Airstack API key:
AIRSTACK_API_KEY=your-api-key IDENTITY_OR_ADDRESS=your-identity-or-address
Get data in .json files:
- On ChainGraph Data
- Transformed onchain graph data for visualization graph
- Token Nft data by tokenAddress and tokenId
- POAP event data by eventId and blockchain
Run the following command to see above data for given identity in json files:
npm run fetch
Note
Above command will fetch data for given identity and store it in json files in root folder.
onChainGraphUsers.json
: OnChainGraph Data for given identityonChainGraphWithScore.json
: OnChainGraph Data with score for given identityvisualisationData.json
: Transformed onchain graph data for visualization graph for given identitynft.json
: Token Nft data by tokenAddress, tokenId and blockchainpoapEvent.json
: POAP event data by eventId and blockchain
Functions
fetchOnChainGraphData(identityOrAddress):[recommendedUsers]
: Fetches onchain graph data for a given identity or address as input and returns onchain graph datatransformData(recommendedUsers, limit):{ nodes, links }
: Takes onchain graph data with score and limit of data to be used as input and returns transformed data for visualization graph in the form of nodes and linkscalculatingScore(recommendedUser, weightsMap):{...recommendedUser, score}
: Takes a recommended user, weightsMap(optional) as input and returns it with a score based on weights of different parameterscreateAddressMap(recommendedUsers):{address: recommendedUser}
: Takes onchain graph data as input and returns a map of address to recommended user for easy access of user details in visualisation graphfetchNftDetails(tokenAddress, tokenId, blockchain):{...nftDetails}
: Takes tokenAddress, tokenId and blockchain as input and returns NFT detailsfetchPoapEventDetails(eventId, blockchain):{...poapEventDetails}
: Takes eventId and blockchain as input and returns POAP event detailsairstack
: A wrapper around the @airstack/node sdk so you don't have to install it separately