Development

Contribution guide

Contributions are welcome!

Reporting issues

Create an issue on GitHub to report a bug or to request a feature

TODOs

  • ENS name wrapper fuses
  • Data sources
  • Custom handlers
  • DNS names bridged to ENS

Adding a new TLD

This library currently supports TLDs that are bridged to Ethereum from a decentralized permissionless root zone called Handshake. Handshake reserved most popular TLDs including .eth when it launched. ENS already claimed their .eth on Handshake.

So the current policy for the time being is to accept any TLD rooted in Handshake, but you will be able to create custom handlers to add your own TLDs or override existing ones.

Development

Since id.js supports many ERC-137 registries, it's using the forking option from Hardhat to run tests on a fixed block on mainnet. To setup the test environment:

Create a .env file in the root directory of the project and set a mainnet RPC provider like infura, alchemy ... etc.

MAINNET_RPC_URL=

Run the tests

npm run test

Writing tests

See the tests in the test directory for examples.

Creating pull requests

For large PRs, it's a good idea to create an issue first to discuss the proposed changes.

Previous
Writing custom handlers