@rango-dev/provider-walletconnect-2 0.30.1-next.5 → 0.30.1-next.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ import{a as l}from"./chunk-DXVBX5XQ.js";var Ue=Symbol(),pe=Symbol();var ee=Object.getPrototypeOf,J=new WeakMap,ge=l(e=>e&&(J.has(e)?J.get(e):ee(e)===Object.prototype||ee(e)===Array.prototype),"l");var te=l(e=>ge(e)&&e[pe]||null,"y"),q=l((e,t=!0)=>{J.set(e,t)},"h");var G=l(e=>typeof e=="object"&&e!==null,"isObject"),P=new WeakMap,K=new WeakSet,me=l((e=Object.is,t=(r,y)=>new Proxy(r,y),s=r=>G(r)&&!K.has(r)&&(Array.isArray(r)||!(Symbol.iterator in r))&&!(r instanceof WeakMap)&&!(r instanceof WeakSet)&&!(r instanceof Error)&&!(r instanceof Number)&&!(r instanceof Date)&&!(r instanceof String)&&!(r instanceof RegExp)&&!(r instanceof ArrayBuffer),o=r=>{switch(r.status){case"fulfilled":return r.value;case"rejected":throw r.reason;default:throw r}},c=new WeakMap,d=(r,y,O=o)=>{let w=c.get(r);if(w?.[0]===y)return w[1];let v=Array.isArray(r)?[]:Object.create(Object.getPrototypeOf(r));return q(v,!0),c.set(r,[y,v]),Reflect.ownKeys(r).forEach(S=>{if(Object.getOwnPropertyDescriptor(v,S))return;let W=Reflect.get(r,S),M={value:W,enumerable:!0,configurable:!0};if(K.has(W))q(W,!1);else if(W instanceof Promise)delete M.value,M.get=()=>O(W);else if(P.has(W)){let[b,H]=P.get(W);M.value=d(b,H(),O)}Object.defineProperty(v,S,M)}),Object.preventExtensions(v)},m=new WeakMap,g=[1,1],A=r=>{if(!G(r))throw new Error("object required");let y=m.get(r);if(y)return y;let O=g[0],w=new Set,v=l((i,a=++g[0])=>{O!==a&&(O=a,w.forEach(n=>n(i,a)))},"notifyUpdate"),S=g[1],W=l((i=++g[1])=>(S!==i&&!w.size&&(S=i,b.forEach(([a])=>{let n=a[1](i);n>O&&(O=n)})),O),"ensureVersion"),M=l(i=>(a,n)=>{let h=[...a];h[1]=[i,...h[1]],v(h,n)},"createPropListener"),b=new Map,H=l((i,a)=>{if((import.meta.env?import.meta.env.MODE:void 0)!=="production"&&b.has(i))throw new Error("prop listener already exists");if(w.size){let n=a[3](M(i));b.set(i,[a,n])}else b.set(i,[a])},"addPropListener"),Z=l(i=>{var a;let n=b.get(i);n&&(b.delete(i),(a=n[1])==null||a.call(n))},"removePropListener"),ue=l(i=>(w.add(i),w.size===1&&b.forEach(([n,h],R)=>{if((import.meta.env?import.meta.env.MODE:void 0)!=="production"&&h)throw new Error("remove already exists");let T=n[3](M(R));b.set(R,[n,T])}),l(()=>{w.delete(i),w.size===0&&b.forEach(([n,h],R)=>{h&&(h(),b.set(R,[n]))})},"removeListener")),"addListener"),F=Array.isArray(r)?[]:Object.create(Object.getPrototypeOf(r)),$=t(F,{deleteProperty(i,a){let n=Reflect.get(i,a);Z(a);let h=Reflect.deleteProperty(i,a);return h&&v(["delete",[a],n]),h},set(i,a,n,h){let R=Reflect.has(i,a),T=Reflect.get(i,a,h);if(R&&(e(T,n)||m.has(n)&&e(T,m.get(n))))return!0;Z(a),G(n)&&(n=te(n)||n);let V=n;if(n instanceof Promise)n.then(j=>{n.status="fulfilled",n.value=j,v(["resolve",[a],j])}).catch(j=>{n.status="rejected",n.reason=j,v(["reject",[a],j])});else{!P.has(n)&&s(n)&&(V=A(n));let j=!K.has(V)&&P.get(V);j&&H(a,j)}return Reflect.set(i,a,V,h),v(["set",[a],n,T]),!0}});m.set(r,$);let fe=[F,W,d,ue];return P.set($,fe),Reflect.ownKeys(r).forEach(i=>{let a=Object.getOwnPropertyDescriptor(r,i);"value"in a&&($[i]=r[i],delete a.value,delete a.writable),Object.defineProperty(F,i,a)}),$})=>[A,P,K,e,t,s,o,c,d,m,g],"buildProxyFunction"),[he]=me();function C(e={}){return he(e)}l(C,"proxy");function D(e,t,s){let o=P.get(e);(import.meta.env?import.meta.env.MODE:void 0)!=="production"&&!o&&console.warn("Please use proxy object");let c,d=[],m=o[3],g=!1,r=m(l(y=>{if(d.push(y),s){t(d.splice(0));return}c||(c=Promise.resolve().then(()=>{c=void 0,g&&t(d.splice(0))}))},"listener"));return g=!0,()=>{g=!1,r()}}l(D,"subscribe");function se(e,t){let s=P.get(e);(import.meta.env?import.meta.env.MODE:void 0)!=="production"&&!s&&console.warn("Please use proxy object");let[o,c,d]=s;return d(o,c(),t)}l(se,"snapshot");var u=C({history:["ConnectWallet"],view:"ConnectWallet",data:void 0}),de={state:u,subscribe(e){return D(u,()=>e(u))},push(e,t){e!==u.view&&(u.view=e,t&&(u.data=t),u.history.push(e))},reset(e){u.view=e,u.history=[e]},replace(e){u.history.length>1&&(u.history[u.history.length-1]=e,u.view=e)},goBack(){if(u.history.length>1){u.history.pop();let[e]=u.history.slice(-1);u.view=e}},setData(e){u.data=e}},p={WALLETCONNECT_DEEPLINK_CHOICE:"WALLETCONNECT_DEEPLINK_CHOICE",WCM_VERSION:"WCM_VERSION",RECOMMENDED_WALLET_AMOUNT:9,isMobile(){return typeof window<"u"?!!(window.matchMedia("(pointer:coarse)").matches||/Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent)):!1},isAndroid(){return p.isMobile()&&navigator.userAgent.toLowerCase().includes("android")},isIos(){let e=navigator.userAgent.toLowerCase();return p.isMobile()&&(e.includes("iphone")||e.includes("ipad"))},isHttpUrl(e){return e.startsWith("http://")||e.startsWith("https://")},isArray(e){return Array.isArray(e)&&e.length>0},formatNativeUrl(e,t,s){if(p.isHttpUrl(e))return this.formatUniversalUrl(e,t,s);let o=e;o.includes("://")||(o=e.replaceAll("/","").replaceAll(":",""),o=`${o}://`),o.endsWith("/")||(o=`${o}/`),this.setWalletConnectDeepLink(o,s);let c=encodeURIComponent(t);return`${o}wc?uri=${c}`},formatUniversalUrl(e,t,s){if(!p.isHttpUrl(e))return this.formatNativeUrl(e,t,s);let o=e;o.endsWith("/")||(o=`${o}/`),this.setWalletConnectDeepLink(o,s);let c=encodeURIComponent(t);return`${o}wc?uri=${c}`},async wait(e){return new Promise(t=>{setTimeout(t,e)})},openHref(e,t){window.open(e,t,"noreferrer noopener")},setWalletConnectDeepLink(e,t){try{localStorage.setItem(p.WALLETCONNECT_DEEPLINK_CHOICE,JSON.stringify({href:e,name:t}))}catch{console.info("Unable to set WalletConnect deep link")}},setWalletConnectAndroidDeepLink(e){try{let[t]=e.split("?");localStorage.setItem(p.WALLETCONNECT_DEEPLINK_CHOICE,JSON.stringify({href:t,name:"Android"}))}catch{console.info("Unable to set WalletConnect android deep link")}},removeWalletConnectDeepLink(){try{localStorage.removeItem(p.WALLETCONNECT_DEEPLINK_CHOICE)}catch{console.info("Unable to remove WalletConnect deep link")}},setModalVersionInStorage(){try{typeof localStorage<"u"&&localStorage.setItem(p.WCM_VERSION,"2.6.2")}catch{console.info("Unable to set Web3Modal version in storage")}},getWalletRouterData(){var e;let t=(e=de.state.data)==null?void 0:e.Wallet;if(!t)throw new Error('Missing "Wallet" view data');return t}},ye=typeof location<"u"&&(location.hostname.includes("localhost")||location.protocol.includes("https")),f=C({enabled:ye,userSessionId:"",events:[],connectedWalletId:void 0}),be={state:f,subscribe(e){return D(f.events,()=>e(se(f.events[f.events.length-1])))},initialize(){f.enabled&&typeof(crypto==null?void 0:crypto.randomUUID)<"u"&&(f.userSessionId=crypto.randomUUID())},setConnectedWalletId(e){f.connectedWalletId=e},click(e){if(f.enabled){let t={type:"CLICK",name:e.name,userSessionId:f.userSessionId,timestamp:Date.now(),data:e};f.events.push(t)}},track(e){if(f.enabled){let t={type:"TRACK",name:e.name,userSessionId:f.userSessionId,timestamp:Date.now(),data:e};f.events.push(t)}},view(e){if(f.enabled){let t={type:"VIEW",name:e.name,userSessionId:f.userSessionId,timestamp:Date.now(),data:e};f.events.push(t)}}},I=C({chains:void 0,walletConnectUri:void 0,isAuth:!1,isCustomDesktop:!1,isCustomMobile:!1,isDataLoaded:!1,isUiLoaded:!1}),L={state:I,subscribe(e){return D(I,()=>e(I))},setChains(e){I.chains=e},setWalletConnectUri(e){I.walletConnectUri=e},setIsCustomDesktop(e){I.isCustomDesktop=e},setIsCustomMobile(e){I.isCustomMobile=e},setIsDataLoaded(e){I.isDataLoaded=e},setIsUiLoaded(e){I.isUiLoaded=e},setIsAuth(e){I.isAuth=e}},B=C({projectId:"",mobileWallets:void 0,desktopWallets:void 0,walletImages:void 0,chains:void 0,enableAuthMode:!1,enableExplorer:!0,explorerExcludedWalletIds:void 0,explorerRecommendedWalletIds:void 0,termsOfServiceUrl:void 0,privacyPolicyUrl:void 0}),x={state:B,subscribe(e){return D(B,()=>e(B))},setConfig(e){var t,s;be.initialize(),L.setChains(e.chains),L.setIsAuth(!!e.enableAuthMode),L.setIsCustomMobile(!!((t=e.mobileWallets)!=null&&t.length)),L.setIsCustomDesktop(!!((s=e.desktopWallets)!=null&&s.length)),p.setModalVersionInStorage(),Object.assign(B,e)}},we=Object.defineProperty,re=Object.getOwnPropertySymbols,ve=Object.prototype.hasOwnProperty,Oe=Object.prototype.propertyIsEnumerable,ne=l((e,t,s)=>t in e?we(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,"M"),Ie=l((e,t)=>{for(var s in t||(t={}))ve.call(t,s)&&ne(e,s,t[s]);if(re)for(var s of re(t))Oe.call(t,s)&&ne(e,s,t[s]);return e},"K"),Q="https://explorer-api.walletconnect.com",X="wcm",Y="js-2.6.2";async function z(e,t){let s=Ie({sdkType:X,sdkVersion:Y},t),o=new URL(e,Q);return o.searchParams.append("projectId",x.state.projectId),Object.entries(s).forEach(([c,d])=>{d&&o.searchParams.append(c,String(d))}),(await fetch(o)).json()}l(z,"w");var k={async getDesktopListings(e){return z("/w3m/v1/getDesktopListings",e)},async getMobileListings(e){return z("/w3m/v1/getMobileListings",e)},async getInjectedListings(e){return z("/w3m/v1/getInjectedListings",e)},async getAllListings(e){return z("/w3m/v1/getAllListings",e)},getWalletImageUrl(e){return`${Q}/w3m/v1/getWalletImage/${e}?projectId=${x.state.projectId}&sdkType=${X}&sdkVersion=${Y}`},getAssetImageUrl(e){return`${Q}/w3m/v1/getAssetImage/${e}?projectId=${x.state.projectId}&sdkType=${X}&sdkVersion=${Y}`}},Ee=Object.defineProperty,oe=Object.getOwnPropertySymbols,Le=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable,ae=l((e,t,s)=>t in e?Ee(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,"k"),Ce=l((e,t)=>{for(var s in t||(t={}))Le.call(t,s)&&ae(e,s,t[s]);if(oe)for(var s of oe(t))We.call(t,s)&&ae(e,s,t[s]);return e},"F"),ie=p.isMobile(),E=C({wallets:{listings:[],total:0,page:1},search:{listings:[],total:0,page:1},recomendedWallets:[]}),$e={state:E,async getRecomendedWallets(){let{explorerRecommendedWalletIds:e,explorerExcludedWalletIds:t}=x.state;if(e==="NONE"||t==="ALL"&&!e)return E.recomendedWallets;if(p.isArray(e)){let s={recommendedIds:e.join(",")},{listings:o}=await k.getAllListings(s),c=Object.values(o);c.sort((d,m)=>{let g=e.indexOf(d.id),A=e.indexOf(m.id);return g-A}),E.recomendedWallets=c}else{let{chains:s,isAuth:o}=L.state,c=s?.join(","),d=p.isArray(t),m={page:1,sdks:o?"auth_v1":void 0,entries:p.RECOMMENDED_WALLET_AMOUNT,chains:c,version:2,excludedIds:d?t.join(","):void 0},{listings:g}=ie?await k.getMobileListings(m):await k.getDesktopListings(m);E.recomendedWallets=Object.values(g)}return E.recomendedWallets},async getWallets(e){let t=Ce({},e),{explorerRecommendedWalletIds:s,explorerExcludedWalletIds:o}=x.state,{recomendedWallets:c}=E;if(o==="ALL")return E.wallets;c.length?t.excludedIds=c.map(O=>O.id).join(","):p.isArray(s)&&(t.excludedIds=s.join(",")),p.isArray(o)&&(t.excludedIds=[t.excludedIds,o].filter(Boolean).join(",")),L.state.isAuth&&(t.sdks="auth_v1");let{page:d,search:m}=e,{listings:g,total:A}=ie?await k.getMobileListings(t):await k.getDesktopListings(t),r=Object.values(g),y=m?"search":"wallets";return E[y]={listings:[...E[y].listings,...r],total:A,page:d??1},{listings:r,total:A}},getWalletImageUrl(e){return k.getWalletImageUrl(e)},getAssetImageUrl(e){return k.getAssetImageUrl(e)},resetSearch(){E.search={listings:[],total:0,page:1}}},N=C({open:!1}),Ve={state:N,subscribe(e){return D(N,()=>e(N))},async open(e){return new Promise(t=>{let{isUiLoaded:s,isDataLoaded:o}=L.state;if(p.removeWalletConnectDeepLink(),L.setWalletConnectUri(e?.uri),L.setChains(e?.chains),de.reset("ConnectWallet"),s&&o)N.open=!0,t();else{let c=setInterval(()=>{let d=L.state;d.isUiLoaded&&d.isDataLoaded&&(clearInterval(c),N.open=!0,t())},200)}})},close(){N.open=!1}},Ae=Object.defineProperty,le=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable,ce=l((e,t,s)=>t in e?Ae(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,"S"),De=l((e,t)=>{for(var s in t||(t={}))je.call(t,s)&&ce(e,s,t[s]);if(le)for(var s of le(t))Pe.call(t,s)&&ce(e,s,t[s]);return e},"Y");function Me(){return typeof matchMedia<"u"&&matchMedia("(prefers-color-scheme: dark)").matches}l(Me,"Z");var _=C({themeMode:Me()?"dark":"light"}),Ke={state:_,subscribe(e){return D(_,()=>e(_))},setThemeConfig(e){let{themeMode:t,themeVariables:s}=e;t&&(_.themeMode=t),s&&(_.themeVariables=De({},s))}},U=C({open:!1,message:"",variant:"success"}),Be={state:U,subscribe(e){return D(U,()=>e(U))},openToast(e,t){U.open=!0,U.message=e,U.variant=t},closeToast(){U.open=!1}};export{de as a,p as b,be as c,L as d,x as e,$e as f,Ve as g,Ke as h,Be as i};
2
+ //# sourceMappingURL=chunk-BPSEZJUF.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../node_modules/proxy-compare/src/index.ts", "../../../node_modules/valtio/esm/vanilla.mjs", "../../../node_modules/@walletconnect/modal-core/src/controllers/RouterCtrl.ts", "../../../node_modules/@walletconnect/modal-core/src/utils/CoreUtil.ts", "../../../node_modules/@walletconnect/modal-core/src/controllers/EventsCtrl.ts", "../../../node_modules/@walletconnect/modal-core/src/controllers/OptionsCtrl.ts", "../../../node_modules/@walletconnect/modal-core/src/controllers/ConfigCtrl.ts", "../../../node_modules/@walletconnect/modal-core/src/utils/ExplorerUtil.ts", "../../../node_modules/@walletconnect/modal-core/src/controllers/ExplorerCtrl.ts", "../../../node_modules/@walletconnect/modal-core/src/controllers/ModalCtrl.ts", "../../../node_modules/@walletconnect/modal-core/src/controllers/ThemeCtrl.ts", "../../../node_modules/@walletconnect/modal-core/src/controllers/ToastCtrl.ts"],
4
+ "sourcesContent": ["// symbols\nconst TRACK_MEMO_SYMBOL = Symbol();\nconst GET_ORIGINAL_SYMBOL = Symbol();\n\n// properties\nconst AFFECTED_PROPERTY = 'a';\nconst IS_TARGET_COPIED_PROPERTY = 'f';\nconst PROXY_PROPERTY = 'p';\nconst PROXY_CACHE_PROPERTY = 'c';\nconst TARGET_CACHE_PROPERTY = 't';\nconst NEXT_OBJECT_PROPERTY = 'n';\nconst CHANGED_PROPERTY = 'g';\nconst HAS_KEY_PROPERTY = 'h';\nconst ALL_OWN_KEYS_PROPERTY = 'w';\nconst HAS_OWN_KEY_PROPERTY = 'o';\nconst KEYS_PROPERTY = 'k';\n\n// function to create a new bare proxy\nlet newProxy = <T extends object>(\n target: T,\n handler: ProxyHandler<T>,\n) => new Proxy(target, handler);\n\n// get object prototype\nconst getProto = Object.getPrototypeOf;\n\nconst objectsToTrack = new WeakMap<object, boolean>();\n\n// check if obj is a plain object or an array\nconst isObjectToTrack = <T>(obj: T): obj is T extends object ? T : never => (\n obj && (objectsToTrack.has(obj as unknown as object)\n ? objectsToTrack.get(obj as unknown as object) as boolean\n : (getProto(obj) === Object.prototype || getProto(obj) === Array.prototype)\n )\n);\n\n// check if it is object\nconst isObject = (x: unknown): x is object => (\n typeof x === 'object' && x !== null\n);\n\n// Properties that are both non-configurable and non-writable will break\n// the proxy get trap when we try to return a recursive/child compare proxy\n// from them. We can avoid this by making a copy of the target object with\n// all descriptors marked as configurable, see `copyTargetObject`.\n// See: https://github.com/dai-shi/proxy-compare/pull/8\nconst needsToCopyTargetObject = (obj: object) => (\n Object.values(Object.getOwnPropertyDescriptors(obj)).some(\n (descriptor) => !descriptor.configurable && !descriptor.writable,\n )\n);\n\n// Make a copy with all descriptors marked as configurable.\nconst copyTargetObject = <T extends object>(obj: T): T => {\n if (Array.isArray(obj)) {\n // Arrays need a special way to copy\n return Array.from(obj) as T;\n }\n // For non-array objects, we create a new object keeping the prototype\n // with changing all configurable options (otherwise, proxies will complain)\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n Object.values(descriptors).forEach((desc) => { desc.configurable = true; });\n return Object.create(getProto(obj), descriptors);\n};\n\ntype HasKeySet = Set<string | symbol>\ntype HasOwnKeySet = Set<string | symbol>\ntype KeysSet = Set<string | symbol>\ntype Used = {\n [HAS_KEY_PROPERTY]?: HasKeySet;\n [ALL_OWN_KEYS_PROPERTY]?: true;\n [HAS_OWN_KEY_PROPERTY]?: HasOwnKeySet;\n [KEYS_PROPERTY]?: KeysSet;\n};\ntype Affected = WeakMap<object, Used>;\ntype ProxyHandlerState<T extends object> = {\n readonly [IS_TARGET_COPIED_PROPERTY]: boolean;\n [PROXY_PROPERTY]?: T;\n [PROXY_CACHE_PROPERTY]?: ProxyCache<object> | undefined;\n [TARGET_CACHE_PROPERTY]?: TargetCache<object> | undefined;\n [AFFECTED_PROPERTY]?: Affected;\n}\ntype ProxyCache<T extends object> = WeakMap<\n object,\n readonly [ProxyHandler<T>, ProxyHandlerState<T>]\n>;\ntype TargetCache<T extends object> = WeakMap<\n object,\n readonly [target: T, copiedTarget?: T]\n>;\n\nconst createProxyHandler = <T extends object>(origObj: T, isTargetCopied: boolean) => {\n const state: ProxyHandlerState<T> = {\n [IS_TARGET_COPIED_PROPERTY]: isTargetCopied,\n };\n let trackObject = false; // for trackMemo\n const recordUsage = (\n type:\n | typeof HAS_KEY_PROPERTY\n | typeof ALL_OWN_KEYS_PROPERTY\n | typeof HAS_OWN_KEY_PROPERTY\n | typeof KEYS_PROPERTY,\n key?: string | symbol,\n ) => {\n if (!trackObject) {\n let used = (state[AFFECTED_PROPERTY] as Affected).get(origObj);\n if (!used) {\n used = {};\n (state[AFFECTED_PROPERTY] as Affected).set(origObj, used);\n }\n if (type === ALL_OWN_KEYS_PROPERTY) {\n used[ALL_OWN_KEYS_PROPERTY] = true;\n } else {\n let set = used[type];\n if (!set) {\n set = new Set();\n used[type] = set;\n }\n set.add(key as string | symbol);\n }\n }\n };\n const recordObjectAsUsed = () => {\n trackObject = true;\n (state[AFFECTED_PROPERTY] as Affected).delete(origObj);\n };\n const handler: ProxyHandler<T> = {\n get(target, key) {\n if (key === GET_ORIGINAL_SYMBOL) {\n return origObj;\n }\n recordUsage(KEYS_PROPERTY, key);\n return createProxy(\n Reflect.get(target, key),\n (state[AFFECTED_PROPERTY] as Affected),\n state[PROXY_CACHE_PROPERTY],\n state[TARGET_CACHE_PROPERTY],\n );\n },\n has(target, key) {\n if (key === TRACK_MEMO_SYMBOL) {\n recordObjectAsUsed();\n return true;\n }\n recordUsage(HAS_KEY_PROPERTY, key);\n return Reflect.has(target, key);\n },\n getOwnPropertyDescriptor(target, key) {\n recordUsage(HAS_OWN_KEY_PROPERTY, key);\n return Reflect.getOwnPropertyDescriptor(target, key);\n },\n ownKeys(target) {\n recordUsage(ALL_OWN_KEYS_PROPERTY);\n return Reflect.ownKeys(target);\n },\n };\n if (isTargetCopied) {\n handler.set = handler.deleteProperty = () => false;\n }\n return [handler, state] as const;\n};\n\nconst getOriginalObject = <T extends object>(obj: T) => (\n // unwrap proxy\n (obj as { [GET_ORIGINAL_SYMBOL]?: typeof obj })[GET_ORIGINAL_SYMBOL]\n // otherwise\n || obj\n);\n\n/**\n * Create a proxy.\n *\n * This function will create a proxy at top level and proxy nested objects as you access them,\n * in order to keep track of which properties were accessed via get/has proxy handlers:\n *\n * NOTE: Printing of WeakMap is hard to inspect and not very readable\n * for this purpose you can use the `affectedToPathList` helper.\n *\n * @param {object} obj - Object that will be wrapped on the proxy.\n * @param {WeakMap<object, unknown>} affected -\n * WeakMap that will hold the tracking of which properties in the proxied object were accessed.\n * @param {WeakMap<object, unknown>} [proxyCache] -\n * WeakMap that will help keep referential identity for proxies.\n * @returns {Proxy<object>} - Object wrapped in a proxy.\n *\n * @example\n * import { createProxy } from 'proxy-compare';\n *\n * const original = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n * const proxy = createProxy(original, affected);\n *\n * proxy.a // Will mark as used and track its value.\n * // This will update the affected WeakMap with original as key\n * // and a Set with \"a\"\n *\n * proxy.d // Will mark \"d\" as accessed to track and proxy itself ({ e: \"3\" }).\n * // This will update the affected WeakMap with original as key\n * // and a Set with \"d\"\n */\nexport const createProxy = <T>(\n obj: T,\n affected: WeakMap<object, unknown>,\n proxyCache?: WeakMap<object, unknown>,\n targetCache?: WeakMap<object, unknown>,\n): T => {\n if (!isObjectToTrack(obj)) return obj;\n let targetAndCopied = (\n targetCache && (targetCache as TargetCache<typeof obj>).get(obj)\n );\n if (!targetAndCopied) {\n const target = getOriginalObject(obj);\n if (needsToCopyTargetObject(target)) {\n targetAndCopied = [target, copyTargetObject(target)];\n } else {\n targetAndCopied = [target];\n }\n targetCache?.set(obj, targetAndCopied);\n }\n const [target, copiedTarget] = targetAndCopied;\n let handlerAndState = (\n proxyCache && (proxyCache as ProxyCache<typeof target>).get(target)\n );\n if (\n !handlerAndState\n || handlerAndState[1][IS_TARGET_COPIED_PROPERTY] !== !!copiedTarget\n ) {\n handlerAndState = createProxyHandler<typeof target>(target, !!copiedTarget);\n handlerAndState[1][PROXY_PROPERTY] = newProxy(\n copiedTarget || target,\n handlerAndState[0],\n );\n if (proxyCache) {\n proxyCache.set(target, handlerAndState);\n }\n }\n handlerAndState[1][AFFECTED_PROPERTY] = affected as Affected;\n handlerAndState[1][PROXY_CACHE_PROPERTY] = proxyCache as ProxyCache<object> | undefined;\n handlerAndState[1][TARGET_CACHE_PROPERTY] = targetCache as TargetCache<object> | undefined;\n return handlerAndState[1][PROXY_PROPERTY] as typeof target;\n};\n\nconst isAllOwnKeysChanged = (prevObj: object, nextObj: object) => {\n const prevKeys = Reflect.ownKeys(prevObj);\n const nextKeys = Reflect.ownKeys(nextObj);\n return prevKeys.length !== nextKeys.length\n || prevKeys.some((k, i) => k !== nextKeys[i]);\n};\n\ntype ChangedCache = WeakMap<object, {\n [NEXT_OBJECT_PROPERTY]: object;\n [CHANGED_PROPERTY]: boolean;\n}>;\n\n/**\n * Compare changes on objects.\n *\n * This will compare the affected properties on tracked objects inside the proxy\n * to check if there were any changes made to it,\n * by default if no property was accessed on the proxy it will attempt to do a\n * reference equality check for the objects provided (Object.is(a, b)). If you access a property\n * on the proxy, then isChanged will only compare the affected properties.\n *\n * @param {object} prevObj - The previous object to compare.\n * @param {object} nextObj - Object to compare with the previous one.\n * @param {WeakMap<object, unknown>} affected -\n * WeakMap that holds the tracking of which properties in the proxied object were accessed.\n * @param {WeakMap<object, unknown>} [cache] -\n * WeakMap that holds a cache of the comparisons for better performance with repetitive comparisons,\n * and to avoid infinite loop with circular structures.\n * @returns {boolean} - Boolean indicating if the affected property on the object has changed.\n *\n * @example\n * import { createProxy, isChanged } from 'proxy-compare';\n *\n * const obj = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(obj, affected);\n *\n * proxy.a\n *\n * isChanged(obj, { a: \"1\" }, affected) // false\n *\n * proxy.a = \"2\"\n *\n * isChanged(obj, { a: \"1\" }, affected) // true\n */\n\nexport const isChanged = (\n prevObj: unknown,\n nextObj: unknown,\n affected: WeakMap<object, unknown>,\n cache?: WeakMap<object, unknown>,\n): boolean => {\n if (Object.is(prevObj, nextObj)) {\n return false;\n }\n if (!isObject(prevObj) || !isObject(nextObj)) return true;\n const used = (affected as Affected).get(getOriginalObject(prevObj));\n if (!used) return true;\n if (cache) {\n const hit = (cache as ChangedCache).get(prevObj);\n if (hit && hit[NEXT_OBJECT_PROPERTY] === nextObj) {\n return hit[CHANGED_PROPERTY];\n }\n // for object with cycles\n (cache as ChangedCache).set(prevObj, {\n [NEXT_OBJECT_PROPERTY]: nextObj,\n [CHANGED_PROPERTY]: false,\n });\n }\n let changed: boolean | null = null;\n try {\n for (const key of used[HAS_KEY_PROPERTY] || []) {\n changed = Reflect.has(prevObj, key) !== Reflect.has(nextObj, key);\n if (changed) return changed;\n }\n if (used[ALL_OWN_KEYS_PROPERTY] === true) {\n changed = isAllOwnKeysChanged(prevObj, nextObj);\n if (changed) return changed;\n } else {\n for (const key of used[HAS_OWN_KEY_PROPERTY] || []) {\n const hasPrev = !!Reflect.getOwnPropertyDescriptor(prevObj, key);\n const hasNext = !!Reflect.getOwnPropertyDescriptor(nextObj, key);\n changed = hasPrev !== hasNext;\n if (changed) return changed;\n }\n }\n for (const key of used[KEYS_PROPERTY] || []) {\n changed = isChanged(\n (prevObj as any)[key],\n (nextObj as any)[key],\n affected,\n cache,\n );\n if (changed) return changed;\n }\n if (changed === null) changed = true;\n return changed;\n } finally {\n if (cache) {\n cache.set(prevObj, {\n [NEXT_OBJECT_PROPERTY]: nextObj,\n [CHANGED_PROPERTY]: changed,\n });\n }\n }\n};\n\n// explicitly track object with memo\nexport const trackMemo = (obj: unknown) => {\n if (isObjectToTrack(obj)) {\n return TRACK_MEMO_SYMBOL in obj;\n }\n return false;\n};\n\n/**\n * Unwrap proxy to get the original object.\n *\n * Used to retrieve the original object used to create the proxy instance with `createProxy`.\n *\n * @param {Proxy<object>} obj - The proxy wrapper of the originial object.\n * @returns {object | null} - Return either the unwrapped object if exists.\n *\n * @example\n * import { createProxy, getUntracked } from 'proxy-compare';\n *\n * const original = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(original, affected);\n * const originalFromProxy = getUntracked(proxy)\n *\n * Object.is(original, originalFromProxy) // true\n * isChanged(original, originalFromProxy, affected) // false\n */\nexport const getUntracked = <T>(obj: T): T | null => {\n if (isObjectToTrack(obj)) {\n return (obj as { [GET_ORIGINAL_SYMBOL]?: T })[GET_ORIGINAL_SYMBOL] || null;\n }\n return null;\n};\n\n/**\n * Mark object to be tracked.\n *\n * This function marks an object that will be passed into `createProxy`\n * as marked to track or not. By default only Array and Object are marked to track,\n * so this is useful for example to mark a class instance to track or to mark a object\n * to be untracked when creating your proxy.\n *\n * @param obj - Object to mark as tracked or not.\n * @param mark - Boolean indicating whether you want to track this object or not.\n * @returns - No return.\n *\n * @example\n * import { createProxy, markToTrack, isChanged } from 'proxy-compare';\n *\n * const nested = { e: \"3\" }\n *\n * markToTrack(nested, false)\n *\n * const original = { a: \"1\", c: \"2\", d: nested };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(original, affected);\n *\n * proxy.d.e\n *\n * isChanged(original, { d: { e: \"3\" } }, affected) // true\n */\nexport const markToTrack = (obj: object, mark = true) => {\n objectsToTrack.set(obj, mark);\n};\n\n/**\n * Convert `affected` to path list\n *\n * `affected` is a weak map which is not printable.\n * This function is can convert it to printable path list.\n * It's for debugging purpose.\n *\n * @param obj - An object that is used with `createProxy`.\n * @param affected - A weak map that is used with `createProxy`.\n * @param onlyWithValues - An optional boolean to exclude object getters.\n * @returns - An array of paths.\n */\nexport const affectedToPathList = (\n obj: unknown,\n affected: WeakMap<object, unknown>,\n onlyWithValues?: boolean,\n) => {\n const list: (string | symbol)[][] = [];\n const seen = new WeakSet();\n const walk = (x: unknown, path?: (string | symbol)[]) => {\n if (seen.has(x as object)) {\n // for object with cycles\n return;\n }\n if (isObject(x)) {\n seen.add(x);\n }\n const used = isObject(x) && (affected as Affected).get(getOriginalObject(x));\n if (used) {\n used[HAS_KEY_PROPERTY]?.forEach((key) => {\n const segment = `:has(${String(key)})`;\n list.push(path ? [...path, segment] : [segment]);\n });\n if (used[ALL_OWN_KEYS_PROPERTY] === true) {\n const segment = ':ownKeys';\n list.push(path ? [...path, segment] : [segment]);\n } else {\n used[HAS_OWN_KEY_PROPERTY]?.forEach((key) => {\n const segment = `:hasOwn(${String(key)})`;\n list.push(path ? [...path, segment] : [segment]);\n });\n }\n used[KEYS_PROPERTY]?.forEach((key) => {\n if (!onlyWithValues || 'value' in (Object.getOwnPropertyDescriptor(x, key) || {})) {\n walk((x as any)[key], path ? [...path, key] : [key]);\n }\n });\n } else if (path) {\n list.push(path);\n }\n };\n walk(obj);\n return list;\n};\n\n/**\n * replace newProxy function.\n *\n * This can be used if you want to use proxy-polyfill.\n * Note that proxy-polyfill can't polyfill everything.\n * Use it at your own risk.\n */\nexport const replaceNewProxy = (fn: typeof newProxy) => {\n newProxy = fn;\n};\n", "import { markToTrack, getUntracked } from 'proxy-compare';\n\nconst isObject = (x) => typeof x === \"object\" && x !== null;\nconst proxyStateMap = /* @__PURE__ */ new WeakMap();\nconst refSet = /* @__PURE__ */ new WeakSet();\nconst buildProxyFunction = (objectIs = Object.is, newProxy = (target, handler) => new Proxy(target, handler), canProxy = (x) => isObject(x) && !refSet.has(x) && (Array.isArray(x) || !(Symbol.iterator in x)) && !(x instanceof WeakMap) && !(x instanceof WeakSet) && !(x instanceof Error) && !(x instanceof Number) && !(x instanceof Date) && !(x instanceof String) && !(x instanceof RegExp) && !(x instanceof ArrayBuffer), defaultHandlePromise = (promise) => {\n switch (promise.status) {\n case \"fulfilled\":\n return promise.value;\n case \"rejected\":\n throw promise.reason;\n default:\n throw promise;\n }\n}, snapCache = /* @__PURE__ */ new WeakMap(), createSnapshot = (target, version, handlePromise = defaultHandlePromise) => {\n const cache = snapCache.get(target);\n if ((cache == null ? void 0 : cache[0]) === version) {\n return cache[1];\n }\n const snap = Array.isArray(target) ? [] : Object.create(Object.getPrototypeOf(target));\n markToTrack(snap, true);\n snapCache.set(target, [version, snap]);\n Reflect.ownKeys(target).forEach((key) => {\n if (Object.getOwnPropertyDescriptor(snap, key)) {\n return;\n }\n const value = Reflect.get(target, key);\n const desc = {\n value,\n enumerable: true,\n // This is intentional to avoid copying with proxy-compare.\n // It's still non-writable, so it avoids assigning a value.\n configurable: true\n };\n if (refSet.has(value)) {\n markToTrack(value, false);\n } else if (value instanceof Promise) {\n delete desc.value;\n desc.get = () => handlePromise(value);\n } else if (proxyStateMap.has(value)) {\n const [target2, ensureVersion] = proxyStateMap.get(\n value\n );\n desc.value = createSnapshot(\n target2,\n ensureVersion(),\n handlePromise\n );\n }\n Object.defineProperty(snap, key, desc);\n });\n return Object.preventExtensions(snap);\n}, proxyCache = /* @__PURE__ */ new WeakMap(), versionHolder = [1, 1], proxyFunction = (initialObject) => {\n if (!isObject(initialObject)) {\n throw new Error(\"object required\");\n }\n const found = proxyCache.get(initialObject);\n if (found) {\n return found;\n }\n let version = versionHolder[0];\n const listeners = /* @__PURE__ */ new Set();\n const notifyUpdate = (op, nextVersion = ++versionHolder[0]) => {\n if (version !== nextVersion) {\n version = nextVersion;\n listeners.forEach((listener) => listener(op, nextVersion));\n }\n };\n let checkVersion = versionHolder[1];\n const ensureVersion = (nextCheckVersion = ++versionHolder[1]) => {\n if (checkVersion !== nextCheckVersion && !listeners.size) {\n checkVersion = nextCheckVersion;\n propProxyStates.forEach(([propProxyState]) => {\n const propVersion = propProxyState[1](nextCheckVersion);\n if (propVersion > version) {\n version = propVersion;\n }\n });\n }\n return version;\n };\n const createPropListener = (prop) => (op, nextVersion) => {\n const newOp = [...op];\n newOp[1] = [prop, ...newOp[1]];\n notifyUpdate(newOp, nextVersion);\n };\n const propProxyStates = /* @__PURE__ */ new Map();\n const addPropListener = (prop, propProxyState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && propProxyStates.has(prop)) {\n throw new Error(\"prop listener already exists\");\n }\n if (listeners.size) {\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n } else {\n propProxyStates.set(prop, [propProxyState]);\n }\n };\n const removePropListener = (prop) => {\n var _a;\n const entry = propProxyStates.get(prop);\n if (entry) {\n propProxyStates.delete(prop);\n (_a = entry[1]) == null ? void 0 : _a.call(entry);\n }\n };\n const addListener = (listener) => {\n listeners.add(listener);\n if (listeners.size === 1) {\n propProxyStates.forEach(([propProxyState, prevRemove], prop) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && prevRemove) {\n throw new Error(\"remove already exists\");\n }\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n });\n }\n const removeListener = () => {\n listeners.delete(listener);\n if (listeners.size === 0) {\n propProxyStates.forEach(([propProxyState, remove], prop) => {\n if (remove) {\n remove();\n propProxyStates.set(prop, [propProxyState]);\n }\n });\n }\n };\n return removeListener;\n };\n const baseObject = Array.isArray(initialObject) ? [] : Object.create(Object.getPrototypeOf(initialObject));\n const handler = {\n deleteProperty(target, prop) {\n const prevValue = Reflect.get(target, prop);\n removePropListener(prop);\n const deleted = Reflect.deleteProperty(target, prop);\n if (deleted) {\n notifyUpdate([\"delete\", [prop], prevValue]);\n }\n return deleted;\n },\n set(target, prop, value, receiver) {\n const hasPrevValue = Reflect.has(target, prop);\n const prevValue = Reflect.get(target, prop, receiver);\n if (hasPrevValue && (objectIs(prevValue, value) || proxyCache.has(value) && objectIs(prevValue, proxyCache.get(value)))) {\n return true;\n }\n removePropListener(prop);\n if (isObject(value)) {\n value = getUntracked(value) || value;\n }\n let nextValue = value;\n if (value instanceof Promise) {\n value.then((v) => {\n value.status = \"fulfilled\";\n value.value = v;\n notifyUpdate([\"resolve\", [prop], v]);\n }).catch((e) => {\n value.status = \"rejected\";\n value.reason = e;\n notifyUpdate([\"reject\", [prop], e]);\n });\n } else {\n if (!proxyStateMap.has(value) && canProxy(value)) {\n nextValue = proxyFunction(value);\n }\n const childProxyState = !refSet.has(nextValue) && proxyStateMap.get(nextValue);\n if (childProxyState) {\n addPropListener(prop, childProxyState);\n }\n }\n Reflect.set(target, prop, nextValue, receiver);\n notifyUpdate([\"set\", [prop], value, prevValue]);\n return true;\n }\n };\n const proxyObject = newProxy(baseObject, handler);\n proxyCache.set(initialObject, proxyObject);\n const proxyState = [\n baseObject,\n ensureVersion,\n createSnapshot,\n addListener\n ];\n proxyStateMap.set(proxyObject, proxyState);\n Reflect.ownKeys(initialObject).forEach((key) => {\n const desc = Object.getOwnPropertyDescriptor(\n initialObject,\n key\n );\n if (\"value\" in desc) {\n proxyObject[key] = initialObject[key];\n delete desc.value;\n delete desc.writable;\n }\n Object.defineProperty(baseObject, key, desc);\n });\n return proxyObject;\n}) => [\n // public functions\n proxyFunction,\n // shared state\n proxyStateMap,\n refSet,\n // internal things\n objectIs,\n newProxy,\n canProxy,\n defaultHandlePromise,\n snapCache,\n createSnapshot,\n proxyCache,\n versionHolder\n];\nconst [defaultProxyFunction] = buildProxyFunction();\nfunction proxy(initialObject = {}) {\n return defaultProxyFunction(initialObject);\n}\nfunction getVersion(proxyObject) {\n const proxyState = proxyStateMap.get(proxyObject);\n return proxyState == null ? void 0 : proxyState[1]();\n}\nfunction subscribe(proxyObject, callback, notifyInSync) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n let promise;\n const ops = [];\n const addListener = proxyState[3];\n let isListenerActive = false;\n const listener = (op) => {\n ops.push(op);\n if (notifyInSync) {\n callback(ops.splice(0));\n return;\n }\n if (!promise) {\n promise = Promise.resolve().then(() => {\n promise = void 0;\n if (isListenerActive) {\n callback(ops.splice(0));\n }\n });\n }\n };\n const removeListener = addListener(listener);\n isListenerActive = true;\n return () => {\n isListenerActive = false;\n removeListener();\n };\n}\nfunction snapshot(proxyObject, handlePromise) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n const [target, ensureVersion, createSnapshot] = proxyState;\n return createSnapshot(target, ensureVersion(), handlePromise);\n}\nfunction ref(obj) {\n refSet.add(obj);\n return obj;\n}\nconst unstable_buildProxyFunction = buildProxyFunction;\n\nexport { getVersion, proxy, ref, snapshot, subscribe, unstable_buildProxyFunction };\n", "import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { RouterCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy<RouterCtrlState>({\n history: ['ConnectWallet'],\n view: 'ConnectWallet',\n data: undefined\n})\n\n// -- controller --------------------------------------------------- //\nexport const RouterCtrl = {\n state,\n\n subscribe(callback: (newState: RouterCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n push(view: RouterCtrlState['view'], data?: RouterCtrlState['data']) {\n if (view !== state.view) {\n state.view = view\n if (data) {\n state.data = data\n }\n state.history.push(view)\n }\n },\n\n reset(view: RouterCtrlState['view']) {\n state.view = view\n state.history = [view]\n },\n\n replace(view: RouterCtrlState['view']) {\n if (state.history.length > 1) {\n state.history[state.history.length - 1] = view\n state.view = view\n }\n },\n\n goBack() {\n if (state.history.length > 1) {\n state.history.pop()\n const [last] = state.history.slice(-1)\n state.view = last\n }\n },\n\n setData(data: RouterCtrlState['data']) {\n state.data = data\n }\n}\n", "import { RouterCtrl } from '../controllers/RouterCtrl'\n\nexport const CoreUtil = {\n WALLETCONNECT_DEEPLINK_CHOICE: 'WALLETCONNECT_DEEPLINK_CHOICE',\n\n WCM_VERSION: 'WCM_VERSION',\n\n RECOMMENDED_WALLET_AMOUNT: 9,\n\n isMobile() {\n if (typeof window !== 'undefined') {\n return Boolean(\n window.matchMedia('(pointer:coarse)').matches ||\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent)\n )\n }\n\n return false\n },\n\n isAndroid() {\n return CoreUtil.isMobile() && navigator.userAgent.toLowerCase().includes('android')\n },\n\n isIos() {\n const ua = navigator.userAgent.toLowerCase()\n\n return CoreUtil.isMobile() && (ua.includes('iphone') || ua.includes('ipad'))\n },\n\n isHttpUrl(url: string) {\n return url.startsWith('http://') || url.startsWith('https://')\n },\n\n isArray<T>(data?: T | T[]): data is T[] {\n return Array.isArray(data) && data.length > 0\n },\n\n formatNativeUrl(appUrl: string, wcUri: string, name: string): string {\n if (CoreUtil.isHttpUrl(appUrl)) {\n return this.formatUniversalUrl(appUrl, wcUri, name)\n }\n let safeAppUrl = appUrl\n if (!safeAppUrl.includes('://')) {\n safeAppUrl = appUrl.replaceAll('/', '').replaceAll(':', '')\n safeAppUrl = `${safeAppUrl}://`\n }\n if (!safeAppUrl.endsWith('/')) {\n safeAppUrl = `${safeAppUrl}/`\n }\n this.setWalletConnectDeepLink(safeAppUrl, name)\n const encodedWcUrl = encodeURIComponent(wcUri)\n\n return `${safeAppUrl}wc?uri=${encodedWcUrl}`\n },\n\n formatUniversalUrl(appUrl: string, wcUri: string, name: string): string {\n if (!CoreUtil.isHttpUrl(appUrl)) {\n return this.formatNativeUrl(appUrl, wcUri, name)\n }\n let safeAppUrl = appUrl\n if (!safeAppUrl.endsWith('/')) {\n safeAppUrl = `${safeAppUrl}/`\n }\n this.setWalletConnectDeepLink(safeAppUrl, name)\n const encodedWcUrl = encodeURIComponent(wcUri)\n\n return `${safeAppUrl}wc?uri=${encodedWcUrl}`\n },\n\n async wait(miliseconds: number) {\n return new Promise(resolve => {\n setTimeout(resolve, miliseconds)\n })\n },\n\n openHref(href: string, target: '_blank' | '_self') {\n window.open(href, target, 'noreferrer noopener')\n },\n\n setWalletConnectDeepLink(href: string, name: string) {\n try {\n localStorage.setItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE, JSON.stringify({ href, name }))\n } catch {\n console.info('Unable to set WalletConnect deep link')\n }\n },\n\n setWalletConnectAndroidDeepLink(wcUri: string) {\n try {\n const [href] = wcUri.split('?')\n localStorage.setItem(\n CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE,\n JSON.stringify({ href, name: 'Android' })\n )\n } catch {\n console.info('Unable to set WalletConnect android deep link')\n }\n },\n\n removeWalletConnectDeepLink() {\n try {\n localStorage.removeItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE)\n } catch {\n console.info('Unable to remove WalletConnect deep link')\n }\n },\n\n setModalVersionInStorage() {\n try {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(CoreUtil.WCM_VERSION, process.env.ROLLUP_WCM_VERSION ?? 'UNKNOWN')\n }\n } catch {\n console.info('Unable to set Web3Modal version in storage')\n }\n },\n\n getWalletRouterData() {\n const routerData = RouterCtrl.state.data?.Wallet\n if (!routerData) {\n throw new Error('Missing \"Wallet\" view data')\n }\n\n return routerData\n }\n}\n", "import { proxy, snapshot, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { EventsCtrlState, ModalEvent, ModalEventData } from '../types/controllerTypes'\n\n// -- helpers ------------------------------------------------------ //\nconst isEnabled =\n typeof location !== 'undefined' &&\n (location.hostname.includes('localhost') || location.protocol.includes('https'))\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy<EventsCtrlState>({\n enabled: isEnabled,\n userSessionId: '',\n events: [],\n connectedWalletId: undefined\n})\n\n// -- controller --------------------------------------------------- //\nexport const EventsCtrl = {\n state,\n\n subscribe(callback: (newEvent: ModalEvent) => void) {\n return valtioSub(state.events, () => callback(snapshot(state.events[state.events.length - 1])))\n },\n\n initialize() {\n if (state.enabled && typeof crypto?.randomUUID !== 'undefined') {\n state.userSessionId = crypto.randomUUID()\n }\n },\n\n setConnectedWalletId(connectedWalletId: EventsCtrlState['connectedWalletId']) {\n state.connectedWalletId = connectedWalletId\n },\n\n click(data: ModalEventData) {\n if (state.enabled) {\n const event = {\n type: 'CLICK' as const,\n name: data.name,\n userSessionId: state.userSessionId,\n timestamp: Date.now(),\n data\n }\n state.events.push(event)\n }\n },\n\n track(data: ModalEventData) {\n if (state.enabled) {\n const event = {\n type: 'TRACK' as const,\n name: data.name,\n userSessionId: state.userSessionId,\n timestamp: Date.now(),\n data\n }\n state.events.push(event)\n }\n },\n\n view(data: ModalEventData) {\n if (state.enabled) {\n const event = {\n type: 'VIEW' as const,\n name: data.name,\n userSessionId: state.userSessionId,\n timestamp: Date.now(),\n data\n }\n state.events.push(event)\n }\n }\n}\n", "import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { OptionsCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy<OptionsCtrlState>({\n chains: undefined,\n walletConnectUri: undefined,\n isAuth: false,\n isCustomDesktop: false,\n isCustomMobile: false,\n isDataLoaded: false,\n isUiLoaded: false\n})\n\n// -- controller --------------------------------------------------- //\nexport const OptionsCtrl = {\n state,\n\n subscribe(callback: (newState: OptionsCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n setChains(chains: OptionsCtrlState['chains']) {\n state.chains = chains\n },\n\n setWalletConnectUri(walletConnectUri: OptionsCtrlState['walletConnectUri']) {\n state.walletConnectUri = walletConnectUri\n },\n\n setIsCustomDesktop(isCustomDesktop: OptionsCtrlState['isCustomDesktop']) {\n state.isCustomDesktop = isCustomDesktop\n },\n\n setIsCustomMobile(isCustomMobile: OptionsCtrlState['isCustomMobile']) {\n state.isCustomMobile = isCustomMobile\n },\n\n setIsDataLoaded(isDataLoaded: OptionsCtrlState['isDataLoaded']) {\n state.isDataLoaded = isDataLoaded\n },\n\n setIsUiLoaded(isUiLoaded: OptionsCtrlState['isUiLoaded']) {\n state.isUiLoaded = isUiLoaded\n },\n\n setIsAuth(isAuth: OptionsCtrlState['isAuth']) {\n state.isAuth = isAuth\n }\n}\n", "import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ConfigCtrlState } from '../types/controllerTypes'\nimport { CoreUtil } from '../utils/CoreUtil'\nimport { EventsCtrl } from './EventsCtrl'\nimport { OptionsCtrl } from './OptionsCtrl'\n\nconst state = proxy<ConfigCtrlState>({\n projectId: '',\n mobileWallets: undefined,\n desktopWallets: undefined,\n walletImages: undefined,\n chains: undefined,\n enableAuthMode: false,\n enableExplorer: true,\n explorerExcludedWalletIds: undefined,\n explorerRecommendedWalletIds: undefined,\n termsOfServiceUrl: undefined,\n privacyPolicyUrl: undefined\n})\n\n// -- controller --------------------------------------------------- //\nexport const ConfigCtrl = {\n state,\n\n subscribe(callback: (newState: ConfigCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n setConfig(config: ConfigCtrlState) {\n EventsCtrl.initialize()\n OptionsCtrl.setChains(config.chains)\n OptionsCtrl.setIsAuth(Boolean(config.enableAuthMode))\n OptionsCtrl.setIsCustomMobile(Boolean(config.mobileWallets?.length))\n OptionsCtrl.setIsCustomDesktop(Boolean(config.desktopWallets?.length))\n\n CoreUtil.setModalVersionInStorage()\n\n Object.assign(state, config)\n }\n}\n", "import { ConfigCtrl } from '../controllers/ConfigCtrl'\nimport type { ListingParams, ListingResponse } from '../types/controllerTypes'\n\n// -- Helpers -------------------------------------------------------\nconst W3M_API = 'https://explorer-api.walletconnect.com'\nconst SDK_TYPE = 'wcm'\nconst SDK_VERSION = `js-${process.env.ROLLUP_WCM_VERSION}`\n\nasync function fetchListings(endpoint: string, params: ListingParams) {\n const allParams = { sdkType: SDK_TYPE, sdkVersion: SDK_VERSION, ...params }\n const url = new URL(endpoint, W3M_API)\n url.searchParams.append('projectId', ConfigCtrl.state.projectId)\n Object.entries(allParams).forEach(([key, value]) => {\n if (value) {\n url.searchParams.append(key, String(value))\n }\n })\n const request = await fetch(url)\n\n return request.json() as Promise<ListingResponse>\n}\n\n// -- Utility -------------------------------------------------------\nexport const ExplorerUtil = {\n async getDesktopListings(params: ListingParams) {\n return fetchListings('/w3m/v1/getDesktopListings', params)\n },\n\n async getMobileListings(params: ListingParams) {\n return fetchListings('/w3m/v1/getMobileListings', params)\n },\n\n async getInjectedListings(params: ListingParams) {\n return fetchListings('/w3m/v1/getInjectedListings', params)\n },\n\n async getAllListings(params: ListingParams) {\n return fetchListings('/w3m/v1/getAllListings', params)\n },\n\n getWalletImageUrl(imageId: string) {\n return `${W3M_API}/w3m/v1/getWalletImage/${imageId}?projectId=${ConfigCtrl.state.projectId}&sdkType=${SDK_TYPE}&sdkVersion=${SDK_VERSION}`\n },\n\n getAssetImageUrl(imageId: string) {\n return `${W3M_API}/w3m/v1/getAssetImage/${imageId}?projectId=${ConfigCtrl.state.projectId}&sdkType=${SDK_TYPE}&sdkVersion=${SDK_VERSION}`\n }\n}\n", "import { proxy } from 'valtio/vanilla'\nimport type { ExplorerCtrlState, ListingParams } from '../types/controllerTypes'\nimport { CoreUtil } from '../utils/CoreUtil'\nimport { ExplorerUtil } from '../utils/ExplorerUtil'\nimport { ConfigCtrl } from './ConfigCtrl'\nimport { OptionsCtrl } from './OptionsCtrl'\n\nconst isMobile = CoreUtil.isMobile()\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy<ExplorerCtrlState>({\n wallets: { listings: [], total: 0, page: 1 },\n search: { listings: [], total: 0, page: 1 },\n recomendedWallets: []\n})\n\n// -- controller --------------------------------------------------- //\nexport const ExplorerCtrl = {\n state,\n\n async getRecomendedWallets() {\n const { explorerRecommendedWalletIds, explorerExcludedWalletIds } = ConfigCtrl.state\n\n // Don't fetch recomended wallets\n if (\n explorerRecommendedWalletIds === 'NONE' ||\n (explorerExcludedWalletIds === 'ALL' && !explorerRecommendedWalletIds)\n ) {\n return state.recomendedWallets\n }\n\n // Fetch only recomended wallets defined in config\n if (CoreUtil.isArray(explorerRecommendedWalletIds)) {\n const recommendedIds = explorerRecommendedWalletIds.join(',')\n const params = { recommendedIds }\n const { listings } = await ExplorerUtil.getAllListings(params)\n const listingsArr = Object.values(listings)\n listingsArr.sort((a, b) => {\n const aIndex = explorerRecommendedWalletIds.indexOf(a.id)\n const bIndex = explorerRecommendedWalletIds.indexOf(b.id)\n\n return aIndex - bIndex\n })\n state.recomendedWallets = listingsArr\n }\n\n // Fetch default recomended wallets based on user's device, options and excluded config\n else {\n const { chains, isAuth } = OptionsCtrl.state\n const chainsFilter = chains?.join(',')\n const isExcluded = CoreUtil.isArray(explorerExcludedWalletIds)\n const params = {\n page: 1,\n sdks: isAuth ? 'auth_v1' : undefined,\n entries: CoreUtil.RECOMMENDED_WALLET_AMOUNT,\n chains: chainsFilter,\n version: 2,\n excludedIds: isExcluded ? explorerExcludedWalletIds.join(',') : undefined\n }\n const { listings } = isMobile\n ? await ExplorerUtil.getMobileListings(params)\n : await ExplorerUtil.getDesktopListings(params)\n state.recomendedWallets = Object.values(listings)\n }\n\n return state.recomendedWallets\n },\n\n async getWallets(params: ListingParams) {\n const extendedParams: ListingParams = { ...params }\n const { explorerRecommendedWalletIds, explorerExcludedWalletIds } = ConfigCtrl.state\n const { recomendedWallets } = state\n\n // Don't fetch any wallets if all are excluded\n if (explorerExcludedWalletIds === 'ALL') {\n return state.wallets\n }\n\n // Don't fetch recomended wallets, as we already have these\n if (recomendedWallets.length) {\n extendedParams.excludedIds = recomendedWallets.map(wallet => wallet.id).join(',')\n } else if (CoreUtil.isArray(explorerRecommendedWalletIds)) {\n extendedParams.excludedIds = explorerRecommendedWalletIds.join(',')\n }\n\n // Don't fetch user defined excluded wallets & recomended wallets\n if (CoreUtil.isArray(explorerExcludedWalletIds)) {\n extendedParams.excludedIds = [extendedParams.excludedIds, explorerExcludedWalletIds]\n .filter(Boolean)\n .join(',')\n }\n\n // Fetch only auth wallets\n if (OptionsCtrl.state.isAuth) {\n extendedParams.sdks = 'auth_v1'\n }\n\n const { page, search } = params\n const { listings: listingsObj, total } = isMobile\n ? await ExplorerUtil.getMobileListings(extendedParams)\n : await ExplorerUtil.getDesktopListings(extendedParams)\n const listings = Object.values(listingsObj)\n const type = search ? 'search' : 'wallets'\n state[type] = {\n listings: [...state[type].listings, ...listings],\n total,\n page: page ?? 1\n }\n\n return { listings, total }\n },\n\n getWalletImageUrl(imageId: string) {\n return ExplorerUtil.getWalletImageUrl(imageId)\n },\n\n getAssetImageUrl(imageId: string) {\n return ExplorerUtil.getAssetImageUrl(imageId)\n },\n\n resetSearch() {\n state.search = { listings: [], total: 0, page: 1 }\n }\n}\n", "import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ModalCtrlState } from '../types/controllerTypes'\nimport { CoreUtil } from '../utils/CoreUtil'\nimport { OptionsCtrl } from './OptionsCtrl'\nimport { RouterCtrl } from './RouterCtrl'\n\n// -- types -------------------------------------------------------- //\nexport interface OpenOptions {\n uri: string\n chains?: string[]\n}\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy<ModalCtrlState>({\n open: false\n})\n\n// -- controller --------------------------------------------------- //\nexport const ModalCtrl = {\n state,\n\n subscribe(callback: (newState: ModalCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n async open(options?: OpenOptions) {\n return new Promise<void>(resolve => {\n const { isUiLoaded, isDataLoaded } = OptionsCtrl.state\n CoreUtil.removeWalletConnectDeepLink()\n\n OptionsCtrl.setWalletConnectUri(options?.uri)\n OptionsCtrl.setChains(options?.chains)\n RouterCtrl.reset('ConnectWallet')\n\n // Open modal if essential async data is ready\n if (isUiLoaded && isDataLoaded) {\n state.open = true\n resolve()\n }\n // Otherwise (slow network) re-attempt open checks\n else {\n const interval = setInterval(() => {\n const opts = OptionsCtrl.state\n if (opts.isUiLoaded && opts.isDataLoaded) {\n clearInterval(interval)\n state.open = true\n resolve()\n }\n }, 200)\n }\n })\n },\n\n close() {\n state.open = false\n }\n}\n", "import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ThemeCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nfunction isDarkMode() {\n return typeof matchMedia !== 'undefined' && matchMedia('(prefers-color-scheme: dark)').matches\n}\n\nconst state = proxy<ThemeCtrlState>({\n themeMode: isDarkMode() ? 'dark' : 'light'\n})\n\n// -- controller --------------------------------------------------- //\nexport const ThemeCtrl = {\n state,\n\n subscribe(callback: (newState: ThemeCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n setThemeConfig(theme: ThemeCtrlState) {\n const { themeMode, themeVariables } = theme\n\n if (themeMode) {\n state.themeMode = themeMode\n }\n\n if (themeVariables) {\n state.themeVariables = { ...themeVariables }\n }\n }\n}\n", "import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ToastCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy<ToastCtrlState>({\n open: false,\n message: '',\n variant: 'success'\n})\n\n// -- controller --------------------------------------------------- //\nexport const ToastCtrl = {\n state,\n\n subscribe(callback: (newState: ToastCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n openToast(message: ToastCtrlState['message'], variant: ToastCtrlState['variant']) {\n state.open = true\n state.message = message\n state.variant = variant\n },\n\n closeToast() {\n state.open = false\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["TRACK_MEMO_SYMBOL", "Symbol", "GET_ORIGINAL_SYMBOL", "getProto", "Object", "getPrototypeOf", "objectsToTrack", "WeakMap", "isObjectToTrack", "obj", "has", "get", "prototype", "Array", "getUntracked", "obj", "isObjectToTrack", "GET_ORIGINAL_SYMBOL", "markToTrack", "mark", "objectsToTrack", "set", "isObject", "__name", "x", "proxyStateMap", "refSet", "buildProxyFunction", "objectIs", "newProxy", "target", "handler", "canProxy", "defaultHandlePromise", "promise", "snapCache", "createSnapshot", "version", "handlePromise", "cache", "snap", "h", "key", "value", "desc", "target2", "ensureVersion", "proxyCache", "versionHolder", "proxyFunction", "initialObject", "found", "listeners", "notifyUpdate", "op", "nextVersion", "listener", "checkVersion", "nextCheckVersion", "propProxyStates", "propProxyState", "propVersion", "createPropListener", "prop", "newOp", "addPropListener", "remove", "removePropListener", "_a", "entry", "addListener", "prevRemove", "baseObject", "proxyObject", "prevValue", "deleted", "receiver", "hasPrevValue", "y", "nextValue", "v", "e", "childProxyState", "proxyState", "defaultProxyFunction", "proxy", "subscribe", "proxyObject", "callback", "notifyInSync", "proxyState", "proxyStateMap", "promise", "ops", "addListener", "isListenerActive", "removeListener", "__name", "op", "snapshot", "handlePromise", "target", "ensureVersion", "createSnapshot", "state", "proxy", "RouterCtrl", "callback", "valtioSub", "view", "data", "last", "CoreUtil", "ua", "url", "appUrl", "wcUri", "name", "safeAppUrl", "encodedWcUrl", "miliseconds", "resolve", "href", "target", "_a", "routerData", "isEnabled", "EventsCtrl", "snapshot", "connectedWalletId", "event", "OptionsCtrl", "chains", "walletConnectUri", "isCustomDesktop", "isCustomMobile", "isDataLoaded", "isUiLoaded", "isAuth", "ConfigCtrl", "config", "_b", "d", "p", "I", "P", "m", "__name", "t", "s", "e", "l", "W3M_API", "SDK_TYPE", "SDK_VERSION", "fetchListings", "endpoint", "params", "allParams", "__spreadValues", "key", "value", "ExplorerUtil", "imageId", "E", "u", "h", "y", "x", "f", "isMobile", "ExplorerCtrl", "explorerRecommendedWalletIds", "explorerExcludedWalletIds", "listings", "listingsArr", "a", "b", "aIndex", "bIndex", "chainsFilter", "isExcluded", "extendedParams", "recomendedWallets", "wallet", "page", "search", "listingsObj", "total", "type", "ModalCtrl", "options", "interval", "opts", "i", "c", "r", "isDarkMode", "ThemeCtrl", "theme", "themeMode", "themeVariables", "ToastCtrl", "message", "variant"]
7
+ }
@@ -0,0 +1,2 @@
1
+ var g=Object.create;var e=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var m=(b,a)=>e(b,"name",{value:a,configurable:!0});var n=(b,a)=>()=>(a||b((a={exports:{}}).exports,a),a.exports);var l=(b,a,c,f)=>{if(a&&typeof a=="object"||typeof a=="function")for(let d of i(a))!k.call(b,d)&&d!==c&&e(b,d,{get:()=>a[d],enumerable:!(f=h(a,d))||f.enumerable});return b};var o=(b,a,c)=>(c=b!=null?g(j(b)):{},l(a||!b||!b.__esModule?e(c,"default",{value:b,enumerable:!0}):c,b));export{m as a,n as b,o as c};
2
+ //# sourceMappingURL=chunk-DXVBX5XQ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ import{Networks as _}from"@rango-dev/wallets-shared";var T=_.ETHEREUM,A=1e4;var N="wc@2:client//namespaces";var e=["chainChanged","accountsChanged"],o=["personal_sign","eth_sendTransaction","eth_signTransaction","wallet_switchEthereumChain","wallet_addEthereumChain","eth_chainId"];var t="4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ",s={name:"Rango Exchange",description:"The Ultimate Cross-Chain Solution",url:"https://app.rango.exchange/",icons:["https://app.rango.exchange/logo-rounded.png"]},a="wss://relay.walletconnect.com";export{T as a,A as b,N as c,e as d,o as e,t as f,s as g,a as h};
2
+ //# sourceMappingURL=chunk-RPL2NMJC.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/constants.ts"],
4
+ "sourcesContent": ["import { Networks } from '@rango-dev/wallets-shared';\n\nexport const DEFAULT_NETWORK = Networks.ETHEREUM;\nexport const PING_TIMEOUT = 10_000;\n\nexport enum NAMESPACES {\n ETHEREUM = 'eip155',\n SOLANA = 'solana',\n COSMOS = 'cosmos',\n POLKADOT = 'polkadot',\n CARDANO = 'cip34',\n ERLOND = 'elrond',\n MULTIVERSX = 'multiversx',\n}\n\nexport const CHAIN_ID_STORAGE = 'wc@2:client//namespaces';\n\n// Refrence: https://docs.walletconnect.com/2.0/advanced/rpc-reference/solana-rpc\nexport enum SolanaRPCMethods {\n GET_ACCOUNTS = 'solana_getAccounts',\n REQUEST_ACCOUNTS = 'solana_requestAccounts',\n SIGN_TRANSACTION = 'solana_signTransaction',\n SIGN_MESSAGE = 'solana_signMessage',\n}\n\n// Refrence: https://docs.walletconnect.com/2.0/advanced/rpc-reference/cosmos-rpc\nexport enum CosmosRPCMethods {\n GET_ACCOUNTS = 'cosmos_getAccounts',\n SIGN_DIRECT = 'cosmos_signDirect',\n SIGN_AMINO = 'cosmos_signAmino',\n}\n\n// Refrence: https://docs.walletconnect.com/2.0/advanced/rpc-reference/ethereum-rpc\nexport enum EthereumRPCMethods {\n PERSONAL_SIGN = 'personal_sign',\n SIGN = 'eth_sign',\n SIGN_TYPED_DATA = 'eth_signTypedData',\n SIGN_TRANSACTION = 'eth_signTransaction',\n SEND_TRANSACTION = 'eth_sendTransaction',\n SEND_RAW_TRANSACTION = 'eth_sendRawTransaction',\n SWITCH_CHAIN = 'wallet_switchEthereumChain',\n ADD_CHAIN = 'wallet_addEthereumChain',\n GET_CHAIN = 'eth_chainId',\n}\n\nexport enum StarknetRPCMethods {\n REQUEST_ADD_INVOKE_TRANSACTION = 'starknet_requestAddInvokeTransaction',\n SIGN_TYPED_DATA = 'starknet_signTypedData',\n}\n\nexport enum EthereumEvents {\n CHAIN_CHANGED = 'chainChanged',\n ACCOUNTS_CHANGED = 'accountsChanged',\n}\n\nexport const DEFAULT_ETHEREUM_EVENTS: EthereumEvents[] = [\n EthereumEvents.CHAIN_CHANGED,\n EthereumEvents.ACCOUNTS_CHANGED,\n];\n\nexport const DEFAULT_ETHEREUM_METHODS = [\n EthereumRPCMethods.PERSONAL_SIGN,\n EthereumRPCMethods.SEND_TRANSACTION,\n EthereumRPCMethods.SIGN_TRANSACTION,\n EthereumRPCMethods.SWITCH_CHAIN,\n EthereumRPCMethods.ADD_CHAIN,\n EthereumRPCMethods.GET_CHAIN,\n];\n\nexport const DEFAULT_SOLANA_METHODS = [\n SolanaRPCMethods.SIGN_TRANSACTION,\n SolanaRPCMethods.SIGN_MESSAGE,\n];\n\nexport const DEFAULT_COSMOS_METHODS = [\n CosmosRPCMethods.GET_ACCOUNTS,\n CosmosRPCMethods.SIGN_AMINO,\n CosmosRPCMethods.SIGN_DIRECT,\n];\n\n// refrence: https://github.com/ChainAgnostic/namespaces/blob/main/solana/caip2.md\nexport const DEFAULT_SOLANA_CHAIN_ID = '4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ';\n\nexport const DEFAULT_APP_METADATA = {\n name: 'Rango Exchange',\n description: 'The Ultimate Cross-Chain Solution',\n url: 'https://app.rango.exchange/',\n icons: ['https://app.rango.exchange/logo-rounded.png'],\n};\n\nexport const RELAY_URL = 'wss://relay.walletconnect.com';\n"],
5
+ "mappings": "AAAA,OAAS,YAAAA,MAAgB,4BAElB,IAAMC,EAAkBD,EAAS,SAC3BE,EAAe,IAYrB,IAAMC,EAAmB,0BAwCzB,IAAMC,EAA4C,CACvD,eACA,iBACF,EAEaC,EAA2B,CACtC,gBACA,sBACA,sBACA,6BACA,0BACA,aACF,EAcO,IAAMC,EAA0B,mCAE1BC,EAAuB,CAClC,KAAM,iBACN,YAAa,oCACb,IAAK,8BACL,MAAO,CAAC,6CAA6C,CACvD,EAEaC,EAAY",
6
+ "names": ["Networks", "DEFAULT_NETWORK", "PING_TIMEOUT", "CHAIN_ID_STORAGE", "DEFAULT_ETHEREUM_EVENTS", "DEFAULT_ETHEREUM_METHODS", "DEFAULT_SOLANA_CHAIN_ID", "DEFAULT_APP_METADATA", "RELAY_URL"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import"./chunk-RPL2NMJC.js";import{a as k}from"./chunk-DXVBX5XQ.js";import{BroadcastMode as U,makeSignDoc as w}from"@cosmjs/launchpad";import{cosmos as v}from"@keplr-wallet/cosmos";import{getsignedTx as B}from"@rango-dev/signer-cosmos";import{uint8ArrayToHex as I}from"@rango-dev/wallets-shared";import{AccountId as R,ChainId as G}from"caip";import{formatDirectSignDoc as H,stringifySignDocValues as V}from"cosmos-wallet";import{SignerError as c,SignerErrorCode as u}from"rango-types";import{TendermintTxTracer as S}from"@keplr-wallet/cosmos";import{simpleFetch as E}from"@keplr-wallet/simple-fetch";import{cosmosBlockchains as O}from"rango-types";async function y(x,e,n,i){console.log({chainId:x,tx:e,mode:n});let o=O(i).find(a=>a.chainId===x)?.info,s=Buffer.isBuffer(e)||e instanceof Uint8Array;if(console.log({chainInfo:o,isProtoTx:s}),!o)throw new Error("Chain info is undefined from server");let l=s?{tx_bytes:Buffer.from(e).toString("base64"),mode:(()=>{switch(n){case"async":return"BROADCAST_MODE_ASYNC";case"block":return"BROADCAST_MODE_BLOCK";case"sync":return"BROADCAST_MODE_SYNC";default:return"BROADCAST_MODE_UNSPECIFIED"}})()}:{tx:e,mode:n};try{let a=await E(o.rest,s?"/cosmos/tx/v1beta1/txs":"/txs",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(l)}),p=s?a.data.tx_response:a.data;if(p.code!=null&&p.code!==0)throw new Error(p.raw_log);let h=Buffer.from(p.txhash,"hex"),d=new S(o.rpc,"/websocket");return d.traceTx(h).then(()=>{d.close()}),h}catch(a){throw console.log(a),a}}k(y,"sendTx");var D=[{name:"BSC",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"BSC",symbol:"BNB",address:null}],logo:"https://api.rango.exchange/blockchains/binance.svg",displayName:"BSC",shortName:"BSC",sort:1,color:"#F3BA2F",enabled:!0,type:"EVM",chainId:"0x38",info:{infoType:"EvmMetaInfo",chainName:"Binance Smart Chain Mainnet",nativeCurrency:{name:"BNB",symbol:"BNB",decimals:18},rpcUrls:["https://bsc-dataseed1.ninicoin.io"],blockExplorerUrls:["https://bscscan.com"],addressUrl:"https://bscscan.com/address/{wallet}",transactionUrl:"https://bscscan.com/tx/{txHash}"}},{name:"POLYGON",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"POLYGON",symbol:"MATIC",address:null}],logo:"https://api.rango.exchange/blockchains/polygon.svg",displayName:"Polygon",shortName:"Polygon",sort:2,color:"#8247E5",enabled:!0,type:"EVM",chainId:"0x89",info:{infoType:"EvmMetaInfo",chainName:"Polygon Mainnet",nativeCurrency:{name:"MATIC",symbol:"MATIC",decimals:18},rpcUrls:["https://polygon-rpc.com"],blockExplorerUrls:["https://polygonscan.com"],addressUrl:"https://polygonscan.com/address/{wallet}",transactionUrl:"https://polygonscan.com/tx/{txHash}"}},{name:"ETH",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"ETH",symbol:"ETH",address:null}],logo:"https://api.rango.exchange/blockchains/ethereum.svg",displayName:"Ethereum",shortName:"ETH",sort:3,color:"#ecf0f1",enabled:!0,type:"EVM",chainId:"0x1",info:{infoType:"EvmMetaInfo",chainName:"Ethereum Mainnet",nativeCurrency:{name:"ETH",symbol:"ETH",decimals:18},rpcUrls:["https://rpc.ankr.com/eth"],blockExplorerUrls:["https://etherscan.io"],addressUrl:"https://etherscan.io/address/{wallet}",transactionUrl:"https://etherscan.io/tx/{txHash}"}},{name:"OSMOSIS",defaultDecimals:6,addressPatterns:["^(osmo1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"OSMOSIS",symbol:"OSMO",address:null}],logo:"https://api.rango.exchange/blockchains/osmosis.svg",displayName:"Osmosis",shortName:"Osmosis",sort:4,color:"#7901B4",enabled:!0,type:"COSMOS",chainId:"osmosis-1",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://rpc-osmosis.keplr.app",rest:"https://lcd-osmosis.keplr.app",cosmostationLcdUrl:"https://lcd-osmosis.cosmostation.io",cosmostationApiUrl:"https://api-osmosis.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"osmosis",chainName:"Osmosis",stakeCurrency:{coinDenom:"OSMO",coinMinimalDenom:"uosmo",coinDecimals:6,coinGeckoId:"pool:uosmo",coinImageUrl:"/tokens/blockchain/osmosis.svg"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"osmo",bech32PrefixAccPub:"osmopub",bech32PrefixValAddr:"osmovaloper",bech32PrefixValPub:"osmovaloperpub",bech32PrefixConsAddr:"osmovalcons",bech32PrefixConsPub:"osmovalconspub"},currencies:[{coinDenom:"OSMO",coinMinimalDenom:"uosmo",coinDecimals:6,coinGeckoId:"pool:uosmo",coinImageUrl:"/tokens/blockchain/osmosis.svg"},{coinDenom:"ION",coinMinimalDenom:"uion",coinDecimals:6,coinGeckoId:"pool:uion",coinImageUrl:"/tokens/blockchain/ion.png"}],feeCurrencies:[{coinDenom:"OSMO",coinMinimalDenom:"uosmo",coinDecimals:6,coinGeckoId:"pool:uosmo",coinImageUrl:"/tokens/blockchain/osmosis.svg"}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://www.mintscan.io/osmosis/txs/{txHash}",gasPriceStep:{low:0,average:.025,high:.04}}},{name:"JUNO",defaultDecimals:6,addressPatterns:["^(juno1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"JUNO",symbol:"JUNO",address:null}],logo:"https://api.rango.exchange/blockchains/juno.svg",displayName:"Juno",shortName:"Juno",sort:5,color:"#f0827d",enabled:!0,type:"COSMOS",chainId:"juno-1",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://rpc-juno.itastakers.com:443/",rest:"https://lcd-juno.keplr.app",cosmostationLcdUrl:"https://lcd-juno.cosmostation.io",cosmostationApiUrl:"https://api-juno.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"juno",chainName:"Juno",stakeCurrency:{coinDenom:"JUNO",coinMinimalDenom:"ujuno",coinDecimals:6,coinGeckoId:"juno-network",coinImageUrl:"/tokens/blockchain/JUNO.png"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"juno",bech32PrefixAccPub:"junopub",bech32PrefixValAddr:"junovaloper",bech32PrefixValPub:"junovaloperpub",bech32PrefixConsAddr:"junovalcons",bech32PrefixConsPub:"junovalconspub"},currencies:[{coinDenom:"JUNO",coinMinimalDenom:"ujuno",coinDecimals:6,coinGeckoId:"juno-network",coinImageUrl:"/tokens/blockchain/JUNO.png"}],feeCurrencies:[{coinDenom:"JUNO",coinMinimalDenom:"ujuno",coinDecimals:6,coinGeckoId:"juno-network",coinImageUrl:"/tokens/blockchain/JUNO.png"}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://www.mintscan.io/juno/txs/{txHash}",gasPriceStep:{low:.001,average:.0025,high:.004}}},{name:"AVAX_CCHAIN",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"AVAX_CCHAIN",symbol:"AVAX",address:null}],logo:"https://api.rango.exchange/blockchains/avax_cchain.svg",displayName:"Avalanche",shortName:"Avax",sort:6,color:"#e84142",enabled:!0,type:"EVM",chainId:"0xa86a",info:{infoType:"EvmMetaInfo",chainName:"Avalanche C-Chain",nativeCurrency:{name:"AVAX",symbol:"AVAX",decimals:18},rpcUrls:["https://api.avax.network/ext/bc/C/rpc"],blockExplorerUrls:["https://snowtrace.io"],addressUrl:"https://snowtrace.io/address/{wallet}",transactionUrl:"https://snowtrace.io/tx/{txHash}"}},{name:"ARBITRUM",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"ARBITRUM",symbol:"ETH",address:null}],logo:"https://api.rango.exchange/blockchains/arbitrum.svg",displayName:"Arbitrum",shortName:"Arbitrum",sort:7,color:"#28a0f0",enabled:!0,type:"EVM",chainId:"0xa4b1",info:{infoType:"EvmMetaInfo",chainName:"Arbitrum One",nativeCurrency:{name:"ETH",symbol:"ETH",decimals:18},rpcUrls:["https://arb1.arbitrum.io/rpc"],blockExplorerUrls:["https://arbiscan.io"],addressUrl:"https://arbiscan.io/address/{wallet}",transactionUrl:"https://arbiscan.io/tx/{txHash}"}},{name:"COSMOS",defaultDecimals:6,addressPatterns:["^(cosmos1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"COSMOS",symbol:"ATOM",address:null}],logo:"https://api.rango.exchange/blockchains/cosmos.svg",displayName:"Cosmos",shortName:"Cosmos",sort:8,color:"#2E3148",enabled:!0,type:"COSMOS",chainId:"cosmoshub-4",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://cosmos-rpc.polkachu.com",rest:"https://lcd-cosmoshub.keplr.app",cosmostationLcdUrl:"https://lcd-cosmos.cosmostation.io",cosmostationApiUrl:"https://api-cosmos.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"cosmos",chainName:"Cosmos",stakeCurrency:{coinDenom:"ATOM",coinMinimalDenom:"uatom",coinDecimals:6,coinGeckoId:"cosmos",coinImageUrl:"/tokens/blockchain/cosmos.svg"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"cosmos",bech32PrefixAccPub:"cosmospub",bech32PrefixValAddr:"cosmosvaloper",bech32PrefixValPub:"cosmosvaloperpub",bech32PrefixConsAddr:"cosmosvalcons",bech32PrefixConsPub:"cosmosvalconspub"},currencies:[{coinDenom:"ATOM",coinMinimalDenom:"uatom",coinDecimals:6,coinGeckoId:"cosmos",coinImageUrl:"/tokens/blockchain/cosmos.svg"}],feeCurrencies:[{coinDenom:"ATOM",coinMinimalDenom:"uatom",coinDecimals:6,coinGeckoId:"cosmos",coinImageUrl:"/tokens/blockchain/cosmos.svg"}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://www.mintscan.io/cosmos/txs/{txHash}",gasPriceStep:{low:.01,average:.025,high:.04}}},{name:"TERRA_CLASSIC",defaultDecimals:6,addressPatterns:["^(terra1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"TERRA_CLASSIC",symbol:"LUNC",address:null},{blockchain:"TERRA_CLASSIC",symbol:"UST",address:null},{blockchain:"TERRA_CLASSIC",symbol:"EUT",address:null},{blockchain:"TERRA_CLASSIC",symbol:"KRT",address:null}],logo:"https://api.rango.exchange/blockchains/terraclassic.svg",displayName:"Terra",shortName:"Terra",sort:8,color:"#5493F7",enabled:!1,type:"COSMOS",chainId:"columbus-5",info:{infoType:"CosmosMetaInfo",experimental:!0,rpc:"https://rpc-columbus.keplr.app",rest:"https://lcd-columbus.keplr.app",cosmostationLcdUrl:null,cosmostationApiUrl:"https://terra-classic-lcd.publicnode.com",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:null,chainName:"Terra",stakeCurrency:{coinDenom:"LUNC",coinMinimalDenom:"uluna",coinDecimals:6,coinGeckoId:"terra-luna",coinImageUrl:"/tokens/blockchain/LUNA.png"},bip44:{coinType:330},bech32Config:{bech32PrefixAccAddr:"terra",bech32PrefixAccPub:"terrapub",bech32PrefixValAddr:"terravaloper",bech32PrefixValPub:"terravaloperpub",bech32PrefixConsAddr:"terravalcons",bech32PrefixConsPub:"terravalconspub"},currencies:[{coinDenom:"LUNC",coinMinimalDenom:"uluna",coinDecimals:6,coinGeckoId:"terra-luna",coinImageUrl:"/tokens/blockchain/LUNA.png"},{coinDenom:"UST",coinMinimalDenom:"uusd",coinDecimals:6,coinGeckoId:"terrausd",coinImageUrl:"/tokens/blockchain/UST.png"}],feeCurrencies:[{coinDenom:"LUNC",coinMinimalDenom:"uluna",coinDecimals:6,coinGeckoId:"terra-luna",coinImageUrl:"/tokens/blockchain/LUNA.png"},{coinDenom:"UST",coinMinimalDenom:"uusd",coinDecimals:6,coinGeckoId:"terrausd",coinImageUrl:"/tokens/blockchain/UST.png"}],features:["stargate","ibc-transfer","no-legacy-stdTx"],explorerUrlToTx:"https://finder.terra.money/columbus-5/tx/{txHash}",gasPriceStep:{low:.0075,average:.0075,high:.0075}}},{name:"FANTOM",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"FANTOM",symbol:"FTM",address:null}],logo:"https://api.rango.exchange/blockchains/fantom.png",displayName:"Fantom",shortName:"Fantom",sort:9,color:"#337afe",enabled:!0,type:"EVM",chainId:"0xfa",info:{infoType:"EvmMetaInfo",chainName:"Fantom Opera",nativeCurrency:{name:"FTM",symbol:"FTM",decimals:18},rpcUrls:["https://rpc.ftm.tools"],blockExplorerUrls:["https://ftmscan.com"],addressUrl:"https://ftmscan.com/address/{wallet}",transactionUrl:"https://ftmscan.com/tx/{txHash}"}},{name:"OPTIMISM",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"OPTIMISM",symbol:"ETH",address:null}],logo:"https://api.rango.exchange/blockchains/optimism.svg",displayName:"Optimism",shortName:"Optimism",sort:10,color:"#FF0420",enabled:!0,type:"EVM",chainId:"0xa",info:{infoType:"EvmMetaInfo",chainName:"Optimism",nativeCurrency:{name:"ETH",symbol:"ETH",decimals:18},rpcUrls:["https://mainnet.optimism.io"],blockExplorerUrls:["https://optimistic.etherscan.io"],addressUrl:"https://optimistic.etherscan.io/address/{wallet}",transactionUrl:"https://optimistic.etherscan.io/tx/{txHash}"}},{name:"OKC",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"OKC",symbol:"OKT",address:null}],logo:"https://api.rango.exchange/blockchains/okx.png",displayName:"OKX Chain (OKC)",shortName:"Okx",sort:11,color:"#29a0f0",enabled:!0,type:"EVM",chainId:"0x42",info:{infoType:"EvmMetaInfo",chainName:"OKX Chain",nativeCurrency:{name:"OKT",symbol:"OKT",decimals:18},rpcUrls:["https://exchainrpc.okex.org"],blockExplorerUrls:["https://www.oklink.com/en/okc"],addressUrl:"https://www.oklink.com/en/okc/address/{wallet}",transactionUrl:"https://www.oklink.com/en/okc/tx/{txHash}"}},{name:"STARKNET",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{32,64}$"],feeAssets:[{blockchain:"STARKNET",symbol:"ETH",address:"0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7"}],logo:"https://api.rango.exchange/blockchains/starknet.svg",displayName:"StarkNet",shortName:"StarkNet",sort:11,color:"#708DD2",enabled:!0,type:"STARKNET",chainId:"0x534e5f4d41494e",info:{infoType:"StarkNetMetaInfo",chainName:"StarkNet Mainnet",nativeCurrency:{name:"ETH",symbol:"ETH",decimals:18},blockExplorerUrls:["https://starkscan.co"],addressUrl:"https://starkscan.co/contract/{wallet}",transactionUrl:"https://starkscan.co/tx/{txHash}"}},{name:"SOLANA",defaultDecimals:9,addressPatterns:["^[1-9A-HJ-NP-Za-km-z]{32,44}$"],feeAssets:[{blockchain:"SOLANA",symbol:"SOL",address:null}],logo:"https://api.rango.exchange/blockchains/solana.svg",displayName:"Solana",shortName:"Solana",sort:11,color:"#708DD2",enabled:!0,type:"SOLANA",chainId:"mainnet-beta",info:null},{name:"CRONOS",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"CRONOS",symbol:"CRO",address:null}],logo:"https://api.rango.exchange/blockchains/cronos.svg",displayName:"Cronos",shortName:"Cronos",sort:12,color:"#1a90ff",enabled:!0,type:"EVM",chainId:"0x19",info:{infoType:"EvmMetaInfo",chainName:"Cronos Mainnet Beta",nativeCurrency:{name:"CRO",symbol:"CRO",decimals:18},rpcUrls:["https://evm.cronos.org"],blockExplorerUrls:["https://cronoscan.com"],addressUrl:"https://cronoscan.com/address/{wallet}",transactionUrl:"https://cronoscan.com/tx/{txHash}"}},{name:"MOONRIVER",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"MOONRIVER",symbol:"MOVR",address:null}],logo:"https://api.rango.exchange/blockchains/moonriver.svg",displayName:"MoonRiver",shortName:"MoonRiver",sort:13,color:"#F3B404",enabled:!0,type:"EVM",chainId:"0x505",info:{infoType:"EvmMetaInfo",chainName:"MoonRiver",nativeCurrency:{name:"MOVR",symbol:"MOVR",decimals:18},rpcUrls:["https://rpc.moonriver.moonbeam.network"],blockExplorerUrls:["https://moonriver.moonscan.io"],addressUrl:"https://moonriver.moonscan.io/address/{wallet}",transactionUrl:"https://moonriver.moonscan.io/tx/{txHash}"}},{name:"ZKSYNC",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"ZKSYNC",symbol:"ETH",address:null}],logo:"https://api.rango.exchange/blockchains/zksync.png",displayName:"zkSync era",shortName:"zkSync",sort:13,color:"#2D2925",enabled:!0,type:"EVM",chainId:"0x144",info:{infoType:"EvmMetaInfo",chainName:"zkSync",nativeCurrency:{name:"ETH",symbol:"ETH",decimals:18},rpcUrls:["https://mainnet.era.zksync.io"],blockExplorerUrls:["https://explorer.zksync.io"],addressUrl:"https://explorer.zksync.io/address/{wallet}",transactionUrl:"https://explorer.zksync.io/tx/{txHash}"}},{name:"MOONBEAM",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"MOONBEAM",symbol:"GLMR",address:null}],logo:"https://api.rango.exchange/blockchains/moonbeam.png",displayName:"MoonBeam",shortName:"MoonBeam",sort:14,color:"#B3206B",enabled:!0,type:"EVM",chainId:"0x504",info:{infoType:"EvmMetaInfo",chainName:"MoonBeam",nativeCurrency:{name:"GLMR",symbol:"GLMR",decimals:18},rpcUrls:["https://rpc.api.moonbeam.network"],blockExplorerUrls:["https://moonbeam.moonscan.io"],addressUrl:"https://moonbeam.moonscan.io/address/{wallet}",transactionUrl:"https://moonbeam.moonscan.io/tx/{txHash}"}},{name:"POLKADOT",defaultDecimals:10,addressPatterns:["^(1)[0-9a-z-A-Z]{44,50}$"],feeAssets:[],logo:"https://api.rango.exchange/blockchains/polkadot.svg",displayName:"Polkadot",shortName:"Polkadot",sort:14,color:"#E6007A",enabled:!1,type:"TRANSFER",chainId:null,info:null},{name:"AURORA",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"AURORA",symbol:"ETH",address:null}],logo:"https://api.rango.exchange/blockchains/aurora.svg",displayName:"Aurora",shortName:"Aurora",sort:15,color:"#78d64b",enabled:!0,type:"EVM",chainId:"0x4e454152",info:{infoType:"EvmMetaInfo",chainName:"Aurora Mainnet",nativeCurrency:{name:"ETH",symbol:"ETH",decimals:18},rpcUrls:["https://mainnet.aurora.dev"],blockExplorerUrls:["https://explorer.mainnet.aurora.dev"],addressUrl:"https://explorer.mainnet.aurora.dev/address/{wallet}",transactionUrl:"https://explorer.mainnet.aurora.dev/tx/{txHash}"}},{name:"DOGE",defaultDecimals:8,addressPatterns:["^(D|A|9)[a-km-zA-HJ-NP-Z1-9]{33,34}$"],feeAssets:[{blockchain:"DOGE",symbol:"DOGE",address:null}],logo:"https://api.rango.exchange/blockchains/doge.svg",displayName:"Doge",shortName:"Doge",sort:15,color:"#BA9F33",enabled:!1,type:"TRANSFER",chainId:null,info:null},{name:"HARMONY",defaultDecimals:18,addressPatterns:["^(one1)[0-9a-z]{38}$","^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"HARMONY",symbol:"ONE",address:null}],logo:"https://api.rango.exchange/blockchains/harmony.svg",displayName:"Harmony",shortName:"Harmony",sort:15,color:"#50AEE9",enabled:!0,type:"EVM",chainId:"0x63564c40",info:{infoType:"EvmMetaInfo",chainName:"Harmony Mainnet",nativeCurrency:{name:"ONE",symbol:"ONE",decimals:18},rpcUrls:["https://rpc.ankr.com/harmony"],blockExplorerUrls:["https://explorer.harmony.one"],addressUrl:"https://explorer.harmony.one/address/{wallet}",transactionUrl:"https://explorer.harmony.one/tx/{txHash}"}},{name:"EVMOS",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"EVMOS",symbol:"EVMOS",address:null}],logo:"https://api.rango.exchange/blockchains/evmos.png",displayName:"Evmos",shortName:"Evmos",sort:15,color:"#2D2925",enabled:!0,type:"EVM",chainId:"0x2329",info:{infoType:"EvmMetaInfo",chainName:"Evmos",nativeCurrency:{name:"EVMOS",symbol:"EVMOS",decimals:18},rpcUrls:["https://eth.bd.evmos.org:8545"],blockExplorerUrls:["https://evm.evmos.org"],addressUrl:"https://evm.evmos.org/address/{wallet}",transactionUrl:"https://evm.evmos.org/tx/{txHash}"}},{name:"POLYGONZK",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"POLYGONZK",symbol:"ETH",address:null}],logo:"https://api.rango.exchange/blockchains/zkevmpolygon.png",displayName:"polygon zkEVM",shortName:"polygon zkEVM",sort:15,color:"#8247e5",enabled:!0,type:"EVM",chainId:"0x44d",info:{infoType:"EvmMetaInfo",chainName:"Polygon zkEVM Mainnet",nativeCurrency:{name:"ETH",symbol:"ETH",decimals:18},rpcUrls:["https://zkevm-rpc.com"],blockExplorerUrls:["https://zkevm.polygonscan.com"],addressUrl:"https://zkevm.polygonscan.com/address/{wallet}",transactionUrl:"https://zkevm.polygonscan.com/tx/{txHash}"}},{name:"HECO",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"HECO",symbol:"HT",address:null}],logo:"https://api.rango.exchange/blockchains/heco.png",displayName:"Heco",shortName:"Heco",sort:15,color:"#4CA852",enabled:!0,type:"EVM",chainId:"0x80",info:{infoType:"EvmMetaInfo",chainName:"Huobi ECO Chain Mainnet",nativeCurrency:{name:"HT",symbol:"HT",decimals:18},rpcUrls:["https://http-mainnet.hecochain.com"],blockExplorerUrls:["https://hecoinfo.com"],addressUrl:"https://hecoinfo.com/address/{wallet}",transactionUrl:"https://hecoinfo.com/tx/{txHash}"}},{name:"TRON",defaultDecimals:18,addressPatterns:["^T[1-9A-HJ-NP-Za-km-z]{33}$"],feeAssets:[{blockchain:"TRON",symbol:"TRX",address:null}],logo:"https://api.rango.exchange/blockchains/tron.svg",displayName:"Tron",shortName:"Tron",sort:16,color:"#FF060A",enabled:!0,type:"TRON",chainId:"0x2b6653dc",info:{infoType:"EvmMetaInfo",chainName:"TRON Mainnet",nativeCurrency:{name:"TRX",symbol:"TRX",decimals:6},rpcUrls:["https://api.trongrid.io/jsonrpc"],blockExplorerUrls:["https://tronscan.org/#"],addressUrl:"https://tronscan.org/#/address/{wallet}",transactionUrl:"https://tronscan.org/#/tx/{txHash}"}},{name:"SIF",defaultDecimals:18,addressPatterns:["^(sif1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"SIF",symbol:"ROWAN",address:null}],logo:"https://api.rango.exchange/blockchains/sif.png",displayName:"Sifchain",shortName:"Sifchain",sort:16,color:"#CAAA3A",enabled:!0,type:"COSMOS",chainId:"sifchain-1",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://rpc.sifchain.finance",rest:"https://api-sifchain-ia.cosmosia.notional.ventures/",cosmostationLcdUrl:"https://lcd-sifchain.cosmostation.io",cosmostationApiUrl:"https://api.mintscan.io/v1/sifchain",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"sifchain",chainName:"Sifchain",stakeCurrency:{coinDenom:"ROWAN",coinMinimalDenom:"rowan",coinDecimals:18,coinGeckoId:"",coinImageUrl:""},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"sif",bech32PrefixAccPub:"sifpub",bech32PrefixValAddr:"sifvaloper",bech32PrefixValPub:"sifvaloperpub",bech32PrefixConsAddr:"sifvalcons",bech32PrefixConsPub:"sifvalconspub"},currencies:[{coinDenom:"ROWAN",coinMinimalDenom:"rowan",coinDecimals:18,coinGeckoId:"",coinImageUrl:""}],feeCurrencies:[{coinDenom:"ROWAN",coinMinimalDenom:"rowan",coinDecimals:18,coinGeckoId:"",coinImageUrl:""}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://www.mintscan.io/sifchain/txs/{txHash}",gasPriceStep:{low:1e12,average:15e11,high:2e12}}},{name:"MAYA",defaultDecimals:8,addressPatterns:["^(maya1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"MAYA",symbol:"CACAO",address:null}],logo:"https://api.rango.exchange/blockchains/maya.jpg",displayName:"MayaChain",shortName:"MayaChain",sort:17,color:"#1ae6e6",enabled:!0,type:"TRANSFER",chainId:null,info:null},{name:"THOR",defaultDecimals:8,addressPatterns:["^(thor1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"THOR",symbol:"RUNE",address:null}],logo:"https://api.rango.exchange/blockchains/thorchain.svg",displayName:"Thorchain",shortName:"Thorchain",sort:17,color:"#1AE6CB",enabled:!0,type:"TRANSFER",chainId:null,info:null},{name:"BRISE",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"BRISE",symbol:"BRISE",address:null}],logo:"https://api.rango.exchange/blockchains/bitgert.png",displayName:"Brise",shortName:"Brise",sort:18,color:"#0693E3",enabled:!0,type:"EVM",chainId:"0x7f08",info:{infoType:"EvmMetaInfo",chainName:"Brise",nativeCurrency:{name:"BRISE",symbol:"BRISE",decimals:18},rpcUrls:["https://rpc.icecreamswap.com"],blockExplorerUrls:["https://brisescan.com/"],addressUrl:"https://brisescan.com//address/{wallet}",transactionUrl:"https://brisescan.com//tx/{txHash}"}},{name:"BNB",defaultDecimals:8,addressPatterns:["^(bnb1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"BNB",symbol:"BNB",address:null}],logo:"https://api.rango.exchange/blockchains/bnb.svg",displayName:"Binance Chain",shortName:"BNB",sort:18,color:"#F3BA2F",enabled:!0,type:"COSMOS",chainId:null,info:null},{name:"STARGAZE",defaultDecimals:6,addressPatterns:["^(stars1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"STARGAZE",symbol:"STARS",address:null}],logo:"https://api.rango.exchange/blockchains/stargaze.png",displayName:"Stargaze",shortName:"Stargaze",sort:19,color:"#231B60",enabled:!0,type:"COSMOS",chainId:"stargaze-1",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://rpc.stargaze-apis.com",rest:"https://rest.stargaze-apis.com",cosmostationLcdUrl:"https://lcd-stargaze.cosmostation.io",cosmostationApiUrl:"https://api-stargaze.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"stargaze",chainName:"Stargaze",stakeCurrency:{coinDenom:"STARS",coinMinimalDenom:"ustars",coinDecimals:6,coinGeckoId:"pool:ustars",coinImageUrl:"/tokens/blockchain/STARS.png"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"stars",bech32PrefixAccPub:"starspub",bech32PrefixValAddr:"starsvaloper",bech32PrefixValPub:"starsvaloperpub",bech32PrefixConsAddr:"starsvalcons",bech32PrefixConsPub:"starsvalconspub"},currencies:[{coinDenom:"STARS",coinMinimalDenom:"ustars",coinDecimals:6,coinGeckoId:"pool:ustars",coinImageUrl:"/tokens/blockchain/STARS.png"}],feeCurrencies:[{coinDenom:"STARS",coinMinimalDenom:"ustars",coinDecimals:6,coinGeckoId:"pool:ustars",coinImageUrl:"/tokens/blockchain/STARS.png"}],features:["stargate","ibc-transfer","no-legacy-stdTx"],explorerUrlToTx:"https://www.mintscan.io/stargaze/txs/{txHash}",gasPriceStep:{low:1,average:1,high:1}}},{name:"BTC",defaultDecimals:8,addressPatterns:["^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$|^(bc1)[0-9A-Za-z]{39,59}$"],feeAssets:[{blockchain:"BTC",symbol:"BTC",address:null}],logo:"https://api.rango.exchange/blockchains/btc.svg",displayName:"Bitcoin",shortName:"BTC",sort:20,color:"#F7931A",enabled:!0,type:"TRANSFER",chainId:null,info:null},{name:"CRYPTO_ORG",defaultDecimals:8,addressPatterns:["^(cro1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"CRYPTO_ORG",symbol:"CRO",address:null}],logo:"https://api.rango.exchange/blockchains/crypto_org.png",displayName:"Crypto.org",shortName:"Crypto.org",sort:21,color:"#103F68",enabled:!0,type:"COSMOS",chainId:"crypto-org-chain-mainnet-1",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://rpc-crypto-org.keplr.app",rest:"https://lcd-crypto-org.keplr.app",cosmostationLcdUrl:"https://lcd-cryptocom.cosmostation.io",cosmostationApiUrl:"https://api-cryptocom.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"crypto-org",chainName:"Crypto.org",stakeCurrency:{coinDenom:"CRO",coinMinimalDenom:"basecro",coinDecimals:8,coinGeckoId:"crypto-com-chain",coinImageUrl:"/tokens/blockchain/cro.png"},bip44:{coinType:394},bech32Config:{bech32PrefixAccAddr:"cro",bech32PrefixAccPub:"cropub",bech32PrefixValAddr:"crovaloper",bech32PrefixValPub:"crovaloperpub",bech32PrefixConsAddr:"crovalcons",bech32PrefixConsPub:"crovalconspub"},currencies:[{coinDenom:"CRO",coinMinimalDenom:"basecro",coinDecimals:8,coinGeckoId:"crypto-com-chain",coinImageUrl:"/tokens/blockchain/cro.png"}],feeCurrencies:[{coinDenom:"CRO",coinMinimalDenom:"basecro",coinDecimals:8,coinGeckoId:"crypto-com-chain",coinImageUrl:"/tokens/blockchain/cro.png"}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://www.mintscan.io/crypto-org/txs/{txHash}",gasPriceStep:{low:.025,average:.03,high:.04}}},{name:"CHIHUAHUA",defaultDecimals:6,addressPatterns:["^(chihuahua1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"CHIHUAHUA",symbol:"HUAHUA",address:null}],logo:"https://api.rango.exchange/blockchains/chihuahua.png",displayName:"Chihuahua",shortName:"Chihuahua",sort:22,color:"#EFC92B",enabled:!0,type:"COSMOS",chainId:"chihuahua-1",info:{infoType:"CosmosMetaInfo",experimental:!0,rpc:"https://rpc.chihuahua.wtf/",rest:"https://api.chihuahua.wtf/",cosmostationLcdUrl:"https://lcd-chihuahua.cosmostation.io",cosmostationApiUrl:"https://api-chihuahua.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"chihuahua",chainName:"Chihuahua",stakeCurrency:{coinDenom:"HUAHUA",coinMinimalDenom:"uhuahua",coinDecimals:6,coinGeckoId:"pool:uhuahua",coinImageUrl:"/tokens/blockchain/HUAHUA.svg"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"chihuahua",bech32PrefixAccPub:"chihuahuapub",bech32PrefixValAddr:"chihuahuavaloper",bech32PrefixValPub:"chihuahuavaloperpub",bech32PrefixConsAddr:"chihuahuavalcons",bech32PrefixConsPub:"chihuahuavalconspub"},currencies:[{coinDenom:"HUAHUA",coinMinimalDenom:"uhuahua",coinDecimals:6,coinGeckoId:"pool:uhuahua",coinImageUrl:"/tokens/blockchain/HUAHUA.svg"}],feeCurrencies:[{coinDenom:"HUAHUA",coinMinimalDenom:"uhuahua",coinDecimals:6,coinGeckoId:"pool:uhuahua",coinImageUrl:"/tokens/blockchain/HUAHUA.svg"}],features:["stargate","ibc-transfer","no-legacy-stdTx"],explorerUrlToTx:"https://ping.pub/chihuahua/tx/{txHash}",gasPriceStep:{low:.025,average:.03,high:.035}}},{name:"BANDCHAIN",defaultDecimals:6,addressPatterns:["^(band1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"BANDCHAIN",symbol:"BAND",address:null}],logo:"https://api.rango.exchange/blockchains/bandchain.svg",displayName:"BandChain",shortName:"BandChain",sort:23,color:"#4520E6",enabled:!0,type:"COSMOS",chainId:"laozi-mainnet",info:{infoType:"CosmosMetaInfo",experimental:!0,rpc:"https://rpc.laozi3.bandchain.org/",rest:"https://lcd-band.cosmostation.io",cosmostationLcdUrl:"https://lcd-band.cosmostation.io",cosmostationApiUrl:"https://api-band.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"band",chainName:"BandChain",stakeCurrency:{coinDenom:"BAND",coinMinimalDenom:"uband",coinDecimals:6,coinGeckoId:"band-protocol",coinImageUrl:"/tokens/blockchain/BAND.svg"},bip44:{coinType:494},bech32Config:{bech32PrefixAccAddr:"band",bech32PrefixAccPub:"bandpub",bech32PrefixValAddr:"bandvaloper",bech32PrefixValPub:"bandvaloperpub",bech32PrefixConsAddr:"bandvalcons",bech32PrefixConsPub:"bandvalconspub"},currencies:[{coinDenom:"BAND",coinMinimalDenom:"uband",coinDecimals:6,coinGeckoId:"band-protocol",coinImageUrl:"/tokens/blockchain/BAND.svg"}],feeCurrencies:[{coinDenom:"BAND",coinMinimalDenom:"uband",coinDecimals:6,coinGeckoId:"band-protocol",coinImageUrl:"/tokens/blockchain/BAND.svg"}],features:["stargate","ibc-transfer","no-legacy-stdTx"],explorerUrlToTx:"https://cosmoscan.io/tx/{txHash}",gasPriceStep:null}},{name:"COMDEX",defaultDecimals:6,addressPatterns:["^(comdex1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"COMDEX",symbol:"CMDX",address:null}],logo:"https://api.rango.exchange/blockchains/comdex.svg",displayName:"Comdex",shortName:"Comdex",sort:23,color:"#FE4350",enabled:!0,type:"COSMOS",chainId:"comdex-1",info:{infoType:"CosmosMetaInfo",experimental:!0,rpc:"https://rpc.comdex.one",rest:"https://rest.comdex.one",cosmostationLcdUrl:"https://lcd-comdex.cosmostation.io",cosmostationApiUrl:"https://api-comdex.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"comdex",chainName:"Comdex",stakeCurrency:{coinDenom:"CMDX",coinMinimalDenom:"ucmdx",coinDecimals:6,coinGeckoId:"comdex",coinImageUrl:"/tokens/blockchain/CMDX.png"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"comdex",bech32PrefixAccPub:"comdexpub",bech32PrefixValAddr:"comdexvaloper",bech32PrefixValPub:"comdexvaloperpub",bech32PrefixConsAddr:"comdexvalcons",bech32PrefixConsPub:"comdexvalconspub"},currencies:[{coinDenom:"CMDX",coinMinimalDenom:"ucmdx",coinDecimals:6,coinGeckoId:"comdex",coinImageUrl:"/tokens/blockchain/CMDX.png"}],feeCurrencies:[{coinDenom:"CMDX",coinMinimalDenom:"ucmdx",coinDecimals:6,coinGeckoId:"comdex",coinImageUrl:"/tokens/blockchain/CMDX.png"}],features:["stargate","ibc-transfer","no-legacy-stdTx"],explorerUrlToTx:"https://www.mintscan.io/comdex/txs/{txHash}",gasPriceStep:null}},{name:"REGEN",defaultDecimals:6,addressPatterns:["^(regen1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"REGEN",symbol:"REGEN",address:null}],logo:"https://api.rango.exchange/blockchains/regen.png",displayName:"Regen Network",shortName:"Regen Network",sort:24,color:"#4FB573",enabled:!0,type:"COSMOS",chainId:"regen-1",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://rpc-regen.keplr.app",rest:"https://lcd-regen.keplr.app",cosmostationLcdUrl:"https://lcd-regen.keplr.app",cosmostationApiUrl:"https://api-regen.cosmostation.io/",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"regen",chainName:"Regen Network",stakeCurrency:{coinDenom:"REGEN",coinMinimalDenom:"uregen",coinDecimals:6,coinGeckoId:"pool:uregen",coinImageUrl:"/tokens/blockchain/regen.png"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"regen",bech32PrefixAccPub:"regenpub",bech32PrefixValAddr:"regenvaloper",bech32PrefixValPub:"regenvaloperpub",bech32PrefixConsAddr:"regenvalcons",bech32PrefixConsPub:"regenvalconspub"},currencies:[{coinDenom:"REGEN",coinMinimalDenom:"uregen",coinDecimals:6,coinGeckoId:"pool:uregen",coinImageUrl:"/tokens/blockchain/regen.png"}],feeCurrencies:[{coinDenom:"REGEN",coinMinimalDenom:"uregen",coinDecimals:6,coinGeckoId:"pool:uregen",coinImageUrl:"/tokens/blockchain/regen.png"}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://regen.aneka.io/txs/{txHash}",gasPriceStep:{low:.015,average:.025,high:.04}}},{name:"IRIS",defaultDecimals:6,addressPatterns:["^(iaa1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"IRIS",symbol:"IRIS",address:null}],logo:"https://api.rango.exchange/blockchains/iris.png",displayName:"IRISnet",shortName:"IRISnet",sort:25,color:"#8A4A8E",enabled:!0,type:"COSMOS",chainId:"irishub-1",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://rpc-iris.keplr.app",rest:"https://lcd-iris.keplr.app",cosmostationLcdUrl:"https://lcd-iris.cosmostation.io",cosmostationApiUrl:"https://api-iris.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"iris",chainName:"IRISnet",stakeCurrency:{coinDenom:"IRIS",coinMinimalDenom:"uiris",coinDecimals:6,coinGeckoId:"iris-network",coinImageUrl:"/tokens/blockchain/iris.svg"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"iaa",bech32PrefixAccPub:"iaapub",bech32PrefixValAddr:"iaavaloper",bech32PrefixValPub:"iaavaloperpub",bech32PrefixConsAddr:"iaavalcons",bech32PrefixConsPub:"iaavalconspub"},currencies:[{coinDenom:"IRIS",coinMinimalDenom:"uiris",coinDecimals:6,coinGeckoId:"iris-network",coinImageUrl:"/tokens/blockchain/iris.svg"}],feeCurrencies:[{coinDenom:"IRIS",coinMinimalDenom:"uiris",coinDecimals:6,coinGeckoId:"iris-network",coinImageUrl:"/tokens/blockchain/iris.svg"}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://www.mintscan.io/iris/txs/{txHash}",gasPriceStep:{low:.2,average:.3,high:.4}}},{name:"EMONEY",defaultDecimals:6,addressPatterns:["^(emoney1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"EMONEY",symbol:"NGM",address:null}],logo:"https://api.rango.exchange/blockchains/emoney.svg",displayName:"e-Money",shortName:"e-Money",sort:25,color:"#DFF5EF",enabled:!0,type:"COSMOS",chainId:"emoney-3",info:{infoType:"CosmosMetaInfo",experimental:!0,rpc:"https://rpc-emoney.keplr.app",rest:"https://lcd-emoney.keplr.app",cosmostationLcdUrl:"https://lcd-emoney.cosmostation.io",cosmostationApiUrl:"https://api-emoney.cosmostation.io",cosmostationDenomTracePath:"/ibc/applications/transfer/v1beta1/denom_traces/",mintScanName:"emoney",chainName:"e-Money",stakeCurrency:{coinDenom:"NGM",coinMinimalDenom:"ungm",coinDecimals:6,coinGeckoId:"e-money",coinImageUrl:"/tokens/blockchain/NGM.png"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"emoney",bech32PrefixAccPub:"emoneypub",bech32PrefixValAddr:"emoneyvaloper",bech32PrefixValPub:"emoneyvaloperpub",bech32PrefixConsAddr:"emoneyvalcons",bech32PrefixConsPub:"emoneyvalconspub"},currencies:[{coinDenom:"NGM",coinMinimalDenom:"ungm",coinDecimals:6,coinGeckoId:"e-money",coinImageUrl:"/tokens/blockchain/NGM.png"},{coinDenom:"EEUR",coinMinimalDenom:"eeur",coinDecimals:6,coinGeckoId:"e-money-eur",coinImageUrl:"/tokens/blockchain/EEUR.png"}],feeCurrencies:[{coinDenom:"NGM",coinMinimalDenom:"ungm",coinDecimals:6,coinGeckoId:"e-money",coinImageUrl:"/tokens/blockchain/NGM.png"}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://emoney.bigdipper.live/transactions/{txHash}",gasPriceStep:{low:1,average:1,high:1}}},{name:"GNOSIS",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"GNOSIS",symbol:"XDAI",address:null}],logo:"https://api.rango.exchange/blockchains/gnosis.svg",displayName:"Gnosis",shortName:"Gnosis",sort:26,color:"#3E6957",enabled:!0,type:"EVM",chainId:"0x64",info:{infoType:"EvmMetaInfo",chainName:"Gnosis Chain",nativeCurrency:{name:"XDAI",symbol:"XDAI",decimals:18},rpcUrls:["https://rpc.gnosischain.com"],blockExplorerUrls:["https://blockscout.com/xdai/mainnet"],addressUrl:"https://blockscout.com/xdai/mainnet/address/{wallet}",transactionUrl:"https://blockscout.com/xdai/mainnet/tx/{txHash}"}},{name:"LTC",defaultDecimals:8,addressPatterns:["^(L|M|3)[A-Za-z0-9]{33}$|^(ltc1)[0-9A-Za-z]{39}$"],feeAssets:[{blockchain:"LTC",symbol:"LTC",address:null}],logo:"https://api.rango.exchange/blockchains/ltc.svg",displayName:"LiteCoin",shortName:"LTC",sort:27,color:"#345D9D",enabled:!0,type:"TRANSFER",chainId:null,info:null},{name:"BCH",defaultDecimals:8,addressPatterns:["^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$|^[0-9A-Za-z]{42,42}$"],feeAssets:[{blockchain:"BCH",symbol:"BCH",address:null}],logo:"https://api.rango.exchange/blockchains/bch.svg",displayName:"Bitcoin Cash",shortName:"BCH",sort:28,color:"#0AC18E",enabled:!0,type:"TRANSFER",chainId:null,info:null},{name:"FUSE",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"FUSE",symbol:"FUSE",address:null}],logo:"https://api.rango.exchange/blockchains/fuse.png",displayName:"Fuse",shortName:"Fuse",sort:29,color:"#C5F9AD",enabled:!0,type:"EVM",chainId:"0x7a",info:{infoType:"EvmMetaInfo",chainName:"Fuse Mainnet",nativeCurrency:{name:"FUSE",symbol:"FUSE",decimals:18},rpcUrls:["https://rpc.fuse.io"],blockExplorerUrls:["https://explorer.fuse.io"],addressUrl:"https://explorer.fuse.io/address/{wallet}",transactionUrl:"https://explorer.fuse.io/tx/{txHash}"}},{name:"BITSONG",defaultDecimals:6,addressPatterns:["^(bitsong1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"BITSONG",symbol:"BTSG",address:null}],logo:"https://api.rango.exchange/blockchains/bitsong.svg",displayName:"BitSong",shortName:"BitSong",sort:29,color:"#FF005C",enabled:!0,type:"COSMOS",chainId:"bitsong-2b",info:{infoType:"CosmosMetaInfo",experimental:!0,rpc:"https://rpc.explorebitsong.com",rest:"https://lcd.explorebitsong.com",cosmostationLcdUrl:"https://lcd-bitsong.cosmostation.io",cosmostationApiUrl:"https://api-bitsong.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"bitsong",chainName:"BitSong",stakeCurrency:{coinDenom:"BTSG",coinMinimalDenom:"ubtsg",coinDecimals:6,coinGeckoId:"pool:ubtsg",coinImageUrl:"/tokens/blockchain/BTSG.png"},bip44:{coinType:639},bech32Config:{bech32PrefixAccAddr:"bitsong",bech32PrefixAccPub:"bitsongpub",bech32PrefixValAddr:"bitsongvaloper",bech32PrefixValPub:"bitsongvaloperpub",bech32PrefixConsAddr:"bitsongvalcons",bech32PrefixConsPub:"bitsongvalconspub"},currencies:[{coinDenom:"BTSG",coinMinimalDenom:"ubtsg",coinDecimals:6,coinGeckoId:"pool:ubtsg",coinImageUrl:"/tokens/blockchain/BTSG.png"}],feeCurrencies:[{coinDenom:"BTSG",coinMinimalDenom:"ubtsg",coinDecimals:6,coinGeckoId:"pool:ubtsg",coinImageUrl:"/tokens/blockchain/BTSG.png"}],features:["stargate","ibc-transfer","no-legacy-stdTx","ibc-go"],explorerUrlToTx:"https://explorebitsong.com/transactions/{txHash}",gasPriceStep:null}},{name:"AKASH",defaultDecimals:6,addressPatterns:["^(akash1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"AKASH",symbol:"AKT",address:null}],logo:"https://api.rango.exchange/blockchains/akash.svg",displayName:"Akash",shortName:"Akash",sort:30,color:"#ED3524",enabled:!0,type:"COSMOS",chainId:"akashnet-2",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://rpc-akash.keplr.app",rest:"https://lcd-akash.keplr.app",cosmostationLcdUrl:"https://lcd-akash.cosmostation.io",cosmostationApiUrl:"https://api-akash.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"akash",chainName:"Akash",stakeCurrency:{coinDenom:"AKT",coinMinimalDenom:"uakt",coinDecimals:6,coinGeckoId:"akash-network",coinImageUrl:"/tokens/blockchain/akt.svg"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"akash",bech32PrefixAccPub:"akashpub",bech32PrefixValAddr:"akashvaloper",bech32PrefixValPub:"akashvaloperpub",bech32PrefixConsAddr:"akashvalcons",bech32PrefixConsPub:"akashvalconspub"},currencies:[{coinDenom:"AKT",coinMinimalDenom:"uakt",coinDecimals:6,coinGeckoId:"akash-network",coinImageUrl:"/tokens/blockchain/akt.svg"}],feeCurrencies:[{coinDenom:"AKT",coinMinimalDenom:"uakt",coinDecimals:6,coinGeckoId:"akash-network",coinImageUrl:"/tokens/blockchain/akt.svg"}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://www.mintscan.io/akash/txs/{txHash}",gasPriceStep:{low:.001,average:.0025,high:.004}}},{name:"KI",defaultDecimals:6,addressPatterns:["^(ki1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"KI",symbol:"XKI",address:null}],logo:"https://api.rango.exchange/blockchains/ki.png",displayName:"Ki",shortName:"Ki",sort:30,color:"#0F2B3D",enabled:!0,type:"COSMOS",chainId:"kichain-2",info:{infoType:"CosmosMetaInfo",experimental:!0,rpc:"https://rpc-mainnet.blockchain.ki",rest:"https://api-mainnet.blockchain.ki",cosmostationLcdUrl:"https://lcd-kichain.cosmostation.io",cosmostationApiUrl:"https://api-kichain.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"ki-chain",chainName:"Ki",stakeCurrency:{coinDenom:"XKI",coinMinimalDenom:"uxki",coinDecimals:6,coinGeckoId:"pool:uxki",coinImageUrl:"/tokens/blockchain/XKI.png"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"ki",bech32PrefixAccPub:"kipub",bech32PrefixValAddr:"kivaloper",bech32PrefixValPub:"kivaloperpub",bech32PrefixConsAddr:"kivalcons",bech32PrefixConsPub:"kivalconspub"},currencies:[{coinDenom:"XKI",coinMinimalDenom:"uxki",coinDecimals:6,coinGeckoId:"pool:uxki",coinImageUrl:"/tokens/blockchain/XKI.png"}],feeCurrencies:[{coinDenom:"XKI",coinMinimalDenom:"uxki",coinDecimals:6,coinGeckoId:"pool:uxki",coinImageUrl:"/tokens/blockchain/XKI.png"}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://www.mintscan.io/ki-chain/txs/{txHash}",gasPriceStep:null}},{name:"PERSISTENCE",defaultDecimals:6,addressPatterns:["^(persistence1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"PERSISTENCE",symbol:"XPRT",address:null}],logo:"https://api.rango.exchange/blockchains/persistence.png",displayName:"Persistence",shortName:"Persistence",sort:31,color:"#383838",enabled:!0,type:"COSMOS",chainId:"core-1",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://rpc-persistence.keplr.app",rest:"https://lcd-persistence.keplr.app",cosmostationLcdUrl:"https://lcd-persistence.cosmostation.io",cosmostationApiUrl:"https://api-persistence.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"persistence",chainName:"Persistence",stakeCurrency:{coinDenom:"XPRT",coinMinimalDenom:"uxprt",coinDecimals:6,coinGeckoId:"persistence",coinImageUrl:"/tokens/blockchain/xprt.png"},bip44:{coinType:750},bech32Config:{bech32PrefixAccAddr:"persistence",bech32PrefixAccPub:"persistencepub",bech32PrefixValAddr:"persistencevaloper",bech32PrefixValPub:"persistencevaloperpub",bech32PrefixConsAddr:"persistencevalcons",bech32PrefixConsPub:"persistencevalconspub"},currencies:[{coinDenom:"XPRT",coinMinimalDenom:"uxprt",coinDecimals:6,coinGeckoId:"persistence",coinImageUrl:"/tokens/blockchain/xprt.png"}],feeCurrencies:[{coinDenom:"XPRT",coinMinimalDenom:"uxprt",coinDecimals:6,coinGeckoId:"persistence",coinImageUrl:"/tokens/blockchain/xprt.png"}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://www.mintscan.io/persistence/txs/{txHash}",gasPriceStep:{low:0,average:.025,high:.04}}},{name:"MEDIBLOC",defaultDecimals:6,addressPatterns:["^(panacea1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"MEDIBLOC",symbol:"MED",address:null}],logo:"https://api.rango.exchange/blockchains/medibloc.png",displayName:"MediBloc",shortName:"MediBloc",sort:31,color:"#4B66DC",enabled:!0,type:"COSMOS",chainId:"panacea-3",info:{infoType:"CosmosMetaInfo",experimental:!0,rpc:"https://rpc.gopanacea.org",rest:"https://api.gopanacea.org",cosmostationLcdUrl:"https://lcd-medibloc.cosmostation.io",cosmostationApiUrl:"https://api-medibloc.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"medibloc",chainName:"MediBloc",stakeCurrency:{coinDenom:"MED",coinMinimalDenom:"umed",coinDecimals:6,coinGeckoId:"medibloc",coinImageUrl:"/tokens/blockchain/MED.png"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"panacea",bech32PrefixAccPub:"panaceapub",bech32PrefixValAddr:"panaceavaloper",bech32PrefixValPub:"panaceavaloperpub",bech32PrefixConsAddr:"panaceavalcons",bech32PrefixConsPub:"panaceavalconspub"},currencies:[{coinDenom:"MED",coinMinimalDenom:"umed",coinDecimals:6,coinGeckoId:"medibloc",coinImageUrl:"/tokens/blockchain/MED.png"}],feeCurrencies:[{coinDenom:"MED",coinMinimalDenom:"umed",coinDecimals:6,coinGeckoId:"medibloc",coinImageUrl:"/tokens/blockchain/MED.png"}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://www.mintscan.io/medibloc/txs/{txHash}",gasPriceStep:{low:5,average:7,high:9}}},{name:"KUJIRA",defaultDecimals:6,addressPatterns:["^(kujira1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"KUJIRA",symbol:"KUJI",address:null}],logo:"https://api.rango.exchange/blockchains/kuji.svg",displayName:"Kujira",shortName:"Kujira",sort:31,color:"#DF3935",enabled:!0,type:"COSMOS",chainId:"kaiyo-1",info:{infoType:"CosmosMetaInfo",experimental:!0,rpc:"https://kujira-rpc.lavenderfive.com",rest:"https://kujira-api.lavenderfive.com",cosmostationLcdUrl:"https://lcd-kujira.cosmostation.io",cosmostationApiUrl:"https://api-kujira.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"kujira",chainName:"Kujira",stakeCurrency:{coinDenom:"KUJI",coinMinimalDenom:"ukuji",coinDecimals:6,coinGeckoId:"kujira",coinImageUrl:"/tokens/blockchain/kuji.svg"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"kujira",bech32PrefixAccPub:"kujirapub",bech32PrefixValAddr:"kujiravaloper",bech32PrefixValPub:"kujiravaloperpub",bech32PrefixConsAddr:"kujiravalcons",bech32PrefixConsPub:"kujiravalconspub"},currencies:[{coinDenom:"KUJI",coinMinimalDenom:"ukuji",coinDecimals:6,coinGeckoId:"kujira",coinImageUrl:"/tokens/blockchain/kuji.png"}],feeCurrencies:[{coinDenom:"KUJI",coinMinimalDenom:"ukuji",coinDecimals:6,coinGeckoId:"kujira",coinImageUrl:"/tokens/blockchain/kuji.png"}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://finder.kujira.app/kaiyo-1/tx/{txHash}",gasPriceStep:{low:.01,average:.025,high:.03}}},{name:"SENTINEL",defaultDecimals:6,addressPatterns:["^(sent1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"SENTINEL",symbol:"DVPN",address:null}],logo:"https://api.rango.exchange/blockchains/sentinel.png",displayName:"Sentinel",shortName:"Sentinel",sort:32,color:"#142E51",enabled:!0,type:"COSMOS",chainId:"sentinelhub-2",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://rpc-sentinel.keplr.app",rest:"https://lcd-sentinel.keplr.app",cosmostationLcdUrl:"https://lcd-sentinel.cosmostation.io",cosmostationApiUrl:"https://api-sentinel.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"sentinel",chainName:"Sentinel",stakeCurrency:{coinDenom:"DVPN",coinMinimalDenom:"udvpn",coinDecimals:6,coinGeckoId:"sentinel",coinImageUrl:"/tokens/blockchain/dvpn.png"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"sent",bech32PrefixAccPub:"sentpub",bech32PrefixValAddr:"sentvaloper",bech32PrefixValPub:"sentvaloperpub",bech32PrefixConsAddr:"sentvalcons",bech32PrefixConsPub:"sentvalconspub"},currencies:[{coinDenom:"DVPN",coinMinimalDenom:"udvpn",coinDecimals:6,coinGeckoId:"sentinel",coinImageUrl:"/tokens/blockchain/dvpn.png"}],feeCurrencies:[{coinDenom:"DVPN",coinMinimalDenom:"udvpn",coinDecimals:6,coinGeckoId:"sentinel",coinImageUrl:"/tokens/blockchain/dvpn.png"}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://www.mintscan.io/sentinel/txs/{txHash}",gasPriceStep:{low:.1,average:.25,high:.4}}},{name:"INJECTIVE",defaultDecimals:6,addressPatterns:["^(inj1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"INJECTIVE",symbol:"INJ",address:null}],logo:"https://api.rango.exchange/blockchains/injective.svg",displayName:"Injective",shortName:"Injective",sort:33,color:"#29B2F4",enabled:!0,type:"COSMOS",chainId:"injective-1",info:{infoType:"CosmosMetaInfo",experimental:!0,rpc:"https://tm.injective.network",rest:"https://lcd.injective.network",cosmostationLcdUrl:"https://lcd-inj.cosmostation.io",cosmostationApiUrl:"https://api-inj.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"injective",chainName:"Injective",stakeCurrency:{coinDenom:"INJ",coinMinimalDenom:"uinj",coinDecimals:18,coinGeckoId:"injective",coinImageUrl:"/tokens/INJECTIVE/inj.svg"},bip44:{coinType:529},bech32Config:{bech32PrefixAccAddr:"inj",bech32PrefixAccPub:"injpub",bech32PrefixValAddr:"injvaloper",bech32PrefixValPub:"injvaloperpub",bech32PrefixConsAddr:"injvalcons",bech32PrefixConsPub:"injvalconspub"},currencies:[{coinDenom:"INJ",coinMinimalDenom:"uinj",coinDecimals:18,coinGeckoId:"injective",coinImageUrl:"/tokens/INJECTIVE/inj.svg"}],feeCurrencies:[{coinDenom:"INJ",coinMinimalDenom:"uinj",coinDecimals:18,coinGeckoId:"injective",coinImageUrl:"/tokens/INJECTIVE/inj.svg"}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://www.mintscan.io/injective/txs/{txHash}",gasPriceStep:{low:5e8,average:5e8,high:5e8}}},{name:"SECRET",defaultDecimals:6,addressPatterns:["^(secret1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"SECRET",symbol:"SCRT",address:null}],logo:"https://api.rango.exchange/blockchains/secret.svg",displayName:"Secret",shortName:"Secret",sort:34,color:"#1B1B1B",enabled:!0,type:"COSMOS",chainId:"secret-4",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://rpc-secret.keplr.app",rest:"https://lcd-secret.keplr.app",cosmostationLcdUrl:"https://lcd-secret.cosmostation.io",cosmostationApiUrl:"https://api-secret.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"secret",chainName:"Secret",stakeCurrency:{coinDenom:"SCRT",coinMinimalDenom:"uscrt",coinDecimals:6,coinGeckoId:"secret",coinImageUrl:"https://dhj8dql1kzq2v.cloudfront.net/white/secret.png"},bip44:{coinType:529},bech32Config:{bech32PrefixAccAddr:"secret",bech32PrefixAccPub:"secretpub",bech32PrefixValAddr:"secretvaloper",bech32PrefixValPub:"secretvaloperpub",bech32PrefixConsAddr:"secretvalcons",bech32PrefixConsPub:"secretvalconspub"},currencies:[{coinDenom:"SCRT",coinMinimalDenom:"uscrt",coinDecimals:6,coinGeckoId:"secret",coinImageUrl:"https://dhj8dql1kzq2v.cloudfront.net/white/secret.png"}],feeCurrencies:[{coinDenom:"SCRT",coinMinimalDenom:"uscrt",coinDecimals:6,coinGeckoId:"secret",coinImageUrl:"https://dhj8dql1kzq2v.cloudfront.net/white/secret.png"}],features:["secretwasm"],explorerUrlToTx:"https://www.mintscan.io/injective/txs/{txHash}",gasPriceStep:{low:.1,average:.25,high:.3}}},{name:"KONSTELLATION",defaultDecimals:6,addressPatterns:["^(darc1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"KONSTELLATION",symbol:"DARC",address:null}],logo:"https://api.rango.exchange/blockchains/konstellation.svg",displayName:"Konstellation",shortName:"Konstellation",sort:35,color:"#3D7BC2",enabled:!0,type:"COSMOS",chainId:"darchub",info:{infoType:"CosmosMetaInfo",experimental:!0,rpc:"https://node1.konstellation.tech:26657",rest:"https://node1.konstellation.tech:1318",cosmostationLcdUrl:"https://api-konstellation.cosmostation.io",cosmostationApiUrl:"https://api-konstellation.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"konstellation",chainName:"Konstellation",stakeCurrency:{coinDenom:"DARC",coinMinimalDenom:"udarc",coinDecimals:6,coinGeckoId:"pool:udarc",coinImageUrl:"/tokens/blockchain/DARC.png"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"darc",bech32PrefixAccPub:"darcpub",bech32PrefixValAddr:"darcvaloper",bech32PrefixValPub:"darcvaloperpub",bech32PrefixConsAddr:"darcvalcons",bech32PrefixConsPub:"darcvalconspub"},currencies:[{coinDenom:"DARC",coinMinimalDenom:"udarc",coinDecimals:6,coinGeckoId:"pool:udarc",coinImageUrl:"/tokens/blockchain/DARC.png"}],feeCurrencies:[{coinDenom:"DARC",coinMinimalDenom:"udarc",coinDecimals:6,coinGeckoId:"pool:udarc",coinImageUrl:"/tokens/blockchain/DARC.png"}],features:["stargate","ibc-transfer","no-legacy-stdTx"],explorerUrlToTx:"https://www.mintscan.io/konstellation/txs/{txHash}",gasPriceStep:null}},{name:"STARNAME",defaultDecimals:6,addressPatterns:["^(star1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"STARNAME",symbol:"IOV",address:null}],logo:"https://api.rango.exchange/blockchains/starname.png",displayName:"Starname",shortName:"Starname",sort:35,color:"#BC64BB",enabled:!0,type:"COSMOS",chainId:"iov-mainnet-ibc",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://rpc-iov.keplr.app",rest:"https://lcd-iov.keplr.app",cosmostationLcdUrl:"https://lcd-iov.cosmostation.io",cosmostationApiUrl:"https://api-iov.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"starname",chainName:"Starname",stakeCurrency:{coinDenom:"IOV",coinMinimalDenom:"uiov",coinDecimals:6,coinGeckoId:"starname",coinImageUrl:"/tokens/blockchain/IOV.png"},bip44:{coinType:494},bech32Config:{bech32PrefixAccAddr:"star",bech32PrefixAccPub:"starpub",bech32PrefixValAddr:"starvaloper",bech32PrefixValPub:"starvaloperpub",bech32PrefixConsAddr:"starvalcons",bech32PrefixConsPub:"starvalconspub"},currencies:[{coinDenom:"IOV",coinMinimalDenom:"uiov",coinDecimals:6,coinGeckoId:"starname",coinImageUrl:"/tokens/blockchain/IOV.png"}],feeCurrencies:[{coinDenom:"IOV",coinMinimalDenom:"uiov",coinDecimals:6,coinGeckoId:"starname",coinImageUrl:"/tokens/blockchain/IOV.png"}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://www.mintscan.io/starname/txs/{txHash}",gasPriceStep:{low:1,average:2,high:3}}},{name:"BITCANNA",defaultDecimals:6,addressPatterns:["^(bcna1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"BITCANNA",symbol:"BCNA",address:null}],logo:"https://api.rango.exchange/blockchains/bitcanna.svg",displayName:"BitCanna",shortName:"BitCanna",sort:36,color:"#3CC194",enabled:!0,type:"COSMOS",chainId:"bitcanna-1",info:{infoType:"CosmosMetaInfo",experimental:!0,rpc:"https://rpc.bitcanna.io",rest:"https://lcd.bitcanna.io",cosmostationLcdUrl:"https://lcd-bitcanna.cosmostation.io",cosmostationApiUrl:"https://api-bitcanna.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"bitcanna",chainName:"BitCanna",stakeCurrency:{coinDenom:"BCNA",coinMinimalDenom:"ubcna",coinDecimals:6,coinGeckoId:"bitcanna",coinImageUrl:"/tokens/blockchain/BCNA.png"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"bcna",bech32PrefixAccPub:"bcnapub",bech32PrefixValAddr:"bcnavaloper",bech32PrefixValPub:"bcnavaloperpub",bech32PrefixConsAddr:"bcnavalcons",bech32PrefixConsPub:"bcnavalconspub"},currencies:[{coinDenom:"BCNA",coinMinimalDenom:"ubcna",coinDecimals:6,coinGeckoId:"bitcanna",coinImageUrl:"/tokens/blockchain/BCNA.png"}],feeCurrencies:[{coinDenom:"BCNA",coinMinimalDenom:"ubcna",coinDecimals:6,coinGeckoId:"bitcanna",coinImageUrl:"/tokens/blockchain/BCNA.png"}],features:["stargate","ibc-transfer","no-legacy-stdTx"],explorerUrlToTx:"https://www.mintscan.io/bitcanna/txs/{txHash}",gasPriceStep:null}},{name:"UMEE",defaultDecimals:6,addressPatterns:["^(umee1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"UMEE",symbol:"UMEE",address:null}],logo:"https://api.rango.exchange/blockchains/umee.svg",displayName:"Umee",shortName:"Umee",sort:36,color:"#D2B6FF",enabled:!0,type:"COSMOS",chainId:"umee-1",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://api.barnacle.mainnet.network.umee.cc",rest:"https://lcd-umee.cosmostation.io",cosmostationLcdUrl:"https://lcd-umee.cosmostation.io",cosmostationApiUrl:"https://api-umee.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"umee",chainName:"Umee",stakeCurrency:{coinDenom:"UMEE",coinMinimalDenom:"uumee",coinDecimals:6,coinGeckoId:"pool:uumee",coinImageUrl:"/tokens/blockchain/UMEE.png"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"umee",bech32PrefixAccPub:"umeepub",bech32PrefixValAddr:"umeevaloper",bech32PrefixValPub:"umeevaloperpub",bech32PrefixConsAddr:"umeevalcons",bech32PrefixConsPub:"umeevalconspub"},currencies:[{coinDenom:"UMEE",coinMinimalDenom:"uumee",coinDecimals:6,coinGeckoId:"pool:uumee",coinImageUrl:"/tokens/blockchain/UMEE.png"}],feeCurrencies:[{coinDenom:"UMEE",coinMinimalDenom:"uumee",coinDecimals:6,coinGeckoId:"pool:uumee",coinImageUrl:"/tokens/blockchain/UMEE.png"}],features:["stargate","ibc-transfer","no-legacy-stdTx"],explorerUrlToTx:"https://www.mintscan.io/umee/txs/{txHash}",gasPriceStep:{low:.05,average:.06,high:.1}}},{name:"DESMOS",defaultDecimals:6,addressPatterns:["^(desmos1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"DESMOS",symbol:"DSM",address:null}],logo:"https://api.rango.exchange/blockchains/desmos.svg",displayName:"Desmos",shortName:"Desmos",sort:37,color:"#DF6952",enabled:!0,type:"COSMOS",chainId:"desmos-mainnet",info:{infoType:"CosmosMetaInfo",experimental:!0,rpc:"https://rpc.mainnet.desmos.network",rest:"https://api.mainnet.desmos.network",cosmostationLcdUrl:"https://lcd-desmos.cosmostation.io",cosmostationApiUrl:"https://api-desmos.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"desmos",chainName:"Desmos",stakeCurrency:{coinDenom:"DSM",coinMinimalDenom:"udsm",coinDecimals:6,coinGeckoId:"pool:udsm",coinImageUrl:"/tokens/blockchain/DSM.png"},bip44:{coinType:852},bech32Config:{bech32PrefixAccAddr:"desmos",bech32PrefixAccPub:"desmospub",bech32PrefixValAddr:"desmosvaloper",bech32PrefixValPub:"desmosvaloperpub",bech32PrefixConsAddr:"desmosvalcons",bech32PrefixConsPub:"desmosvalconspub"},currencies:[{coinDenom:"DSM",coinMinimalDenom:"udsm",coinDecimals:6,coinGeckoId:"pool:udsm",coinImageUrl:"/tokens/blockchain/DSM.png"}],feeCurrencies:[{coinDenom:"DSM",coinMinimalDenom:"udsm",coinDecimals:6,coinGeckoId:"pool:udsm",coinImageUrl:"/tokens/blockchain/DSM.png"}],features:["stargate","ibc-transfer","no-legacy-stdTx","ibc-go"],explorerUrlToTx:"https://explorer.desmos.network/transactions/{txHash}",gasPriceStep:null}},{name:"LUMNETWORK",defaultDecimals:6,addressPatterns:["^(lum1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"LUMNETWORK",symbol:"LUM",address:null}],logo:"https://api.rango.exchange/blockchains/lumnetwork.png",displayName:"Lum Network",shortName:"Lum Network",sort:38,color:"#1B42B4",enabled:!0,type:"COSMOS",chainId:"lum-network-1",info:{infoType:"CosmosMetaInfo",experimental:!0,rpc:"https://node0.mainnet.lum.network/rpc",rest:"https://node0.mainnet.lum.network/rest",cosmostationLcdUrl:"https://lcd-lum.cosmostation.io",cosmostationApiUrl:"https://api-lum.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"lum",chainName:"Lum Network",stakeCurrency:{coinDenom:"LUM",coinMinimalDenom:"ulum",coinDecimals:6,coinGeckoId:"pool:ulum",coinImageUrl:"/tokens/blockchain/LUM.png"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"lum",bech32PrefixAccPub:"lumpub",bech32PrefixValAddr:"lumvaloper",bech32PrefixValPub:"lumvaloperpub",bech32PrefixConsAddr:"lumvalcons",bech32PrefixConsPub:"lumvalconspub"},currencies:[{coinDenom:"LUM",coinMinimalDenom:"ulum",coinDecimals:6,coinGeckoId:"pool:ulum",coinImageUrl:"/tokens/blockchain/LUM.png"}],feeCurrencies:[{coinDenom:"LUM",coinMinimalDenom:"ulum",coinDecimals:6,coinGeckoId:"pool:ulum",coinImageUrl:"/tokens/blockchain/LUM.png"}],features:["stargate","ibc-transfer","no-legacy-stdTx","ibc-go"],explorerUrlToTx:"https://www.mintscan.io/lum/txs/{txHash}",gasPriceStep:null}},{name:"BOBA",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"BOBA",symbol:"ETH",address:null}],logo:"https://api.rango.exchange/blockchains/boba.png",displayName:"Boba",shortName:"Boba",sort:39,color:"#ccff00",enabled:!0,type:"EVM",chainId:"0x120",info:{infoType:"EvmMetaInfo",chainName:"Boba Network",nativeCurrency:{name:"ETH",symbol:"ETH",decimals:18},rpcUrls:["https://mainnet.boba.network"],blockExplorerUrls:["https://bobascan.com/"],addressUrl:"https://bobascan.com//address/{wallet}",transactionUrl:"https://bobascan.com//tx/{txHash}"}},{name:"AXELAR",defaultDecimals:6,addressPatterns:["^(axelar1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"AXELAR",symbol:"AXL",address:null}],logo:"https://api.rango.exchange/blockchains/axelar.png",displayName:"Axelar",shortName:"Axelar",sort:40,color:"#15181C",enabled:!1,type:"COSMOS",chainId:"axelar-dojo-1",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://mainnet-rpc-router.axelar-dev.workers.dev/chain/axelar",rest:"https://axelar-lcd.quickapi.com",cosmostationLcdUrl:"https://axelar-lcd.quickapi.com",cosmostationApiUrl:"https://mainnet-rpc-router.axelar-dev.workers.dev/chain/axelar",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"axelar",chainName:"Axelar",stakeCurrency:{coinDenom:"AXL",coinMinimalDenom:"uaxl",coinDecimals:6,coinGeckoId:"axelar",coinImageUrl:"/tokens/blockchain/axl.png"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"axl",bech32PrefixAccPub:"axlpub",bech32PrefixValAddr:"axlvaloper",bech32PrefixValPub:"axlvaloperpub",bech32PrefixConsAddr:"axlvalcons",bech32PrefixConsPub:"axlvalconspub"},currencies:[{coinDenom:"AXL",coinMinimalDenom:"uaxl",coinDecimals:6,coinGeckoId:"axelar",coinImageUrl:"/tokens/blockchain/axl.png"}],feeCurrencies:[{coinDenom:"AXL",coinMinimalDenom:"uaxl",coinDecimals:6,coinGeckoId:"axelar",coinImageUrl:"/tokens/blockchain/axl.png"}],features:["stargate","ibc-transfer"],explorerUrlToTx:"https://www.mintscan.io/axelar/txs/{txHash}",gasPriceStep:{low:.007,average:.007,high:.01}}},{name:"STRIDE",defaultDecimals:6,addressPatterns:["^(stride1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"STRIDE",symbol:"STRD",address:null}],logo:"https://api.rango.exchange/blockchains/stride.svg",displayName:"Stride",shortName:"Stride",sort:41,color:"#D63178",enabled:!0,type:"COSMOS",chainId:"stride-1",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://rpc-stride.keplr.app",rest:"https://lcd-stride.keplr.app",cosmostationLcdUrl:"https://lcd-stride.cosmostation.io",cosmostationApiUrl:"https://api-stride.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"stride",chainName:"Stride",stakeCurrency:{coinDenom:"STRD",coinMinimalDenom:"ustrd",coinDecimals:6,coinGeckoId:"stride",coinImageUrl:""},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"stride",bech32PrefixAccPub:"stridepub",bech32PrefixValAddr:"stridevaloper",bech32PrefixValPub:"stridevaloperpub",bech32PrefixConsAddr:"stridevalcons",bech32PrefixConsPub:"stridevalconspub"},currencies:[{coinDenom:"STRD",coinMinimalDenom:"ustrd",coinDecimals:6,coinGeckoId:"stride",coinImageUrl:""},{coinDenom:"stATOM",coinMinimalDenom:"stuatom",coinDecimals:6,coinGeckoId:"stride-staked-atom",coinImageUrl:""},{coinDenom:"stOSMO",coinMinimalDenom:"stuosmo",coinDecimals:6,coinGeckoId:"stride-staked-osmo",coinImageUrl:""},{coinDenom:"stJUNO",coinMinimalDenom:"stujuno",coinDecimals:6,coinGeckoId:"stride-staked-juno",coinImageUrl:""},{coinDenom:"stSTARS",coinMinimalDenom:"stustars",coinDecimals:6,coinGeckoId:"",coinImageUrl:""},{coinDenom:"stEVMOS",coinMinimalDenom:"staevmos",coinDecimals:18,coinGeckoId:"",coinImageUrl:""},{coinDenom:"stLUNA",coinMinimalDenom:"stuluna",coinDecimals:6,coinGeckoId:"",coinImageUrl:""}],feeCurrencies:[{coinDenom:"STRD",coinMinimalDenom:"ustrd",coinDecimals:6,coinGeckoId:"stride",coinImageUrl:""}],features:["ibc-transfer"],explorerUrlToTx:"https://www.mintscan.io/stride/txs/{txHash}",gasPriceStep:{low:.001,average:.0025,high:.04}}},{name:"KCC",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"KCC",symbol:"KCS",address:null}],logo:"https://api.rango.exchange/blockchains/kcc.png",displayName:"Kcc",shortName:"Kcc",sort:41,color:"#ccff00",enabled:!0,type:"EVM",chainId:"0x141",info:{infoType:"EvmMetaInfo",chainName:"Kcc Network",nativeCurrency:{name:"KCS",symbol:"KCS",decimals:18},rpcUrls:["https://rpc-mainnet.kcc.network/"],blockExplorerUrls:["https://explorer.kcc.io/en"],addressUrl:"https://explorer.kcc.io/en/address/{wallet}",transactionUrl:"https://explorer.kcc.io/en/tx/{txHash}"}},{name:"MARS",defaultDecimals:6,addressPatterns:["^(mars1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"MARS",symbol:"MARS",address:null}],logo:"https://api.rango.exchange/blockchains/mars.svg",displayName:"Mars",shortName:"Mars",sort:42,color:"#CB4B3D",enabled:!0,type:"COSMOS",chainId:"mars-1",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://rpc-mars.keplr.app",rest:"https://lcd-mars.keplr.app",cosmostationLcdUrl:"https://lcd-mars-protocol.cosmostation.io",cosmostationApiUrl:"https://api-mars-protocol.cosmostation.io",cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:"mars-protocol",chainName:"Mars",stakeCurrency:{coinDenom:"MARS",coinMinimalDenom:"umars",coinDecimals:6,coinGeckoId:"mars-protocol-a7fcbcfb-fd61-4017-92f0-7ee9f9cc6da3",coinImageUrl:"/tokens/blockchain/mars.svg"},bip44:{coinType:118},bech32Config:{bech32PrefixAccAddr:"mars",bech32PrefixAccPub:"marspub",bech32PrefixValAddr:"marsvaloper",bech32PrefixValPub:"marsvaloperpub",bech32PrefixConsAddr:"marsvalcons",bech32PrefixConsPub:"marsvalconspub"},currencies:[{coinDenom:"MARS",coinMinimalDenom:"umars",coinDecimals:6,coinGeckoId:"mars-protocol-a7fcbcfb-fd61-4017-92f0-7ee9f9cc6da3",coinImageUrl:"/tokens/blockchain/mars.svg"}],feeCurrencies:[{coinDenom:"MARS",coinMinimalDenom:"umars",coinDecimals:6,coinGeckoId:"mars-protocol-a7fcbcfb-fd61-4017-92f0-7ee9f9cc6da3",coinImageUrl:"/tokens/blockchain/mars.svg"}],features:["ibc-transfer"],explorerUrlToTx:"https://www.mintscan.io/mars-protocol/txs/{txHash}",gasPriceStep:{low:.001,average:.0025,high:.01}}},{name:"TERRA",defaultDecimals:6,addressPatterns:["^(terra1)[0-9a-z]{38}$"],feeAssets:[{blockchain:"TERRA",symbol:"LUNA",address:null}],logo:"https://api.rango.exchange/blockchains/terra.png",displayName:"Terra 2.0",shortName:"Terra 2.0",sort:43,color:"#5493F7",enabled:!0,type:"COSMOS",chainId:"phoenix-1",info:{infoType:"CosmosMetaInfo",experimental:!1,rpc:"https://rpc-phoenix.keplr.app",rest:"https://lcd-phoenix.keplr.app",cosmostationLcdUrl:"https://phoenix-lcd.terra.dev",cosmostationApiUrl:null,cosmostationDenomTracePath:"/ibc/apps/transfer/v1/denom_traces/",mintScanName:null,chainName:"Terra 2.0",stakeCurrency:{coinDenom:"LUNA",coinMinimalDenom:"uluna",coinDecimals:6,coinGeckoId:"terra-luna-2",coinImageUrl:""},bip44:{coinType:330},bech32Config:{bech32PrefixAccAddr:"terra",bech32PrefixAccPub:"terrapub",bech32PrefixValAddr:"terravaloper",bech32PrefixValPub:"terravaloperpub",bech32PrefixConsAddr:"terravalcons",bech32PrefixConsPub:"terravalconspub"},currencies:[{coinDenom:"LUNA",coinMinimalDenom:"uluna",coinDecimals:6,coinGeckoId:"terra-luna-2",coinImageUrl:""}],feeCurrencies:[{coinDenom:"LUNA",coinMinimalDenom:"uluna",coinDecimals:6,coinGeckoId:"terra-luna-2",coinImageUrl:""}],features:["cosmwasm","ibc-transfer"],explorerUrlToTx:"https://finder.terra.money/mainnet/txs/{txHash}",gasPriceStep:{low:.0125,average:.015,high:.15}}},{name:"TELOS",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"TELOS",symbol:"TLOS",address:null}],logo:"https://api.rango.exchange/blockchains/telos.png",displayName:"Telos",shortName:"Telos",sort:49,color:"#6144ae",enabled:!0,type:"EVM",chainId:"0x28",info:{infoType:"EvmMetaInfo",chainName:"Telos Mainnet",nativeCurrency:{name:"TLOS",symbol:"TLOS",decimals:18},rpcUrls:["https://mainnet.telos.net/evm"],blockExplorerUrls:["https://www.teloscan.io"],addressUrl:"https://www.teloscan.io/address/{wallet}",transactionUrl:"https://www.teloscan.io/tx/{txHash}"}},{name:"BOBA_BNB",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"BOBA_BNB",symbol:"BOBA",address:null}],logo:"https://api.rango.exchange/blockchains/boba.png",displayName:"Boba Bnb",shortName:"Boba Bnb",sort:63,color:"#ccff00",enabled:!0,type:"EVM",chainId:"0xdbe0",info:{infoType:"EvmMetaInfo",chainName:"Boba Bnb Network",nativeCurrency:{name:"BOBA",symbol:"BOBA",decimals:18},rpcUrls:["https://bnb.boba.network"],blockExplorerUrls:["https://blockexplorer.bnb.boba.network"],addressUrl:"https://blockexplorer.bnb.boba.network/address/{wallet}",transactionUrl:"https://blockexplorer.bnb.boba.network/tx/{txHash}"}},{name:"BOBA_BEAM",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"BOBA_BEAM",symbol:"BOBA",address:null}],logo:"https://api.rango.exchange/blockchains/boba.png",displayName:"Boba Beam",shortName:"Boba Beam",sort:64,color:"#ccff00",enabled:!1,type:"EVM",chainId:"0x50e",info:{infoType:"EvmMetaInfo",chainName:"Boba Beam Network",nativeCurrency:{name:"BOBA",symbol:"BOBA",decimals:18},rpcUrls:["https://bobabeam.boba.network"],blockExplorerUrls:["https://blockexplorer.bobabeam.boba.network"],addressUrl:"https://blockexplorer.bobabeam.boba.network/address/{wallet}",transactionUrl:"https://blockexplorer.bobabeam.boba.network/tx/{txHash}"}},{name:"BOBA_AVALANCHE",defaultDecimals:18,addressPatterns:["^(0x)[0-9A-Fa-f]{40}$"],feeAssets:[{blockchain:"BOBA_AVALANCHE",symbol:"BOBA",address:null}],logo:"https://api.rango.exchange/blockchains/boba.png",displayName:"Boba Avalanche",shortName:"Boba Avalanche",sort:65,color:"#ccff00",enabled:!0,type:"EVM",chainId:"0xa918",info:{infoType:"EvmMetaInfo",chainName:"Boba Avalanche Network",nativeCurrency:{name:"BOBA",symbol:"BOBA",decimals:18},rpcUrls:["https://avax.boba.network"],blockExplorerUrls:["https://blockexplorer.avax.boba.network"],addressUrl:"https://blockexplorer.avax.boba.network/address/{wallet}",transactionUrl:"https://blockexplorer.avax.boba.network/tx/{txHash}"}}];var P="cosmos",C=class{static{k(this,"COSMOSSigner")}client;session;constructor(e,n){this.client=e,this.session=n}async signMessage(){throw c.UnimplementedError("signMessage")}async signAndSendTx(e,n,i){console.log({tx:e,address:n,chainId:i});let r=this.isNetworkAndAccountExistInSession({address:n,chainId:i});try{let{memo:o,sequence:s,account_number:l,chainId:a,msgs:p,fee:h,signType:d}=e.data,M=p.map(b=>({...b,__type:void 0,"@type":void 0}));if(!a)throw c.AssertionFailed("chainId is undefined from server");if(!l)throw c.AssertionFailed("account_number is undefined from server");if(!s)throw c.AssertionFailed("sequence is undefined from server");if(d==="AMINO"){let b=w(M,h,a,o||void 0,l,s),f;try{f=await this.client.request({topic:this.session.topic,chainId:r.caipChainId,request:{method:"cosmos_signAmino",params:{signDoc:b,signerAddress:e.fromWalletAddress}}})}catch(m){throw new c(u.SIGN_TX_ERROR,void 0,m)}let g=B(e,f),A=await y(a,g,U.Async,D);return{hash:I(A)}}else if(d==="DIRECT"){let b;try{b=await this.client.request({topic:this.session.topic,chainId:r.caipChainId,request:{method:"cosmos_getAccounts",params:{}}})}catch(t){throw new c(u.SIGN_TX_ERROR,void 0,t)}let f=b?.find(t=>t.address===e.fromWalletAddress)?.pubkey||"",g=v.tx.v1beta1.TxBody.encode({messages:e.data.protoMsgs.map(t=>({type_url:t.type_url,value:new Uint8Array(t.value)})),memo:o}).finish();console.log({tx:e,bodyBytes:g});let A=H(h?.amount||[],f,parseInt(h?.gas),l,parseInt(s),I(g),a),m;try{m=await this.client.request({topic:this.session.topic,chainId:r.caipChainId,request:{method:"cosmos_signDirect",params:{signDoc:V(A),signerAddress:e.fromWalletAddress}}})}catch(t){throw new c(u.SIGN_TX_ERROR,void 0,t)}console.log({signResponse:m});let N=v.tx.v1beta1.TxRaw.encode({bodyBytes:new TextEncoder().encode(m.signed.bodyBytes),authInfoBytes:new TextEncoder().encode(m.signed.authInfoBytes),signatures:[Buffer.from(m.signature.signature,"base64")]}).finish();console.log({signedTx:N});let T=await y(a,N,U.Async,D);return console.log({result:T}),{hash:I(T)}}throw new c(u.OPERATION_UNSUPPORTED,`Sign type for cosmos not supported, type: ${d}`)}catch(o){throw c.isSignerError(o)?o:new c(u.SEND_TX_ERROR,void 0,o)}}isNetworkAndAccountExistInSession(e){let{address:n,chainId:i}=e;if(!i)throw new Error("You need to set your chain for signing message/transaction.");let r=new R({chainId:{namespace:P,reference:i},address:n}),o=this.session.namespaces[P]?.accounts.map(l=>l.toLowerCase());if(!o||!o.includes(r.toString()))throw console.warn("Available adresses and requested address:",o,r.toString()),new Error("Your requested address doesn't exist on your wallect connect session. Please reconnect your wallet.");let s=new G({namespace:P,reference:i});return{chainId:i,address:n,caipChainId:s.toString()}}},se=C;export{se as default};
2
+ //# sourceMappingURL=cosmos-EMGK355Q.js.map