UNPKG

@toruslabs/fetch-node-details

Version:
1 lines 13.9 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.FetchNodeDetails=t():e.FetchNodeDetails=t()}(self,(()=>(()=>{var e={743:e=>{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===o}(e)}(e)},o="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function r(e,t){return!1!==t.clone&&t.isMergeableObject(e)?s((o=e,Array.isArray(o)?[]:{}),e,t):e;var o}function n(e,t,o){return e.concat(t).map((function(e){return r(e,o)}))}function i(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function a(e,t){try{return t in e}catch(e){return!1}}function s(e,o,c){(c=c||{}).arrayMerge=c.arrayMerge||n,c.isMergeableObject=c.isMergeableObject||t,c.cloneUnlessOtherwiseSpecified=r;var d=Array.isArray(o);return d===Array.isArray(e)?d?c.arrayMerge(e,o,c):function(e,t,o){var n={};return o.isMergeableObject(e)&&i(e).forEach((function(t){n[t]=r(e[t],o)})),i(t).forEach((function(i){(function(e,t){return a(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,i)||(a(e,i)&&o.isMergeableObject(t[i])?n[i]=function(e,t){if(!t.customMerge)return s;var o=t.customMerge(e);return"function"==typeof o?o:s}(i,o)(e[i],t[i],o):n[i]=r(t[i],o))})),n}(e,o,c):r(o,c)}s.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,o){return s(e,o,t)}),{})};var c=s;e.exports=c},880:function(e,t,o){var r,n;!function(){"use strict";r=function(){var e=function(){},t="undefined",o=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=["trace","debug","info","warn","error"],n={},i=null;function a(e,t){var o=e[t];if("function"==typeof o.bind)return o.bind(e);try{return Function.prototype.bind.call(o,e)}catch(t){return function(){return Function.prototype.apply.apply(o,[e,arguments])}}}function s(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function c(){for(var o=this.getLevel(),n=0;n<r.length;n++){var i=r[n];this[i]=n<o?e:this.methodFactory(i,o,this.name)}if(this.log=this.debug,typeof console===t&&o<this.levels.SILENT)return"No console available for logging"}function d(e){return function(){typeof console!==t&&(c.call(this),this[e].apply(this,arguments))}}function f(r,n,i){return function(r){return"debug"===r&&(r="log"),typeof console!==t&&("trace"===r&&o?s:void 0!==console[r]?a(console,r):void 0!==console.log?a(console,"log"):e)}(r)||d.apply(this,arguments)}function u(e,o){var a,s,d,u=this,l="loglevel";function p(){var e;if(typeof window!==t&&l){try{e=window.localStorage[l]}catch(e){}if(typeof e===t)try{var o=window.document.cookie,r=encodeURIComponent(l),n=o.indexOf(r+"=");-1!==n&&(e=/^([^;]+)/.exec(o.slice(n+r.length+1))[1])}catch(e){}return void 0===u.levels[e]&&(e=void 0),e}}function b(e){var t=e;if("string"==typeof t&&void 0!==u.levels[t.toUpperCase()]&&(t=u.levels[t.toUpperCase()]),"number"==typeof t&&t>=0&&t<=u.levels.SILENT)return t;throw new TypeError("log.setLevel() called with invalid level: "+e)}"string"==typeof e?l+=":"+e:"symbol"==typeof e&&(l=void 0),u.name=e,u.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},u.methodFactory=o||f,u.getLevel=function(){return null!=d?d:null!=s?s:a},u.setLevel=function(e,o){return d=b(e),!1!==o&&function(e){var o=(r[e]||"silent").toUpperCase();if(typeof window!==t&&l){try{return void(window.localStorage[l]=o)}catch(e){}try{window.document.cookie=encodeURIComponent(l)+"="+o+";"}catch(e){}}}(d),c.call(u)},u.setDefaultLevel=function(e){s=b(e),p()||u.setLevel(e,!1)},u.resetLevel=function(){d=null,function(){if(typeof window!==t&&l){try{window.localStorage.removeItem(l)}catch(e){}try{window.document.cookie=encodeURIComponent(l)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(e){}}}(),c.call(u)},u.enableAll=function(e){u.setLevel(u.levels.TRACE,e)},u.disableAll=function(e){u.setLevel(u.levels.SILENT,e)},u.rebuild=function(){if(i!==u&&(a=b(i.getLevel())),c.call(u),i===u)for(var e in n)n[e].rebuild()},a=b(i?i.getLevel():"WARN");var h=p();null!=h&&(d=b(h)),c.call(u)}(i=new u).getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var t=n[e];return t||(t=n[e]=new u(e,i.methodFactory)),t};var l=typeof window!==t?window.log:void 0;return i.noConflict=function(){return typeof window!==t&&window.log===i&&(window.log=l),i},i.getLoggers=function(){return n},i.default=i,i},void 0===(n=r.call(t,o,t,e))||(e.exports=n)}()}},t={};function o(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(t,o,r){return(o=function(t){var o=function(t){if("object"!=e(t)||!t)return t;var o=t[Symbol.toPrimitive];if(void 0!==o){var r=o.call(t,"string");if("object"!=e(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(o)?o:o+""}(o))in t?Object.defineProperty(t,o,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[o]=r,t}function n(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function i(e){for(var o=1;o<arguments.length;o++){var r=null!=arguments[o]?arguments[o]:{};o%2?n(Object(r),!0).forEach((function(o){t(e,o,r[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}o.r(r),o.d(r,{NodeDetailManager:()=>A});const a={MAINNET:"mainnet",TESTNET:"testnet",CYAN:"cyan",AQUA:"aqua",CELESTE:"celeste"},s={SAPPHIRE_DEVNET:"sapphire_devnet",SAPPHIRE_MAINNET:"sapphire_mainnet"},c=[],d={[a.AQUA]:{migrationCompleted:!0,networkIdentifier:"aqua",networkMigratedTo:s.SAPPHIRE_MAINNET},[a.CELESTE]:{migrationCompleted:!0,networkIdentifier:"celeste",networkMigratedTo:s.SAPPHIRE_MAINNET},[a.CYAN]:{migrationCompleted:!0,networkIdentifier:"cyan",networkMigratedTo:s.SAPPHIRE_MAINNET},[a.MAINNET]:{migrationCompleted:!0,networkIdentifier:"mainnet",networkMigratedTo:s.SAPPHIRE_MAINNET},[a.TESTNET]:{migrationCompleted:!0,networkIdentifier:"teal",networkMigratedTo:s.SAPPHIRE_DEVNET}},f={[a.MAINNET]:"https://api.web3auth.io/metadata-service",[a.TESTNET]:"https://api.web3auth.io/metadata-service",[a.CYAN]:"https://api.web3auth.io/metadata-service",[a.AQUA]:"https://api.web3auth.io/metadata-service",[a.CELESTE]:"https://api.web3auth.io/metadata-service"},u="secp256k1",l="ed25519",p="ecdsa-secp256k1",b={[s.SAPPHIRE_DEVNET]:["https://node-1.dev-node.web3auth.io","https://node-2.dev-node.web3auth.io","https://node-3.dev-node.web3auth.io","https://node-4.dev-node.web3auth.io","https://node-5.dev-node.web3auth.io"],[s.SAPPHIRE_MAINNET]:["https://node-1.node.web3auth.io","https://node-2.node.web3auth.io","https://node-3.node.web3auth.io","https://node-4.node.web3auth.io","https://node-5.node.web3auth.io"]},h=(e,t)=>{const o=b[e];if(!o||0===o.length)throw new Error(`Unsupported network: ${e}`);const r=d[t];return o.map((e=>r&&r.networkIdentifier?`${e}/sss/${r.networkIdentifier}/jrpc`:`${e}/sss/jrpc`))},y=(e,t)=>{const o=b[e];if(!o||0===o.length)throw new Error(`Unsupported network: ${e}`);const r=d[t];return o.map((e=>r&&r.networkIdentifier?`${e}/rss/${r.networkIdentifier}`:`${e}/rss`))},w=(e,t,o=u,r)=>{const n=b[e];if(!n||0===n.length)throw new Error(`Unsupported network: ${e}`);const i=(()=>{const e="tss-frost";if(r){if(r===p){if(o!==u)throw new Error("Invalid key type for ecdsa-secp256k1");return"tss"}if("ed25519"===r){if(o!==l)throw new Error("Invalid key type for ed25519");return e}if("bip340"===r){if(o!==u)throw new Error("Invalid key type for bip340");return e}throw new Error("Invalid sig type")}if(o===u)return"tss";if(o===l)return e;throw new Error("Invalid key type")})(),a=d[t];return n.map((e=>a&&a.networkIdentifier?`${e}/${i}/${a.networkIdentifier}`:`${e}/${i}`))},v={[s.SAPPHIRE_MAINNET]:[{X:"e0925898fee0e9e941fdca7ee88deec99939ae9407e923535c4d4a3a3ff8b052",Y:"54b9fea924e3f3e40791f9987f4234ae4222412d65b74068032fa5d8b63375c1"},{X:"9124cf1e280aab32ba50dffd2de81cecabc13d82d2c1fe9de82f3b3523f9b637",Y:"fca939a1ceb42ce745c55b21ef094f543b457630cb63a94ef4f1afeee2b1f107"},{X:"555f681a63d469cc6c3a58a97e29ebd277425f0e6159708e7c7bf05f18f89476",Y:"606f2bcc0884fa5b64366fc3e8362e4939841b56acd60d5f4553cf36b891ac4e"},{X:"2b5f58d8e340f1ab922e89b3a69a68930edfe51364644a456335e179bc130128",Y:"4b4daa05939426e3cbe7d08f0e773d2bf36f64c00d04620ee6df2a7af4d2247"},{X:"3ecbb6a68afe72cf34ec6c0a12b5cb78a0d2e83ba402983b6adbc5f36219861a",Y:"dc1031c5cc8f0472bd521a62a64ebca9e163902c247bf05937daf4ae835091e4"}],[s.SAPPHIRE_DEVNET]:[{X:"f74389b0a4c8d10d2a687ae575f69b20f412d41ab7f1fe6b358aa14871327247",Y:"54e3a73098ed9bced3ef8821736e9794f9264a1420c0c7ad15d2fa617ba35ef7"},{X:"bc38813a6873e526087918507c78fc3a61624670ee851ecfb4f3bef55d027b5a",Y:"ac4b21229f662a0aefdfdac21cf17c3261a392c74a8790db218b34e3e4c1d56a"},{X:"b56541684ea5fa40c8337b7688d502f0e9e092098962ad344c34e94f06d293fb",Y:"759a998cef79d389082f9a75061a29190eec0cac99b8c25ddcf6b58569dad55c"},{X:"7bcb058d4c6ffc6ba4bfdfd93d141af35a66338a62c7c27cdad2ae3f8289b767",Y:"336ab1935e41ed4719e162587f0ab55518db4207a1eb36cc72303f1b86689d2b"},{X:"bf12a136ef94399ea098f926f04e26a4ec4ac70f69cce274e8893704c4951773",Y:"bdd44828020f52ce510e026338216ada184a6867eb4e19fb4c2d495d4a7e15e4"}]},E=(e,t,o,r)=>({currentEpoch:"1",torusNodeEndpoints:h(e,t),torusNodeSSSEndpoints:h(e,t),torusNodeRSSEndpoints:y(e,t),torusNodeTSSEndpoints:w(e,t,o,r),torusIndexes:[1,2,3,4,5],torusNodePub:v[e]});var g=o(743),S=o.n(g),m=o(880),N=o.n(m);const T=N().getLogger("http-helpers");T.setLevel(m.levels.INFO);let I="torus-default";const _=async(e,t={},o={})=>{const r={mode:"cors",headers:{}};o.useAPIKey&&(r.headers=i(i({},r.headers),function(){const e={};return I&&(e["x-api-key"]=I),e}())),t.method="GET";const n=S()(r,t),a=await async function(e,t){let o=null;try{o=new URL(e)}catch{}return fetch(e,t)}(e,n);if(a.ok){const e=a.headers.get("content-type");return null!=e&&e.includes("application/json")?a.json():a.text()}throw function(e){T.info(`Response: ${e.status} ${e.statusText}`),T.info(`Url: ${e.url}`)}(a),a},k=N().getLogger("fnd"),A=class{constructor({network:e=s.SAPPHIRE_MAINNET,keyType:o=u,sigType:r=p,fndServerEndpoint:n,enableLogging:c=!1}={}){if(t(this,"fndServerEndpoint","https://api.web3auth.io/fnd-service/node-details"),t(this,"_currentEpoch","1"),t(this,"_keyType",void 0),t(this,"_sigType",void 0),t(this,"_torusNodeEndpoints",[]),t(this,"_torusNodeRSSEndpoints",[]),t(this,"_torusNodeSSSEndpoints",[]),t(this,"_torusNodeTSSEndpoints",[]),t(this,"_torusNodePub",[]),t(this,"_torusIndexes",[]),t(this,"updated",void 0),t(this,"network",void 0),e&&!Object.values(i(i({},a),s)).includes(e))throw new Error("Invalid network");this.network=e,this._keyType=o,this._sigType=r,this.updated=!1,n&&(this.fndServerEndpoint=n),c?k.enableAll():k.disableAll()}get _nodeDetails(){return{currentEpoch:this._currentEpoch,torusNodeEndpoints:this._torusNodeEndpoints,torusNodeSSSEndpoints:this._torusNodeSSSEndpoints,torusNodeRSSEndpoints:this._torusNodeRSSEndpoints,torusNodeTSSEndpoints:this._torusNodeTSSEndpoints,torusNodePub:this._torusNodePub,torusIndexes:this._torusIndexes,updated:this.updated}}async getNodeDetails({verifier:e,verifierId:t}){try{if(this.updated&&!c.includes(this.network))return this._nodeDetails;try{const{nodeDetails:o}=await _(`${this.fndServerEndpoint}?network=${this.network}&verifier=${e}&verifierId=${t}&keyType=${this._keyType}&sigType=${this._sigType}`);return this.setNodeDetails(o),this._nodeDetails}catch(e){k.error("Failed to fetch node details from server, using local.",e)}const o=function(e,t,o){if(Object.values(s).includes(e))return E(e,void 0,t,o);if(Object.values(a).includes(e)){const o=d[e];if(o.migrationCompleted)return E(o.networkMigratedTo,e,t)}}(this.network,this._keyType,this._sigType);if(!o)throw new Error("Failed to fetch node details");return this.setNodeDetails(o),this._nodeDetails}catch(e){throw k.error("Failed to fetch node details",e),e}}async getMetadataUrl(){return Object.values(a).includes(this.network)?f[this.network]:(await this.getNodeDetails({verifier:"test-verifier",verifierId:"test-verifier-id"})).torusNodeEndpoints[0].replace("/sss/jrpc","/metadata")}setNodeDetails(e){const{currentEpoch:t,torusNodeEndpoints:o,torusNodeSSSEndpoints:r,torusNodeRSSEndpoints:n,torusNodeTSSEndpoints:i,torusNodePub:a,torusIndexes:s}=e;this._torusNodeEndpoints=o,this._torusNodeSSSEndpoints=r||[],this._torusNodeRSSEndpoints=n||[],this._torusNodeTSSEndpoints=i||[],this._torusNodePub=a,this._torusIndexes=s,this._currentEpoch=t,this.updated=!0}}})(),r})()));