embark/packages/plugins/ens
emizzle 349b2691c3 fix(@embark/ens): Handle cases when no “register” in config
## Issue 1 - “register” section missing
When the “register” section of `namesystem.json` was missing, ENS would not deploy the ENS contracts nor create the contracts’ artifacts.

### Fix 1
Fix ENS deployment routine to always deploy the ENS contracts. In the case of testnet/mainnet, the contracts’ addresses will be known and therefore will be understood as “already deployed” by the contract deployer.

## Issue 2 - “register” section exists for non-dev environment
Additionally, if a root domain was specified in the “register” section and the DApp connected to an external node where we do not own the ENS contracts (ie testnet), attempting to register a root domain would not be possible as we do not own the ENS contracts.

### Fix 2
Fix ENS deployment routine to check if we are on a network in which we own the ENS contracts. If we are not, and we have specified a “register” section, print a warning to the user that the  registration will be ignored. Additionally, remove the “register” section.
2019-12-20 18:35:18 -05:00
..
src fix(@embark/ens): Handle cases when no “register” in config 2019-12-20 18:35:18 -05:00
test build: specify missing test action in relevant package.json "qa" scripts 2019-12-11 14:01:12 -06:00
.npmrc move embarkjs packages & remove embark- prefix from some folders (#1879) 2019-09-06 18:26:08 -04:00
CHANGELOG.md chore(release): 5.0.0-alpha.9 2019-12-20 18:13:47 -05:00
README.md build: tidy up the monorepo in prep for v5.0.0-alpha.0 2019-10-01 13:29:53 -05:00
package.json chore(release): 5.0.0-alpha.9 2019-12-20 18:13:47 -05:00
tsconfig.json build: implement collective typecheck 2019-12-13 13:59:47 -05:00

README.md

embark-ens

Implements ENS support in Embark

This module:

  • registers console commands to interact with ENS
  • deploys & setups ENS contracts depending on the network
  • implements ENS support in EmbarkJS
  • setups generated code acording to the config

API

command: ens:resolve - returns the address of an ens name

arguments:

  • name - ens name to resolve

response:

  • error - if an error occurs, null otherwise
  • address - address associated to the ens name given

command: ens:isENSName - checks is it's a (valid) ENS name

arguments:

  • name - ens name to validate

response:

  • error - if an error occurs, null otherwise
  • result - true/false depending if name given is a valid ens name

command: storage:ens:associate - associates an hash to an ENS domain

arguments:

  • options
    • name - ens name
    • storageHash - hash to associate

response:

  • error - if an error occurs, null otherwise

Web API

endpoint: GET /embark-api/ens/resolve - returns the address of an ens name

arguments:

  • name - ens name to resolve

response:

{
  address: <address of ens name>
}

endpoint: GET /embark-api/ens/lookup - returns the ens name of an address

arguments:

  • address - address to query

response:

{
  name: <ens name of address>
}

endpoint: POST /embark-api/ens/register registers a domain or subdomain

arguments:

  • subdomain - ens domain
  • address - address to associate

response:

{
  name: <ens name>
  address: <address>
}

Dependencies

  • async
  • eth-ens-namehash
  • embarkjs.utils
    • secureSend
  • embark utils
    • AddressUtils
    • hashTo32ByteHexString
    • recursiveMerge