UNPKG

@krobinalpha/ens-namehash

Version:

A simple module for generating ENS namehashes per spec https://github.com/ethereum/EIPs/issues/137

85 lines (73 loc) 2.15 kB
import test from 'tape'; import namehash from '../src'; // Test results specified in original ENS Proposal: // https://github.com/ethereum/EIPs/issues/137 test('empty name', (t) => { t.plan(1) const input = '' const expected = '0x0000000000000000000000000000000000000000000000000000000000000000' const output = namehash.hash(input) t.equal(output, expected) }) test('empty param', (t) => { t.plan(1) const expected = '0x0000000000000000000000000000000000000000000000000000000000000000' const output = namehash.hash('') t.equal(output, expected) }) test('TLD eth', (t) => { t.plan(1) const input = 'eth' const expected = '0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae' const output = namehash.hash(input) t.equal(output, expected) }) test('TLD neon', (t) => { t.plan(1) const input = 'neon' const expected = '0x534e499aa07054e03937905209ceabfecf5290265f1fc04430cea90ba2847648' const output = namehash.hash(input) t.equal(output, expected) }) test('foo.eth', (t) => { t.plan(1) const input = 'foo.eth' const expected = '0xde9b09fd7c5f901e23a3f19fecc54828e9c848539801e86591bd9801b019f84f' const output = namehash.hash(input) t.equal(output, expected) }) test('normalize ascii domain', (t) => { t.plan(1) const input = 'foo.eth' // latin chars only const expected = 'foo.eth' const output = namehash.normalize(input) t.equal(output, expected) }) test('normalize international domain', (t) => { t.plan(1) const input = 'fоо.eth' // with cyrillic 'o' const expected = 'fоо.eth' const output = namehash.normalize(input) t.equal(output, expected) }) test('normalize capitalized domain', (t) => { t.plan(1) const input = 'Foo.eth' // latin chars only const expected = 'foo.eth' const output = namehash.normalize(input) t.equal(output, expected) }) test('normalize emoji domain', (t) => { t.plan(1) const input = '🦚.eth' const expected = '🦚.eth' const output = namehash.normalize(input) t.equal(output, expected) }) test('addr.reverse', (t) => { t.plan(1) const input = 'neon' const output = namehash.hash(input) console.log('addr.reverse', output); t.equal(output, '') })