Gitcoin is GDPR complaint. Learn more in
Gitcoin's Terms & Conditions.
Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
The [Ethereum Name Service](https://ens.domains/) is an equivalent of the domain name system in the Ethereum blockchain. It maps names to addresses, enabling users to transact with contracts and wallets through human-readable names, and allowing owners to change the backing contract for their dApps by updating their ENS records.
Ethereum Names are gaining weight in the community, therefore we should support them in EthQL.
- [ ] Enhance the `Address` scalar to identify `.eth` names. The `parseLiteral` and `parseValue` functions should return a promise, which immediately resolves to the original value if it's not an ENS name, and to the resolved address if it's an ENS name.
- [ ] Perform resolution through this library: https://github.com/ensdomains/ensjs
- [ ] Solution must be developed as an EthQL plugin called `ens`. This plugin:
* Depends on the 'web3' service, and is ordered _after_ `core`.
* Adds a new service `ens`: a singleton instance of the `ENS` object instantiated with the `ensjs` library above.
* Adds resolvers that wrap core resolvers, `awaiting` on the promise and delegating to the underlying resolver. These fields introduced by the `core` schema, and resolved there, are to be wrapped:
* top-level `account`
## Definition of done
- [ ] Test cases with full coverage.
- [ ] PR accepted and merged, introducing a new top-level directory `ens` with the specified plugin.
- [ ] Code commented, documented and linted.
- [ ] README and wiki updated listing and showcasing this functionality.