Development resources at your finger tips
Build with the coolest Web3 projects
Recurring funding for Open Source
Learn about Web3 & earn rewards
Show appreciation for each other
Meet fellow developers, designers, futurists and more. Collaborate and BUIDL awesome projects together.
Discover great web3 organizations, work on meaningful projects and build relationships with like minded people. Browse Tribes
Meet the top hunters and contributors from our community.
In partnership with Protocol Labs, we’re excited to welcome builders from everywhere to APOLLO, your mission control to engage with the builder…
We’re excited to publically announce that Matic Network is partnering with Gitcoin to launch the Build-n-Earn Program – assisting dApps t…
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 new [ENS Permanent Registrar](https://docs.ens.domains/contract-api-reference/.eth-permanent-registrar) is coming out soon, and it would be nice to have a set of convenient utility classes that allow for easy interaction with the updated [contracts](https://github.com/ensdomains/ethregistrar/tree/master/contracts).
Web3swift already has Util classes for the [registry](https://github.com/matter-labs/web3swift/blob/develop/web3swift/Utils/Classes/ENS.swift) and [resolver](https://github.com/matter-labs/web3swift/blob/develop/web3swift/Utils/Classes/ENSResolver.swift), but is missing the registrar. Once this is completed, we could add web3swift to the list of [supported ENS libraries](https://docs.ens.domains/dapp-developer-guide/ens-libraries).
Summary from the [ENS docs](https://docs.ens.domains):
> The Permanent Registrar is the code that will govern allocation and renewal of names in the .eth TLD. Presently this is governed by the legacy auction registrar, which uses a Vickery Auction process to allocate names to registrants. The new registrar aims to simplify this process, while providing a stable platform for future improvements that will minimise API changes.
> In addition, the registrar is an ERC721 compliant nonfungable token contract, meaning that .eth registrations can be transferred in the same fashion as other NFTs.
> **The target deployment date for the permanent registrar is the 4th of May, 2019.**
## Functional Spec
Ideally, the utility classes would support the basic functions defined in the [BaseRegistrar](https://docs.ens.domains/contract-api-reference/.eth-permanent-registrar/registrar) and [ETHRegistrarController](https://docs.ens.domains/contract-api-reference/.eth-permanent-registrar/controller). This includes the following functionality:
- [x] Get Name Expiry
- Returns the unix timestamp at which a registration currently expires.
- [x] Get Name Owner
- ownerOf returns the address that owns the registration identified by the label hash, or reverts if the registration does not exist. This function is part of ERC721.
- [x] Transfer a Name
- Used to transfer the registration. Behaves as specified in ERC721.
- [x] Reclaim ENS Record
- Sets the owner record of the name in the ENS registry to match the owner of the registration in this registry. May only be called by the owner of the registration.
- [x] Check Name Availability
- Returns true iff the name is both valid and available for registration by this controller.
- [x] Get Rent Price
- Returns the cost, in wei, to register or renew the provided name for the provided duration.
- [x] Calculate Commitment Hash
- Generates and returns a commitment hash from a name label (eg, 'myname', not 'myname.eth') owner, and secret value.
- [x] Submit Commitment
- Submits a precommitment generated by calling makeCommitment.
- [x] Register Name
- Registers a name based on [this criteria](https://docs.ens.domains/contract-api-reference/.eth-permanent-registrar/controller#register-name)
- [x] Extend Name Registration
- Renews a name. This function can be called by anyone, as long as sufficient funds are provided.