0.0.2 • Published 1 year ago

@huddle01/web3 v0.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Huddle01 Web3 Helper

Huddle01 Logo

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

MIT License


For more information, visit the Huddle01 documentation.

0.0.2

1 year ago

0.0.1

1 year ago

0.0.0-dev.2

1 year ago

0.0.0-dev.1

1 year ago

0.0.0-dev.0

1 year ago