Giter Site home page Giter Site logo

ensdomains / docs Goto Github PK

View Code? Open in Web Editor NEW
112.0 112.0 178.0 19.58 MB

Main documentation site for the ENS protocol

Home Page: https://docs.ens.domains/

License: Creative Commons Zero v1.0 Universal

TypeScript 89.44% CSS 2.09% JavaScript 8.46% HTML 0.01%
documentation ens ethereum

docs's People

Contributors

adraffy avatar alexvansande avatar arachnid avatar brantlymillegan avatar carver avatar cfl0ws avatar estmcmxci avatar gskril avatar hemaaanth avatar jefflau avatar johnfawole avatar jontes-tech avatar juanfranblanco avatar lucemans avatar makoto avatar malfurionwhitehat avatar omahs avatar paulieb14 avatar rfikki avatar ryanli-me avatar sean-b765 avatar sephirothx avatar shayanb avatar shpota avatar svemat01 avatar tarekkma avatar tayvano avatar tlammens avatar wwhchung avatar yektas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docs's Issues

Subgraph endpoint update required

Hey team,

We've noticed that you're referencing a subgraph deployed on The Graph's hosted service in this repository. Just a heads-up: after June 12th, hosted service subgraph endpoints will no longer be available as the offering is being deprecated.

If you are the subgraph owner or maintainer, it's time to upgrade your subgraph to the network. This ensures everything keeps running smoothly and you get access to all the latest features and improvements. Here is a quick guide with all the upgrade steps.

If you're not the subgraph owner or maintainer, check Graph Explorer to see if the subgraph development team has already upgraded to the network. If you don’t find an upgraded subgraph, a friendly nudge to the subgraph development team would be greatly appreciated—it's a quick process that benefits everyone. Here's the upgrade guide with all the necessary steps for the subgraph development team.

Once the subgraph is upgraded to the network, you can create an API key and updated query URL in Subgraph Studio then update this repository to query from the new endpoint, https://api.studio.thegraph.com/query/<ID>/<SUBGRAPH_NAME>/<VERSION>

Need more support or have more questions? Feel free to reach out to [email protected]. We're here to help!

Cheers,

Paka

Outdated example for DNSRegistrar

In the docs in the example for Submitting the proof to the DNSRegistrar, the import for the abi seems to be outdated. In the docs it is:

import { abi } from '@ensdomains/contracts/abis/dnsregistrar/DNSRegistrar.json'

but checking the node_modules it should be this:

import abi from "@ensdomains/ens-contracts/build/contracts/DNSRegistrar.json";

Maybe also add a comment that for this to work, the experimental flag has to be set.

Outdated links

The links on the following lines don't work anymore:

