@justaname.id/hybrid-primary-name
Version:
**Hybrid Primary Name** is a Viem extension package that enables reverse ENS resolution to fetch the primary ENS name associated with a given Ethereum address. It integrates seamlessly with both Viem's `createPublicClient` and ENS's `createEnsPublicClient
62 lines (45 loc) • 1.98 kB
Markdown
# Hybrid Primary Name
**Hybrid Primary Name** is a Viem extension package that enables reverse ENS resolution to fetch the primary ENS name associated with a given Ethereum address. It integrates seamlessly with both Viem's `createPublicClient` and ENS's `createEnsPublicClient`.
## Table of Contents
- [Hybrid Primary Name](#hybrid-primary-name)
- [Table of Contents](#table-of-contents)
- [Installation](#installation)
- [Initialization](#initialization)
- [Using Viem's `createPublicClient` with ENS Contracts](#using-viems-createpublicclient-with-ens-contracts)
- [Using ENS's `createEnsPublicClient`](#using-enss-createenspublicclient)
- [Usage](#usage)
## Installation
Install the package via **npm** or **yarn**:
```bash
npm install @justaname.id/hybrid-primary-name
# or
yarn add @justaname.id/hybrid-primary-name
```
## Initialization
### Using Viem's `createPublicClient` with ENS Contracts
```typescript
import { createPublicClient, http } from 'viem';
import { addEnsContracts } from '@ensdomains/ensjs';
import { mainnet, sepolia } from 'viem/chains';
import { primaryName } from '@justaname.id/hybrid-primary-name';
const client = createPublicClient({
chain: addEnsContracts(**mainnet or sepolia**),
transport: http(**Provider URL**),
}).extend(primaryName())
```
### Using ENS's `createEnsPublicClient`
```typescript
import { http } from 'viem';
import { createEnsPublicClient } from '@ensdomains/ensjs'
import { mainnet, sepolia } from 'viem/chains';
import { primaryName } from '@justaname.id/hybrid-primary-name';
const client = createEnsPublicClient({
chain: **mainnet or sepolia**,
transport: http(**Provider URL**),
}).extend(primaryName())
```
## Usage
The `getEnsFromAddress` method returns the primary ENS name associated with the given Ethereum address.
```typescript
await client.getEnsFromAddress(**Address**),
```