mnslib
v0.1.13
Published
MNS js library
Downloads
17
Readme
MNS js library
Mnslib is a convinience library to resolve mns records (gets crypto address, public key and coin attached to specified domain name). MNS (Minter Name System) is a Distributed Domain Name System.
Library additionaly protects from resolve result forgery by checking signature of resolve result. Every api response from MNS API server is signed with MNS private key. At start library is initialized with signer public key. Signature of reponse data is checked with this public key.
Library resolves domain name to crypto address
or/and public key
and optional ticker
.
Installation
Install with yarn
:
yarn add mnslib
Install with npm
:
npm install --save mnslib
Usage
Recommended way to use library is to call function resolve
which resolves andress and automatically checks signature.
const mns = require('mnslib')
const publicKey = 'Mp...' //public key to check signature
mns.init(publicKey)
try {
const resolveResult = await mns.resolve('mns.hashex.org')
console.log('result is: ', resolveResult)
} catch (e) {
console.log('could not resolve mns record:', e.message)
}
Example response:
{
"address":"Mx000001ceb986ad005db3531a199b0bb2dcad3a76",
"publickey":"Mp60f782726fe03fd5d7fe293f",
"signature":{
"r":"ba828f3493c43c06e6451e0febee5bb58f46136b5a3baf0908504337223a77ff",
"s":"39fdc064bab88bfaa87c5177ae3d428e6d12d619e3b72b716ae885f4bc59027a",
"v":27
}
}
Or just use library to recover public key result was signed with (no initialization is needed):
const mns = require('mnslib')
const exampleResponse = {
"address":"Mx000001ceb986ad005db3531a199b0bb2dcad3a76",
"publickey":"Mp60f782726fe03fd5d7fe293f",
"signature":{
"r":"ba828f3493c43c06e6451e0febee5bb58f46136b5a3baf0908504337223a77ff",
"s":"39fdc064bab88bfaa87c5177ae3d428e6d12d619e3b72b716ae885f4bc59027a",
"v":27
}
}
const recoveredPublicKey = mns.recoverPublicFromSignature(exampleResonse)