@huddle01/web3
v0.0.2
Published
![Huddle01 Logo](https://huddle01-assets-frontend.s3.amazonaws.com/general/huddle01-logo-blue.svg)
Downloads
42
Readme
Huddle01 Web3 Helper
The @huddle01/web3 package provides utility functions for integrating Web3 functionality with Huddle01, including NFT fetching, DID resolution, and access token generation.
Installation
npm install @huddle01/web3
yarn add @huddle01/web3
pnpm add @huddle01/web3
Usage
Fetch User NFTs
Retrieves NFTs owned by a given address across specified chains.
import { fetchUserNFT } from "@huddle01/web3";
const address = "0x1234567890123456789012345678901234567890";
const chains = ["polygon", "ethereum", "arbitrum"];
const nfts = await fetchUserNFT(address, chains);
console.log(nfts);
Resolve Arbitrum DID
Resolves a Decentralized Identifier (DID) for an Arbitrum address.
import { resolveArbDID } from "@huddle01/web3";
const address = "0x1234567890123456789012345678901234567890";
const did = await resolveArbDID(address);
console.log(did);
Generate Access Token
Generates an access token for a user based on NFT ownership and room data.
import { Role } from "@huddle01/server-sdk/auth";
import { generateAccessToken } from "@huddle01/web3";
const authData = {
condition: "ERC721",
address: "0x1234567890123456789012345678901234567890",
chainId: 1,
contractAddress: "0x1234567890123456789012345678901234567890",
tokenId: "1",
};
const roomData = {
roomId: "your-room-id",
apiKey: "your-api-key",
role: Role.HOST,
};
const token = await generateAccessToken(authData, roomData);
console.log(token);
API Reference
fetchUserNFT(address: string, chains: string[]): Promise<NFT[]>
Fetches NFTs owned by the given address across specified chains.
address
: The Ethereum address to fetch NFTs for.chains
: An array of chain names to search for NFTs.
resolveArbDID(address: string): Promise<string>
Resolves the Arbitrum Decentralized Identifier (DID) for the given address.
address
: The Ethereum address to resolve the DID for.
generateAccessToken(data: CheckAuthData, roomData: TRoomData): Promise<string | null>
Generates an access token for a user based on NFT ownership and room data.
data
: Authentication data including condition type and NFT details.roomData
: Room information including room ID, API key, and user role.
Error Handling
All functions in this package use try-catch blocks for error handling. Errors are logged to the console and can be caught in your application for custom error handling.
Dependencies
This package relies on the following dependencies:
@huddle01/server-sdk/auth
: For access token generation.- SimpleHash API: For fetching NFT data.
- Space ID API: For resolving Arbitrum DIDs.
Make sure to set up the necessary API keys and environment variables as required by these dependencies.
Contributing
We welcome contributions to the @huddle01/web3 package. Please feel free to submit issues and pull requests on our GitHub repository.
License
For more information, visit the Huddle01 documentation.