@krobinalpha/ens-namehash
Version:
A simple module for generating ENS namehashes per spec https://github.com/ethereum/EIPs/issues/137
53 lines (35 loc) • 1.48 kB
Markdown
# Dotarb ENS Namehash
A javascript library for generating Ethereum Name Service (ENS) namehashes per [spec](https://github.com/ethereum/EIPs/issues/137).
## Installation
```shell
yarn add @krobinalpha/ens-namehash
```
or
```shell
npm install @krobinalpha/ens-namehash -S
```
## Usage
```javascript
var namehash = require('@krobinalpha/ens-namehash');
var hash = namehash.hash('robin.eth');
// Also supports normalizing strings to ENS compatibility:
var input = getUserInput();
var normalized = namehash.normalize(input);
```
- typescript
```typescript
import namehash from '@krobinalpha/ens-namehash';
const hash = namehash.hash('robin.eth');
// '0xde9b09fd7c5f901e23a3f19fecc54828e9c848539801e86591bd9801b019f84f'
// Also supports normalizing strings to ENS compatibility:
const input = getUserInput();
const normalized = namehash.normalize(input);
```
## Security Warning
ENS Supports UTF-8 characters, and so many duplicate names are possible. For example:
- faceboоk.eth
- facebook.eth
The first one has non-ascii chars. (control+F on this page and search for facebook, only the second one will match).
namehash.normalize() doesn't automagically remap those, and so other precautions should be taken to avoid user phishing.
## Development
This module supports advanced JavaScript syntax, but exports an ES5-compatible module. To re-build the exported module after making changes, run `npm run bundle` (must have [browserify](http://browserify.org/) installed).