UNPKG

neo-ns

Version:

Interface for resolving domains to addresses on NEO Name Service

1 lines 2.18 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@cityofzion/neon-js")):"function"==typeof define&&define.amd?define(["@cityofzion/neon-js"],t):"object"==typeof exports?exports.NeoNS=t(require("@cityofzion/neon-js")):e.NeoNS=t(e["@cityofzion/neon-js"])}("undefined"!=typeof self?self:this,function(e){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(t,r){t.exports=e},function(e,t,r){e.exports=r(2)},function(e,t,r){"use strict";r.r(t);var n=r(0);const{isAddress:o}=n.wallet,{Query:i}=n.rpc,{invokeScript:u}=i,{fillUrl:c}=n.api,{ContractParam:a,createScript:f}=n.sc,{byteArray:s}=a,{sha256:l,str2hexstring:d,hexstring2str:p}=n.u;t.default={resolveDomain:function(e){if(!e||!e.endsWith(".neo"))return Promise.reject("Not a valid domain name.");try{const t={type:"String",value:"addr"},r={type:"String",value:""},n=e.replace(/.neo$/,""),i=l(d(n)),a=l(d("neo")),y=l(i.concat(a)),m=s(y,"name"),b=f({scriptHash:"348387116c4a75e420663277d9c02049907128c7",operation:"resolve",args:[t,m,r]}),v=u(b);return c({net:"MainNet",address:""}).then(e=>v.execute(e.url)).then(e=>e.result.stack[0].value).then(e=>{const t=p(e);if("00"===e||!o(t))throw new Error("No domain found.");return t})}catch(e){return Promise.reject("Error resolving domain name.")}}}}]).default});