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.