Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/nameai-api-lambda-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ jobs:

- name: Build and deploy lambda
env:
PROVIDER_URI_MAINNET: ${{ secrets.PROVIDER_URI_MAINNET }}
PROVIDER_URI_SEPOLIA: ${{ secrets.PROVIDER_URI_SEPOLIA }}
ENSNODE_URL_MAINNET: ${{ secrets.ENSNODE_URL_MAINNET }}
ENSNODE_URL_SEPOLIA: ${{ secrets.ENSNODE_URL_SEPOLIA }}
ALCHEMY_URI_MAINNET: ${{ secrets.ALCHEMY_URI_MAINNET }}
ALCHEMY_URI_SEPOLIA: ${{ secrets.ALCHEMY_URI_SEPOLIA }}
ENS_SUBGRAPH_URL_MAINNET: ${{ secrets.ENS_SUBGRAPH_URL_MAINNET }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/nameguard-api-lambda-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ jobs:

- name: Build and deploy lambda
env:
PROVIDER_URI_MAINNET: ${{ secrets.PROVIDER_URI_MAINNET }}
PROVIDER_URI_SEPOLIA: ${{ secrets.PROVIDER_URI_SEPOLIA }}
ENSNODE_URL_MAINNET: ${{ secrets.ENSNODE_URL_MAINNET }}
ENSNODE_URL_SEPOLIA: ${{ secrets.ENSNODE_URL_SEPOLIA }}
ALCHEMY_URI_MAINNET: ${{ secrets.ALCHEMY_URI_MAINNET }}
ALCHEMY_URI_SEPOLIA: ${{ secrets.ALCHEMY_URI_SEPOLIA }}
ENS_SUBGRAPH_URL_MAINNET: ${{ secrets.ENS_SUBGRAPH_URL_MAINNET }}
Expand Down
7 changes: 2 additions & 5 deletions .github/workflows/nameguard-end-to-end-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ jobs:
if: needs.check_changes.outputs.api_changed > 0
working-directory: ./packages/nameguard-python
env:
PROVIDER_URI_MAINNET: ${{ secrets.PROVIDER_URI_MAINNET }}
PROVIDER_URI_SEPOLIA: ${{ secrets.PROVIDER_URI_SEPOLIA }}
ENSNODE_URL_MAINNET: ${{ secrets.ENSNODE_URL_MAINNET }}
ENSNODE_URL_SEPOLIA: ${{ secrets.ENSNODE_URL_SEPOLIA }}
ALCHEMY_URI_MAINNET: ${{ secrets.ALCHEMY_URI_MAINNET }}
ALCHEMY_URI_SEPOLIA: ${{ secrets.ALCHEMY_URI_SEPOLIA }}
ENS_SUBGRAPH_URL_MAINNET: ${{ secrets.ENS_SUBGRAPH_URL_MAINNET }}
Expand All @@ -104,7 +104,4 @@ jobs:
fi

- name: Run tests
env:
PROVIDER_URI_MAINNET: ${{ secrets.PROVIDER_URI_MAINNET }}
PROVIDER_URI_SEPOLIA: ${{ secrets.PROVIDER_URI_SEPOLIA }}
run: pnpm test --filter ./packages/nameguard-sdk
4 changes: 2 additions & 2 deletions .github/workflows/nameguard-python-unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ on:
- "packages/nameguard-python/**"

env:
PROVIDER_URI_MAINNET: ${{ secrets.PROVIDER_URI_MAINNET }}
PROVIDER_URI_SEPOLIA: ${{ secrets.PROVIDER_URI_SEPOLIA }}
ENSNODE_URL_MAINNET: ${{ secrets.ENSNODE_URL_MAINNET }}
ENSNODE_URL_SEPOLIA: ${{ secrets.ENSNODE_URL_SEPOLIA }}
ALCHEMY_URI_MAINNET: ${{ secrets.ALCHEMY_URI_MAINNET }}
ALCHEMY_URI_SEPOLIA: ${{ secrets.ALCHEMY_URI_SEPOLIA }}
ENS_SUBGRAPH_URL_MAINNET: ${{ secrets.ENS_SUBGRAPH_URL_MAINNET }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/typescript-packages-unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ on:
- "!packages/nameguard-python/**"

env:
PROVIDER_URI_MAINNET: ${{ secrets.PROVIDER_URI_MAINNET }}
PROVIDER_URI_SEPOLIA: ${{ secrets.PROVIDER_URI_SEPOLIA }}
ENSNODE_URL_MAINNET: ${{ secrets.ENSNODE_URL_MAINNET }}
ENSNODE_URL_SEPOLIA: ${{ secrets.ENSNODE_URL_SEPOLIA }}

jobs:
test:
Expand Down
8 changes: 3 additions & 5 deletions apps/api.nameai.io/.env.example
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
# Provider URIs (can be any Ethereum node, e.g. Infura, Alchemy, your own node, etc.).
# The following example values are rate limited.
# Sign up for your own node provider (e.g. Infura, Alchemy, etc.) to remove rate limits.
PROVIDER_URI_MAINNET=https://rpc.ankr.com/eth
PROVIDER_URI_SEPOLIA=https://rpc.ankr.com/eth_sepolia
# ENSNode URLs
ENSNODE_URL_MAINNET=https://api.alpha.ensnode.io
ENSNODE_URL_SEPOLIA=https://api.alpha-sepolia.ensnode.io

# Alchemy API URIs (needed for their NFT API for NameGuard's fake ENS NFT checks)
# Replace [YOUR_ALCHEMY_API_KEY] with your actual Alchemy API key).
Expand Down
4 changes: 1 addition & 3 deletions apps/api.nameai.io/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,6 @@ Ensure that Docker and the AWS CLI are installed and configured on your machine.

You need to set up the following environment variables before running the script:

- `PROVIDER_URI_MAINNET`
- `PROVIDER_URI_SEPOLIA`
- `ALCHEMY_URI_MAINNET`
- `ALCHEMY_URI_SEPOLIA`
- `ENS_SUBGRAPH_URL_MAINNET`
Expand All @@ -93,7 +91,7 @@ If you are using GitHub Actions for deployment, you need to configure the follow

- `AWS_ROLE` - The IAM role to assume for AWS actions.
- `AWS_REGION` - The AWS region where your resources are located.
- `PROVIDER_URI_MAINNET`, `PROVIDER_URI_SEPOLIA`, `ALCHEMY_URI_MAINNET`, `ALCHEMY_URI_SEPOLIA`, `ENS_SUBGRAPH_URL_MAINNET`, `ENS_SUBGRAPH_URL_SEPOLIA` - The respective URIs for your application.
- `ALCHEMY_URI_MAINNET`, `ALCHEMY_URI_SEPOLIA`, `ENS_SUBGRAPH_URL_MAINNET`, `ENS_SUBGRAPH_URL_SEPOLIA` - The respective URIs for your application.
- `CERTIFICATE_NAME` - The name of the ACM certificate.
- `HOSTED_ZONE_NAME` - The name of your Route 53 hosted zone.
- `PROD_DOMAIN_NAME` - The production domain name.
Expand Down
8 changes: 4 additions & 4 deletions apps/api.nameai.io/terraform/deploy_lambda.sh
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ done
# Validate Lambda environment variables
echo "Validating Lambda environment variables..."
LAMBDA_ENV_VARS=(
"PROVIDER_URI_MAINNET"
"PROVIDER_URI_SEPOLIA"
"ENSNODE_URL_MAINNET"
"ENSNODE_URL_SEPOLIA"
"ALCHEMY_URI_MAINNET"
"ALCHEMY_URI_SEPOLIA"
"ENS_SUBGRAPH_URL_MAINNET"
Expand Down Expand Up @@ -219,8 +219,8 @@ IMAGE_URI=`docker inspect --format='{{index .RepoDigests 0}}' ${ECR_URL}:latest`
echo "Using Image URI: ${IMAGE_URI}"

# Export individual environment variables for Terraform
export TF_VAR_PROVIDER_URI_MAINNET="${PROVIDER_URI_MAINNET}"
export TF_VAR_PROVIDER_URI_SEPOLIA="${PROVIDER_URI_SEPOLIA}"
export TF_VAR_ENSNODE_URL_MAINNET="${ENSNODE_URL_MAINNET}"
export TF_VAR_ENSNODE_URL_SEPOLIA="${ENSNODE_URL_SEPOLIA}"
export TF_VAR_ALCHEMY_URI_MAINNET="${ALCHEMY_URI_MAINNET}"
export TF_VAR_ALCHEMY_URI_SEPOLIA="${ALCHEMY_URI_SEPOLIA}"
export TF_VAR_ENS_SUBGRAPH_URL_MAINNET="${ENS_SUBGRAPH_URL_MAINNET}"
Expand Down
4 changes: 2 additions & 2 deletions apps/api.nameai.io/terraform/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ module "lambda_api" {
aws_region = var.aws_region

# Lambda environment variables
PROVIDER_URI_MAINNET = var.PROVIDER_URI_MAINNET
PROVIDER_URI_SEPOLIA = var.PROVIDER_URI_SEPOLIA
ENSNODE_URL_MAINNET = var.ENSNODE_URL_MAINNET
ENSNODE_URL_SEPOLIA = var.ENSNODE_URL_SEPOLIA
ALCHEMY_URI_MAINNET = var.ALCHEMY_URI_MAINNET
ALCHEMY_URI_SEPOLIA = var.ALCHEMY_URI_SEPOLIA
ENS_SUBGRAPH_URL_MAINNET = var.ENS_SUBGRAPH_URL_MAINNET
Expand Down
4 changes: 2 additions & 2 deletions apps/api.nameai.io/terraform/modules/lambda_api/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ resource "aws_lambda_function" "nameai_lambda" {

environment {
variables = {
PROVIDER_URI_MAINNET = var.PROVIDER_URI_MAINNET
PROVIDER_URI_SEPOLIA = var.PROVIDER_URI_SEPOLIA
ENSNODE_URL_MAINNET = var.ENSNODE_URL_MAINNET
ENSNODE_URL_SEPOLIA = var.ENSNODE_URL_SEPOLIA
ALCHEMY_URI_MAINNET = var.ALCHEMY_URI_MAINNET
ALCHEMY_URI_SEPOLIA = var.ALCHEMY_URI_SEPOLIA
ENS_SUBGRAPH_URL_MAINNET = var.ENS_SUBGRAPH_URL_MAINNET
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@ variable "aws_region" {
}

# Lambda environment variables
variable "PROVIDER_URI_MAINNET" {
description = "Provider URI for Mainnet"
variable "ENSNODE_URL_MAINNET" {
description = "ENSNode URL for Mainnet"
type = string
sensitive = true
}

variable "PROVIDER_URI_SEPOLIA" {
description = "Provider URI for Sepolia"
variable "ENSNODE_URL_SEPOLIA" {
description = "ENSNode URL for Sepolia"
type = string
sensitive = true
}
Expand Down
8 changes: 4 additions & 4 deletions apps/api.nameai.io/terraform/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@ variable "aws_region" {
}

# Lambda environment variables
variable "PROVIDER_URI_MAINNET" {
description = "Provider URI for Mainnet"
variable "ENSNODE_URL_MAINNET" {
description = "ENSNode URL for Mainnet"
type = string
sensitive = true
}

variable "PROVIDER_URI_SEPOLIA" {
description = "Provider URI for Sepolia"
variable "ENSNODE_URL_SEPOLIA" {
description = "ENSNode URL for Sepolia"
type = string
sensitive = true
}
Expand Down
6 changes: 2 additions & 4 deletions apps/api.nameguard.io/terraform/deploy_lambda.sh
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ done
# Validate Lambda environment variables
echo "Validating Lambda environment variables..."
LAMBDA_ENV_VARS=(
"PROVIDER_URI_MAINNET"
"PROVIDER_URI_SEPOLIA"
"ENSNODE_URL_MAINNET"
"ENSNODE_URL_SEPOLIA"
"ALCHEMY_URI_MAINNET"
"ALCHEMY_URI_SEPOLIA"
"ENS_SUBGRAPH_URL_MAINNET"
Expand Down Expand Up @@ -222,8 +222,6 @@ IMAGE_URI=`docker inspect --format='{{index .RepoDigests 0}}' ${ECR_URL}:latest`
echo "Using Image URI: ${IMAGE_URI}"

# Export individual environment variables for Terraform
export TF_VAR_PROVIDER_URI_MAINNET="${PROVIDER_URI_MAINNET}"
export TF_VAR_PROVIDER_URI_SEPOLIA="${PROVIDER_URI_SEPOLIA}"
export TF_VAR_ALCHEMY_URI_MAINNET="${ALCHEMY_URI_MAINNET}"
export TF_VAR_ALCHEMY_URI_SEPOLIA="${ALCHEMY_URI_SEPOLIA}"
export TF_VAR_ENS_SUBGRAPH_URL_MAINNET="${ENS_SUBGRAPH_URL_MAINNET}"
Expand Down
4 changes: 2 additions & 2 deletions apps/api.nameguard.io/terraform/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ module "lambda_api" {
aws_region = var.aws_region

# Lambda environment variables
PROVIDER_URI_MAINNET = var.PROVIDER_URI_MAINNET
PROVIDER_URI_SEPOLIA = var.PROVIDER_URI_SEPOLIA
ENSNODE_URL_MAINNET = var.ENSNODE_URL_MAINNET
ENSNODE_URL_SEPOLIA = var.ENSNODE_URL_SEPOLIA
ALCHEMY_URI_MAINNET = var.ALCHEMY_URI_MAINNET
ALCHEMY_URI_SEPOLIA = var.ALCHEMY_URI_SEPOLIA
ENS_SUBGRAPH_URL_MAINNET = var.ENS_SUBGRAPH_URL_MAINNET
Expand Down
4 changes: 2 additions & 2 deletions apps/api.nameguard.io/terraform/modules/lambda_api/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ resource "aws_lambda_function" "nameguard_lambda" {

environment {
variables = {
PROVIDER_URI_MAINNET = var.PROVIDER_URI_MAINNET
PROVIDER_URI_SEPOLIA = var.PROVIDER_URI_SEPOLIA
ENSNODE_URL_MAINNET = var.ENSNODE_URL_MAINNET
ENSNODE_URL_SEPOLIA = var.ENSNODE_URL_SEPOLIA
ALCHEMY_URI_MAINNET = var.ALCHEMY_URI_MAINNET
ALCHEMY_URI_SEPOLIA = var.ALCHEMY_URI_SEPOLIA
ENS_SUBGRAPH_URL_MAINNET = var.ENS_SUBGRAPH_URL_MAINNET
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@ variable "aws_region" {
}

# Lambda environment variables
variable "PROVIDER_URI_MAINNET" {
description = "Provider URI for Mainnet"
variable "ENSNODE_URL_MAINNET" {
description = "ENSNode URL for Mainnet"
type = string
sensitive = true
}

variable "PROVIDER_URI_SEPOLIA" {
description = "Provider URI for Sepolia"
variable "ENSNODE_URL_SEPOLIA" {
description = "ENSNode URL for Sepolia"
type = string
sensitive = true
}
Expand Down
8 changes: 4 additions & 4 deletions apps/api.nameguard.io/terraform/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@ variable "aws_region" {
}

# Lambda environment variables
variable "PROVIDER_URI_MAINNET" {
description = "Provider URI for Mainnet"
variable "ENSNODE_URL_MAINNET" {
description = "ENSNode URL for Mainnet"
type = string
sensitive = true
}

variable "PROVIDER_URI_SEPOLIA" {
description = "Provider URI for Sepolia"
variable "ENSNODE_URL_SEPOLIA" {
description = "ENSNode URL for Sepolia"
type = string
sensitive = true
}
Expand Down
6 changes: 3 additions & 3 deletions apps/docs.namekit.io/nameguard/self-hosting.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ pip install nameguard
<Step title="Configure API keys">

```bash
export PROVIDER_URI_MAINNET=https://eth-mainnet.g.alchemy.com/v2/[YOUR_ALCHEMY_API_KEY]
export PROVIDER_URI_SEPOLIA=https://eth-sepolia.g.alchemy.com/v2/[YOUR_ALCHEMY_API_KEY]
export ENSNODE_URL_MAINNET=https://api.alpha.ensnode.io
export ENSNODE_URL_SEPOLIA=https://api.alpha-sepolia.ensnode.io
export ALCHEMY_URI_MAINNET=https://eth-mainnet.g.alchemy.com/v2/[YOUR_ALCHEMY_API_KEY]
export ALCHEMY_URI_SEPOLIA=https://eth-sepolia.g.alchemy.com/v2/[YOUR_ALCHEMY_API_KEY]
export ENS_SUBGRAPH_URL_MAINNET="https://gateway-arbitrum.network.thegraph.com/api/[YOUR_SUBGRAPH_API_KEY]/subgraphs/id/5XqPmWe6gjyrJtFn9cLy237i4cWw2j9HcUJEXsP5qGtH"
export ENS_SUBGRAPH_URL_SEPOLIA="https://gateway-arbitrum.network.thegraph.com/api/[YOUR_SUBGRAPH_API_KEY]/subgraphs/id/DmMXLtMZnGbQXASJ7p1jfzLUbBYnYUD9zNBTxpkjHYXV"
export ENS_SUBGRAPH_URL_SEPOLIA="https://gateway-arbitrum.network.thegraph.com/api/[YOUR_SUBGRAPH_API_KEY]/subgraphs/id/G1SxZs317YUb9nQX3CC98hDyvxfMJNZH5pPRGpNrtvwN"

```

Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,8 @@
import { createClient } from "@namehash/nameguard-js";
import { createPublicClient, http } from "viem";
import { mainnet } from "viem/chains";
import { headers } from "next/headers";

// This is a server component, so your secrets are safe
const PROVIDER_URI_MAINNET = process.env.PROVIDER_URI_MAINNET;

// You can use your own client
const publicClient = createPublicClient({
chain: mainnet,
// For example, put your own URI here
transport: http(PROVIDER_URI_MAINNET),
});

const nameguard = createClient({ publicClient });
// No longer need a public client - we use ENS node API directly
const nameguard = createClient({ network: "mainnet" });

interface Props {
address: string;
Expand Down
2 changes: 1 addition & 1 deletion packages/nameai-sdk/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ class NameAIError extends Error {
const DEFAULT_ENDPOINT = "https://api.nameai.io/";
const DEFAULT_NETWORK: Network = "mainnet";
const DEFAULT_INSPECT_LABELHASH_PARENT = ETH_TLD;
export const DEFAULT_COMPUTE_NAMEGUARD_REPORT = false;
export const DEFAULT_RETURN_NAMEGUARD_REPORT = false;
const MAX_BULK_INSPECTION_NAMES = 250;

/** includes label separators */
Expand Down
6 changes: 3 additions & 3 deletions packages/nameguard-js/.example.env
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

# These URIs are used inside unit tests and examples for looking up on-chain data.
# Note: The following environment variables are optional.
# If they are not set, the application will default to using the free public API.
# If they are not set, the application will default to using the free ENSNode API.
# This can cause "too many requests" errors when running tests frequently.
PROVIDER_URI_MAINNET='https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY'
PROVIDER_URI_SEPOLIA='https://eth-sepolia.g.alchemy.com/v2/YOUR_API_KEY'
ENSNODE_URL_MAINNET='https://api.alpha.ensnode.io'
ENSNODE_URL_SEPOLIA='https://api.alpha-sepolia.ensnode.io'
34 changes: 27 additions & 7 deletions packages/nameguard-js/src/lookup.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,35 @@
import { PublicClient } from "viem";

/**
* Looks up the primary name associated with the given address.
* Looks up the primary name associated with the given address using ENS node API.
*
* @param address - The address to lookup.
* @param client - The viem client instance used for the lookup.
* @param network - The network to query ("mainnet" or "sepolia").
* @returns A Promise that resolves to the primary name associated with the address, or null if not found.
*/
export function lookupPrimaryName(
export async function lookupPrimaryName(
address: string,
client: PublicClient,
network: "mainnet" | "sepolia",
): Promise<string | null> {
return client.getEnsName({ address });
const baseUrl = network === "mainnet"
? process.env.ENSNODE_URL_MAINNET || "https://api.alpha.ensnode.io"
: process.env.ENSNODE_URL_SEPOLIA || "https://api.alpha-sepolia.ensnode.io";

const chainId = network === "mainnet" ? 1 : 11155111;
const url = `${baseUrl}/api/resolve/primary-name/${address}/${chainId}`;

try {
const response = await fetch(`${url}?accelerate=true`);

if (response.status === 404) {
return null;
}

if (!response.ok) {
throw new Error(`ENS node API error: ${response.status} ${response.statusText}`);
}

const data = await response.json();
return data.name || null;
} catch (error) {
throw new Error(`Failed to lookup primary name: ${error}`);
}
}
Loading
Loading