To find out the contract address of each tld, check the "controller" address of the tld \(eg: [https://app.ens.domains/name/xyz](https://app.ens.domains/name/xyz) for `.xyz`

For other contract addresses such as root, multisig, controller, public resolver, and so on, you can see their address under [https://app.ens.domains/name/ens.eth/subdomains](https://app.ens.domains/name/ens.eth/subdomains)

Update stewards.mdx

  • Update to reflect Term 5 steward profiles and include hyperlink to Working Group Rules.
  • Link to PR: #205

Add docs on how to set up Tor .onion resolution

ENS domains can be set up to resolve to .onion names as discussed in the following blog posts:

I think it would be helpful to add this information to the documentation. The documentation currently does not have any results for the queries "onion" or "tor".

difference between 'name' and 'domain'

hello, i'd like to know the primary difference between a name and a domain. is it that a name is specified as consisting of at least two labels... whereas domain is more of a generic, colloquial term available for derivation (domain, TLD, subdomain)?

e.g.
valid names:

  • alice.eth
  • iam.alice.eth

valid "domain"s:

  • eth
  • .eth
  • alice.eth
  • iam.alice.eth

More strict Prettier rules

Whenever I press save on a file, there are a lot of formatting changes (indents, quotes, semicolons, etc). Might be partially because of my weird system defaults, but more consistency would be great.

Eg in #226 there is a bigger diff than intended because of formatting.

Create an end to end getting started tutorial for building an app using ENS

As discussed with @Arachnid

Submission Deadline: April 30th
Judging Criteria: Best submission
Judging Date: Week following submission date
Bounty: 2.25 ETH

Guidelines and details

The tutorial aims to get someone started with the following about ENS (minimum, feel free to add more):

  • What is ENS, and why would a developer want to use it?
  • How to add ENS to an application
  • Configure an application to use ENS
  • ENS Interfaces
  • Looking up an address
  • Looking up a balance

Alongside the tutorial should be a full code example that a reader can follow and create, resulting in a functional application at the end of the tutorial.

Text should be written in clear technical English and follow a similar style to the existing ENS documentation. Preferably using as little unnecessary passive voice, future tense and weasel words as possible.

I can also help review the tutorial from a written and explanatory side and the ENS team from a technical side. The ENS documentation currently uses DocBook, which is Markdown with a few extensions.

How to use multicall to create multiple subdomains

This tells us that we can set multiple records in a single operation using multicall. But there is no documentation on how to make bytes data of setting records in here.

Like how "setting address" bytes data is generated as below

var addrSet = resolver.contract.methods['setAddr(bytes32,address)'](node, accounts[1]).encodeABI();

Incase if we want to create bytes data for creating subdomain, how should one go about it?

Conflicting Proposal Titles (5.2)

EP5.2 references both the Service Provider Streams and the eth.link litigation proposal; however, the eth.link proposal should be listed as EP5.3

Update list of traditional domains on the DNS registrar guide

The landing page of ENS Domains (https://ens.domains) says that the following traditional domains are supported: .xyz, .kred, .luxe, .club, .art. I have two suggestions:

  1. Add this list to the top / introduction of the DNS Registrar guide so that searching for "xyz", "kred", "luxe", "club", and "art" will bring up the guide.
  2. Update the list of these domains in the FAQ of the DNS Registrar guide because it is outdated. The first question of the FAQ says, "Why are only .xyz, .luxe and kred domains supported?"

Failed to deploy ReverseRegistrar contract

When I followed the deploying-ens-on-a-private-chain to deploy the contract via hardhat I encountered the following error:

$ npx hardhat run scripts/deploy.js

HardhatError: HH700: Artifact for contract "ReverseRegistrar" not found. 
    at Artifacts._handleWrongArtifactForContractName (/Users/lsl/go/src/github/Uniswap/uniswap-v2-deploy/node_modules/hardhat/src/internal/artifacts.ts:702:11)
    at Artifacts._getArtifactPathFromFiles (/Users/lsl/go/src/github/Uniswap/uniswap-v2-deploy/node_modules/hardhat/src/internal/artifacts.ts:827:19)
    at Artifacts._getArtifactPath (/Users/lsl/go/src/github/Uniswap/uniswap-v2-deploy/node_modules/hardhat/src/internal/artifacts.ts:507:21)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at runNextTicks (node:internal/process/task_queues:64:3)
    at listOnTimeout (node:internal/timers:538:9)
    at processTimers (node:internal/timers:512:7)
    at async Artifacts.readArtifact (/Users/lsl/go/src/github/Uniswap/uniswap-v2-deploy/node_modules/hardhat/src/internal/artifacts.ts:71:26)
    at async getContractFactory (/Users/lsl/go/src/github/Uniswap/uniswap-v2-deploy/node_modules/@nomiclabs/hardhat-ethers/src/internal/helpers.ts:99:22)
    at async main (/Users/lsl/go/src/github/Uniswap/uniswap-v2-deploy/scripts/deploy_ens.ts:43:28)

package.json content:

{
  "name": "ens-deploy",
  "version": "1.0.0",
  "description": "ens contracts deploy",
  "main": "deploy.js",
  "scripts": {
    "compile": "pnpm hardhat compile",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@ensdomains/ens-contracts": "^0.0.20",
    "hardhat": "^2.13.0",
    "web3": "^1.8.2"
  },
  "devDependencies": {
    "@ethersproject/abi": "^5.4.7",
    "@ethersproject/providers": "^5.4.7",
    "@nomicfoundation/hardhat-chai-matchers": "^1.0.0",
    "@nomicfoundation/hardhat-network-helpers": "^1.0.0",
    "@nomicfoundation/hardhat-toolbox": "^2.0.0",
    "@nomiclabs/hardhat-ethers": "^2.0.0",
    "@nomiclabs/hardhat-etherscan": "^3.0.0",
    "@typechain/ethers-v5": "^10.1.0",
    "@typechain/hardhat": "^6.1.2",
    "@types/chai": "^4.2.0",
    "@types/mocha": ">=9.1.0",
    "@types/node": ">=12.0.0",
    "chai": "^4.2.0",
    "eth-ens-namehash": "^2.0.8",
    "ethers": "^5.4.7",
    "hardhat-gas-reporter": "^1.0.8",
    "solidity-coverage": "^0.8.0",
    "ts-node": ">=8.0.0",
    "typechain": "^8.1.0",
    "typescript": ">=4.5.0"
  }
}

Is there a problem somewhere? Very much feel your answer.

Update Service Keys in ENSIP-5

In the "Service Keys" section of ENSIP-5, there's several examples given. However, as time marches on, the examples are a little less relevant than when they were created. Notably, Peepeth appears to have shut down (seems last time website was accessible was January 2024, though I can find no closure announcement), and there are several other social media sites that ENS users are likely more familiar with. Therefore, I'd recommend evaluating if the following changes should be done to that section:

  • Remove com.peepeth as an example
  • Add in new examples:
    • Fediverse/Mastodon as a platform doesn't have a single domain for users to have their profile on. This one behaves more like an email, so possibly it needs a text key of fediverse (behaving similarly to email)
    • Warpcast: com.warpcast
    • Threads: net.threads
  • Update com.twitter to be com.x? Twitter officially changed its logo to "X", and x.com as a domain redirects to them, so should that be the canonical service link for that social media site?

Add section describing DNSSEC

This section should explain our implementation of DNSSEC including:

  • DNSSEC Oracle
  • DNS Registrar
  • DNSSEC Tool

As well as some content explaining how DNSSEC in general works.

Single transaction ens deployment example, circular reference?

I'm attempting to deploy ENS to a private network. I'm running into issues with the documented process for using a single transaction deploy. I'm curious if there's something minor I'm missing or if the example needs to be tweaked slightly?

Here's a link to the documentation section I'm using: https://github.com/ensdomains/docs/blob/master/deploying-ens-on-a-private-chain.md#deploying-ens-in-a-single-transaction

Here's the relevant error output:

$MYPATH/contracts/TestDependancies.sol:6:1: DeclarationError: Identifier already declared.
import "@ensdomains/resolver/contracts/PublicResolver.sol";
^---------------------------------------------------------^
@ensdomains/ens/contracts/ReverseRegistrar.sol:5:1: The previous declaration is here:
contract NameResolver {
^ (Relevant source part starts here and spans across multiple lines).

Compilation failed. See above.
Truffle v5.0.13 (core: 5.0.13)
Node v14.2.0

Contract text:

pragma solidity ^0.5.0;

import "@ensdomains/ens/contracts/ENSRegistry.sol";
import "@ensdomains/ens/contracts/FIFSRegistrar.sol";
import "@ensdomains/ens/contracts/ReverseRegistrar.sol";
import "@ensdomains/resolver/contracts/PublicResolver.sol";

// Construct a set of test ENS contracts.
contract TestDependencies {
  bytes32 constant TLD_LABEL = keccak256("eth");
  bytes32 constant RESOLVER_LABEL = keccak256("resolver");
  bytes32 constant REVERSE_REGISTRAR_LABEL = keccak256("reverse");
  bytes32 constant ADDR_LABEL = keccak256("addr");

  ENSRegistry public ens;
  FIFSRegistrar public fifsRegistrar;
  ReverseRegistrar public reverseRegistrar;
  PublicResolver public publicResolver;

  function namehash(bytes32 node, bytes32 label) public pure returns (bytes32) {
    return keccak256(abi.encodePacked(node, label));
  }

  constructor() public {
    ens = new ENSRegistry();
    publicResolver = new PublicResolver(ens);

    // Set up the resolver
    bytes32 resolverNode = namehash(bytes32(0), RESOLVER_LABEL);

    ens.setSubnodeOwner(bytes32(0), RESOLVER_LABEL, address(this));
    ens.setResolver(resolverNode, address(publicResolver));
    publicResolver.setAddr(resolverNode, address(publicResolver));

    // Create a FIFS registrar for the TLD
    fifsRegistrar = new FIFSRegistrar(ens, namehash(bytes32(0), TLD_LABEL));

    ens.setSubnodeOwner(bytes32(0), TLD_LABEL, address(fifsRegistrar));

    // Construct a new reverse registrar and point it at the public resolver
    reverseRegistrar = new ReverseRegistrar(ens, Resolver(address(publicResolver)));

    // Set up the reverse registrar
    ens.setSubnodeOwner(bytes32(0), REVERSE_REGISTRAR_LABEL, address(this));
    ens.setSubnodeOwner(namehash(bytes32(0), REVERSE_REGISTRAR_LABEL), ADDR_LABEL, address(reverseRegistrar));
  }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.