UNPKG

freename-resolution-snap

Version:

MetaMask snap for resolving domains to addresses, offered by Freename.io web3 resolver

1 lines 1.42 kB
(()=>{var e={d:(o,r)=>{for(var t in r)e.o(r,t)&&!e.o(o,t)&&Object.defineProperty(o,t,{enumerable:!0,get:r[t]})},o:(e,o)=>Object.prototype.hasOwnProperty.call(e,o),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},o={};(()=>{"use strict";e.r(o),e.d(o,{onNameLookup:()=>a});const r={FNS:"Freename",ENS:"Ethereum Name Service",UD:"Unstoppable Domains",BNS:"Base Name Service",ID:"SpaceID",DNAME:"DecentraName"},t={"eip155:1":"ethereum","eip155:137":"polygon","eip155:8453":"base","eip155:56":"bsc","eip155:1329":"sei","eip155:42793":"etherlink","eip155:88888":"chiliz","eip155:43114":"avalanche","eip155:2741":"abstract"},a=async e=>{const{chainId:o,domain:a}=e,n=Object.keys(t),i=Object.keys(r);if(!a||!n.includes(o))return null;for(const e of i)try{var l,s;const n=await fetch(`https://apis.freename.io/api/v1/resolver/${e}/${a}`);if(!n.ok)continue;const i=await n.json(),u=null===(s=i)||void 0===s||null===(l=s.data)||void 0===l?void 0:l.resolvedAddress;if(u){var c,d,p;const n=null===(p=i)||void 0===p||null===(d=p.data)||void 0===d||null===(c=d.network)||void 0===c?void 0:c.toLowerCase(),l=`${r[e]} (${n.charAt(0).toUpperCase()+n.slice(1)})`;return{resolvedAddresses:[{resolvedAddress:u,protocol:t[o]!==n?`⚠️ ${l}`:l,domainName:a}]}}}catch(e){return null}return null}})(),module.exports=o})();