=r.PE,!!i)};ge.valueOf=function(){var t=this,e=t.constructor;if(e.strict===!0)throw Error(Ri+"valueOf disallowed");return tr(t,t.e<=e.NE||t.e>=e.PE,!0)};var Xr=Xl();const gd={bigNumber(t){return t?new Xr(t):new Xr(0)},multiply(t,e){if(t===void 0||e===void 0)return new Xr(0);const s=new Xr(t),r=new Xr(e);return s.times(r)},formatNumberToLocalString(t,e=2){return t===void 0?"0.00":typeof t=="number"?t.toLocaleString("en-US",{maximumFractionDigits:e,minimumFractionDigits:e}):parseFloat(t).toLocaleString("en-US",{maximumFractionDigits:e,minimumFractionDigits:e})},parseLocalStringToNumber(t){return t===void 0?0:parseFloat(t.replace(/,/gu,""))}},md=[{type:"function",name:"transfer",stateMutability:"nonpayable",inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"transferFrom",stateMutability:"nonpayable",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],outputs:[{name:"",type:"bool"}]}],wd=[{type:"function",name:"approve",stateMutability:"nonpayable",inputs:[{name:"spender",type:"address"},{name:"amount",type:"uint256"}],outputs:[{type:"bool"}]}],yd=[{type:"function",name:"transfer",stateMutability:"nonpayable",inputs:[{name:"recipient",type:"address"},{name:"amount",type:"uint256"}],outputs:[]},{type:"function",name:"transferFrom",stateMutability:"nonpayable",inputs:[{name:"sender",type:"address"},{name:"recipient",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]}],bd={getERC20Abi:t=>W.USDT_CONTRACT_ADDRESSES.includes(t)?yd:md,getSwapAbi:()=>wd},hs={validateCaipAddress(t){if(t.split(":")?.length!==3)throw new Error("Invalid CAIP Address");return t},parseCaipAddress(t){const e=t.split(":");if(e.length!==3)throw new Error(`Invalid CAIP-10 address: ${t}`);const[s,r,i]=e;if(!s||!r||!i)throw new Error(`Invalid CAIP-10 address: ${t}`);return{chainNamespace:s,chainId:r,address:i}},parseCaipNetworkId(t){const e=t.split(":");if(e.length!==2)throw new Error(`Invalid CAIP-2 network id: ${t}`);const[s,r]=e;if(!s||!r)throw new Error(`Invalid CAIP-2 network id: ${t}`);return{chainNamespace:s,chainId:r}}},ee={WALLET_ID:"@appkit/wallet_id",WALLET_NAME:"@appkit/wallet_name",SOLANA_WALLET:"@appkit/solana_wallet",SOLANA_CAIP_CHAIN:"@appkit/solana_caip_chain",ACTIVE_CAIP_NETWORK_ID:"@appkit/active_caip_network_id",CONNECTED_SOCIAL:"@appkit/connected_social",CONNECTED_SOCIAL_USERNAME:"@appkit-wallet/SOCIAL_USERNAME",RECENT_WALLETS:"@appkit/recent_wallets",DEEPLINK_CHOICE:"WALLETCONNECT_DEEPLINK_CHOICE",ACTIVE_NAMESPACE:"@appkit/active_namespace",CONNECTED_NAMESPACES:"@appkit/connected_namespaces",CONNECTION_STATUS:"@appkit/connection_status",SIWX_AUTH_TOKEN:"@appkit/siwx-auth-token",SIWX_NONCE_TOKEN:"@appkit/siwx-nonce-token",TELEGRAM_SOCIAL_PROVIDER:"@appkit/social_provider",NATIVE_BALANCE_CACHE:"@appkit/native_balance_cache",PORTFOLIO_CACHE:"@appkit/portfolio_cache",ENS_CACHE:"@appkit/ens_cache",IDENTITY_CACHE:"@appkit/identity_cache",PREFERRED_ACCOUNT_TYPES:"@appkit/preferred_account_types",CONNECTIONS:"@appkit/connections"};function Fn(t){if(!t)throw new Error("Namespace is required for CONNECTED_CONNECTOR_ID");return`@appkit/${t}:connected_connector_id`}const Z={setItem(t,e){ai()&&e!==void 0&&localStorage.setItem(t,e)},getItem(t){if(ai())return localStorage.getItem(t)||void 0},removeItem(t){ai()&&localStorage.removeItem(t)},clear(){ai()&&localStorage.clear()}};function ai(){return typeof window<"u"&&typeof localStorage<"u"}function Es(t,e){return e==="light"?{"--w3m-accent":t?.["--w3m-accent"]||"hsla(231, 100%, 70%, 1)","--w3m-background":"#fff"}:{"--w3m-accent":t?.["--w3m-accent"]||"hsla(230, 100%, 67%, 1)","--w3m-background":"#121313"}}const vd=Symbol(),Ra=Object.getPrototypeOf,Io=new WeakMap,Ed=t=>t&&(Io.has(t)?Io.get(t):Ra(t)===Object.prototype||Ra(t)===Array.prototype),Cd=t=>Ed(t)&&t[vd]||null,Ua=(t,e=!0)=>{Io.set(t,e)},vn={},zn=t=>typeof t=="object"&&t!==null,ws=new WeakMap,ci=new WeakSet,Id=(t=Object.is,e=(l,u)=>new Proxy(l,u),s=l=>zn(l)&&!ci.has(l)&&(Array.isArray(l)||!(Symbol.iterator in l))&&!(l instanceof WeakMap)&&!(l instanceof WeakSet)&&!(l instanceof Error)&&!(l instanceof Number)&&!(l instanceof Date)&&!(l instanceof String)&&!(l instanceof RegExp)&&!(l instanceof ArrayBuffer),r=l=>{switch(l.status){case"fulfilled":return l.value;case"rejected":throw l.reason;default:throw l}},i=new WeakMap,n=(l,u,h=r)=>{const d=i.get(l);if(d?.[0]===u)return d[1];const p=Array.isArray(l)?[]:Object.create(Object.getPrototypeOf(l));return Ua(p,!0),i.set(l,[u,p]),Reflect.ownKeys(l).forEach(w=>{if(Object.getOwnPropertyDescriptor(p,w))return;const m=Reflect.get(l,w),{enumerable:f}=Reflect.getOwnPropertyDescriptor(l,w),y={value:m,enumerable:f,configurable:!0};if(ci.has(m))Ua(m,!1);else if(m instanceof Promise)delete y.value,y.get=()=>h(m);else if(ws.has(m)){const[b,v]=ws.get(m);y.value=n(b,v(),h)}Object.defineProperty(p,w,y)}),Object.preventExtensions(p)},o=new WeakMap,a=[1,1],c=l=>{if(!zn(l))throw new Error("object required");const u=o.get(l);if(u)return u;let h=a[0];const d=new Set,p=(E,$=++a[0])=>{h!==$&&(h=$,d.forEach(I=>I(E,$)))};let w=a[1];const m=(E=++a[1])=>(w!==E&&!d.size&&(w=E,y.forEach(([$])=>{const I=$[1](E);I>h&&(h=I)})),h),f=E=>($,I)=>{const L=[...$];L[1]=[E,...L[1]],p(L,I)},y=new Map,b=(E,$)=>{if((vn?"production":void 0)!=="production"&&y.has(E))throw new Error("prop listener already exists");if(d.size){const I=$[3](f(E));y.set(E,[$,I])}else y.set(E,[$])},v=E=>{var $;const I=y.get(E);I&&(y.delete(E),($=I[1])==null||$.call(I))},C=E=>(d.add(E),d.size===1&&y.forEach(([I,L],H)=>{if((vn?"production":void 0)!=="production"&&L)throw new Error("remove already exists");const N=I[3](f(H));y.set(H,[I,N])}),()=>{d.delete(E),d.size===0&&y.forEach(([I,L],H)=>{L&&(L(),y.set(H,[I]))})}),S=Array.isArray(l)?[]:Object.create(Object.getPrototypeOf(l)),_=e(S,{deleteProperty(E,$){const I=Reflect.get(E,$);v($);const L=Reflect.deleteProperty(E,$);return L&&p(["delete",[$],I]),L},set(E,$,I,L){const H=Reflect.has(E,$),N=Reflect.get(E,$,L);if(H&&(t(N,I)||o.has(I)&&t(N,o.get(I))))return!0;v($),zn(I)&&(I=Cd(I)||I);let T=I;if(I instanceof Promise)I.then(k=>{I.status="fulfilled",I.value=k,p(["resolve",[$],k])}).catch(k=>{I.status="rejected",I.reason=k,p(["reject",[$],k])});else{!ws.has(I)&&s(I)&&(T=c(I));const k=!ci.has(T)&&ws.get(T);k&&b($,k)}return Reflect.set(E,$,T,L),p(["set",[$],I,N]),!0}});o.set(l,_);const U=[S,m,n,C];return ws.set(_,U),Reflect.ownKeys(l).forEach(E=>{const $=Object.getOwnPropertyDescriptor(l,E);"value"in $&&(_[E]=l[E],delete $.value,delete $.writable),Object.defineProperty(S,E,$)}),_})=>[c,ws,ci,t,e,s,r,i,n,o,a],[Nd]=Id();function _e(t={}){return Nd(t)}function Qe(t,e,s){const r=ws.get(t);(vn?"production":void 0)!=="production"&&!r&&console.warn("Please use proxy object");let i;const n=[],o=r[3];let a=!1;const l=o(u=>{n.push(u),i||(i=Promise.resolve().then(()=>{i=void 0,a&&e(n.splice(0))}))});return a=!0,()=>{a=!1,l()}}function Ii(t,e){const s=ws.get(t);(vn?"production":void 0)!=="production"&&!s&&console.warn("Please use proxy object");const[r,i,n]=s;return n(r,i(),e)}function Vs(t){return ci.add(t),t}function et(t,e,s,r){let i=t[e];return Qe(t,()=>{const n=t[e];Object.is(i,n)||s(i=n)})}function Ad(t){const e=_e({data:Array.from([]),has(s){return this.data.some(r=>r[0]===s)},set(s,r){const i=this.data.find(n=>n[0]===s);return i?i[1]=r:this.data.push([s,r]),this},get(s){var r;return(r=this.data.find(i=>i[0]===s))==null?void 0:r[1]},delete(s){const r=this.data.findIndex(i=>i[0]===s);return r===-1?!1:(this.data.splice(r,1),!0)},clear(){this.data.splice(0)},get size(){return this.data.length},toJSON(){return new Map(this.data)},forEach(s){this.data.forEach(r=>{s(r[1],r[0],this)})},keys(){return this.data.map(s=>s[0]).values()},values(){return this.data.map(s=>s[1]).values()},entries(){return new Map(this.data).entries()},get[Symbol.toStringTag](){return"Map"},[Symbol.iterator](){return this.entries()}});return Object.defineProperties(e,{data:{enumerable:!1},size:{enumerable:!1},toJSON:{enumerable:!1}}),Object.seal(e),e}const Zl=[{label:"Coinbase",name:"coinbase",feeRange:"1-2%",url:"",supportedChains:["eip155"]},{label:"Meld.io",name:"meld",feeRange:"1-2%",url:"https://meldcrypto.com",supportedChains:["eip155","solana"]}],_d="WXETMuFUQmqqybHuRkSgxv:25B8LJHSfpG6LVjR2ytU5Cwh7Z4Sch2ocoU",ve={FOUR_MINUTES_MS:24e4,TEN_SEC_MS:1e4,ONE_SEC_MS:1e3,BALANCE_SUPPORTED_CHAINS:["eip155","solana"],NAMES_SUPPORTED_CHAIN_NAMESPACES:["eip155"],NATIVE_TOKEN_ADDRESS:{eip155:"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",solana:"So11111111111111111111111111111111111111111",polkadot:"0x",bip122:"0x",cosmos:"0x"},CONVERT_SLIPPAGE_TOLERANCE:1,CONNECT_LABELS:{MOBILE:"Open and continue in the wallet app"},SEND_SUPPORTED_NAMESPACES:["eip155","solana"],DEFAULT_REMOTE_FEATURES:{swaps:["1inch"],onramp:["coinbase","meld"],email:!0,socials:["google","x","discord","farcaster","github","apple","facebook"],activity:!0,reownBranding:!0},DEFAULT_REMOTE_FEATURES_DISABLED:{email:!1,socials:!1,swaps:!1,onramp:!1,activity:!1,reownBranding:!1},DEFAULT_FEATURES:{receive:!0,send:!0,emailShowWallets:!0,connectorTypeOrder:["walletConnect","recent","injected","featured","custom","external","recommended"],analytics:!0,allWallets:!0,legalCheckbox:!1,smartSessions:!1,collapseWallets:!1,walletFeaturesOrder:["onramp","swaps","receive","send"],connectMethodsOrder:void 0,pay:!1},DEFAULT_ACCOUNT_TYPES:{bip122:"payment",eip155:"smartAccount",polkadot:"eoa",solana:"eoa"},ADAPTER_TYPES:{UNIVERSAL:"universal"}},F={cacheExpiry:{portfolio:3e4,nativeBalance:3e4,ens:3e5,identity:3e5},isCacheExpired(t,e){return Date.now()-t>e},getActiveNetworkProps(){const t=F.getActiveNamespace(),e=F.getActiveCaipNetworkId(),s=e?e.split(":")[1]:void 0,r=s?isNaN(Number(s))?s:Number(s):void 0;return{namespace:t,caipNetworkId:e,chainId:r}},setWalletConnectDeepLink({name:t,href:e}){try{Z.setItem(ee.DEEPLINK_CHOICE,JSON.stringify({href:e,name:t}))}catch{console.info("Unable to set WalletConnect deep link")}},getWalletConnectDeepLink(){try{const t=Z.getItem(ee.DEEPLINK_CHOICE);if(t)return JSON.parse(t)}catch{console.info("Unable to get WalletConnect deep link")}},deleteWalletConnectDeepLink(){try{Z.removeItem(ee.DEEPLINK_CHOICE)}catch{console.info("Unable to delete WalletConnect deep link")}},setActiveNamespace(t){try{Z.setItem(ee.ACTIVE_NAMESPACE,t)}catch{console.info("Unable to set active namespace")}},setActiveCaipNetworkId(t){try{Z.setItem(ee.ACTIVE_CAIP_NETWORK_ID,t),F.setActiveNamespace(t.split(":")[0])}catch{console.info("Unable to set active caip network id")}},getActiveCaipNetworkId(){try{return Z.getItem(ee.ACTIVE_CAIP_NETWORK_ID)}catch{console.info("Unable to get active caip network id");return}},deleteActiveCaipNetworkId(){try{Z.removeItem(ee.ACTIVE_CAIP_NETWORK_ID)}catch{console.info("Unable to delete active caip network id")}},deleteConnectedConnectorId(t){try{const e=Fn(t);Z.removeItem(e)}catch{console.info("Unable to delete connected connector id")}},setAppKitRecent(t){try{const e=F.getRecentWallets();e.find(r=>r.id===t.id)||(e.unshift(t),e.length>2&&e.pop(),Z.setItem(ee.RECENT_WALLETS,JSON.stringify(e)))}catch{console.info("Unable to set AppKit recent")}},getRecentWallets(){try{const t=Z.getItem(ee.RECENT_WALLETS);return t?JSON.parse(t):[]}catch{console.info("Unable to get AppKit recent")}return[]},setConnectedConnectorId(t,e){try{const s=Fn(t);Z.setItem(s,e)}catch{console.info("Unable to set Connected Connector Id")}},getActiveNamespace(){try{return Z.getItem(ee.ACTIVE_NAMESPACE)}catch{console.info("Unable to get active namespace")}},getConnectedConnectorId(t){if(t)try{const e=Fn(t);return Z.getItem(e)}catch{console.info("Unable to get connected connector id in namespace ",t)}},setConnectedSocialProvider(t){try{Z.setItem(ee.CONNECTED_SOCIAL,t)}catch{console.info("Unable to set connected social provider")}},getConnectedSocialProvider(){try{return Z.getItem(ee.CONNECTED_SOCIAL)}catch{console.info("Unable to get connected social provider")}},deleteConnectedSocialProvider(){try{Z.removeItem(ee.CONNECTED_SOCIAL)}catch{console.info("Unable to delete connected social provider")}},getConnectedSocialUsername(){try{return Z.getItem(ee.CONNECTED_SOCIAL_USERNAME)}catch{console.info("Unable to get connected social username")}},getStoredActiveCaipNetworkId(){return Z.getItem(ee.ACTIVE_CAIP_NETWORK_ID)?.split(":")?.[1]},setConnectionStatus(t){try{Z.setItem(ee.CONNECTION_STATUS,t)}catch{console.info("Unable to set connection status")}},getConnectionStatus(){try{return Z.getItem(ee.CONNECTION_STATUS)}catch{return}},getConnectedNamespaces(){try{const t=Z.getItem(ee.CONNECTED_NAMESPACES);return t?.length?t.split(","):[]}catch{return[]}},setConnectedNamespaces(t){try{const e=Array.from(new Set(t));Z.setItem(ee.CONNECTED_NAMESPACES,e.join(","))}catch{console.info("Unable to set namespaces in storage")}},addConnectedNamespace(t){try{const e=F.getConnectedNamespaces();e.includes(t)||(e.push(t),F.setConnectedNamespaces(e))}catch{console.info("Unable to add connected namespace")}},removeConnectedNamespace(t){try{const e=F.getConnectedNamespaces(),s=e.indexOf(t);s>-1&&(e.splice(s,1),F.setConnectedNamespaces(e))}catch{console.info("Unable to remove connected namespace")}},getTelegramSocialProvider(){try{return Z.getItem(ee.TELEGRAM_SOCIAL_PROVIDER)}catch{return console.info("Unable to get telegram social provider"),null}},setTelegramSocialProvider(t){try{Z.setItem(ee.TELEGRAM_SOCIAL_PROVIDER,t)}catch{console.info("Unable to set telegram social provider")}},removeTelegramSocialProvider(){try{Z.removeItem(ee.TELEGRAM_SOCIAL_PROVIDER)}catch{console.info("Unable to remove telegram social provider")}},getBalanceCache(){let t={};try{const e=Z.getItem(ee.PORTFOLIO_CACHE);t=e?JSON.parse(e):{}}catch{console.info("Unable to get balance cache")}return t},removeAddressFromBalanceCache(t){try{const e=F.getBalanceCache();Z.setItem(ee.PORTFOLIO_CACHE,JSON.stringify({...e,[t]:void 0}))}catch{console.info("Unable to remove address from balance cache",t)}},getBalanceCacheForCaipAddress(t){try{const s=F.getBalanceCache()[t];if(s&&!this.isCacheExpired(s.timestamp,this.cacheExpiry.portfolio))return s.balance;F.removeAddressFromBalanceCache(t)}catch{console.info("Unable to get balance cache for address",t)}},updateBalanceCache(t){try{const e=F.getBalanceCache();e[t.caipAddress]=t,Z.setItem(ee.PORTFOLIO_CACHE,JSON.stringify(e))}catch{console.info("Unable to update balance cache",t)}},getNativeBalanceCache(){let t={};try{const e=Z.getItem(ee.NATIVE_BALANCE_CACHE);t=e?JSON.parse(e):{}}catch{console.info("Unable to get balance cache")}return t},removeAddressFromNativeBalanceCache(t){try{const e=F.getBalanceCache();Z.setItem(ee.NATIVE_BALANCE_CACHE,JSON.stringify({...e,[t]:void 0}))}catch{console.info("Unable to remove address from balance cache",t)}},getNativeBalanceCacheForCaipAddress(t){try{const s=F.getNativeBalanceCache()[t];if(s&&!this.isCacheExpired(s.timestamp,this.cacheExpiry.nativeBalance))return s;console.info("Discarding cache for address",t),F.removeAddressFromBalanceCache(t)}catch{console.info("Unable to get balance cache for address",t)}},updateNativeBalanceCache(t){try{const e=F.getNativeBalanceCache();e[t.caipAddress]=t,Z.setItem(ee.NATIVE_BALANCE_CACHE,JSON.stringify(e))}catch{console.info("Unable to update balance cache",t)}},getEnsCache(){let t={};try{const e=Z.getItem(ee.ENS_CACHE);t=e?JSON.parse(e):{}}catch{console.info("Unable to get ens name cache")}return t},getEnsFromCacheForAddress(t){try{const s=F.getEnsCache()[t];if(s&&!this.isCacheExpired(s.timestamp,this.cacheExpiry.ens))return s.ens;F.removeEnsFromCache(t)}catch{console.info("Unable to get ens name from cache",t)}},updateEnsCache(t){try{const e=F.getEnsCache();e[t.address]=t,Z.setItem(ee.ENS_CACHE,JSON.stringify(e))}catch{console.info("Unable to update ens name cache",t)}},removeEnsFromCache(t){try{const e=F.getEnsCache();Z.setItem(ee.ENS_CACHE,JSON.stringify({...e,[t]:void 0}))}catch{console.info("Unable to remove ens name from cache",t)}},getIdentityCache(){let t={};try{const e=Z.getItem(ee.IDENTITY_CACHE);t=e?JSON.parse(e):{}}catch{console.info("Unable to get identity cache")}return t},getIdentityFromCacheForAddress(t){try{const s=F.getIdentityCache()[t];if(s&&!this.isCacheExpired(s.timestamp,this.cacheExpiry.identity))return s.identity;F.removeIdentityFromCache(t)}catch{console.info("Unable to get identity from cache",t)}},updateIdentityCache(t){try{const e=F.getIdentityCache();e[t.address]={identity:t.identity,timestamp:t.timestamp},Z.setItem(ee.IDENTITY_CACHE,JSON.stringify(e))}catch{console.info("Unable to update identity cache",t)}},removeIdentityFromCache(t){try{const e=F.getIdentityCache();Z.setItem(ee.IDENTITY_CACHE,JSON.stringify({...e,[t]:void 0}))}catch{console.info("Unable to remove identity from cache",t)}},clearAddressCache(){try{Z.removeItem(ee.PORTFOLIO_CACHE),Z.removeItem(ee.NATIVE_BALANCE_CACHE),Z.removeItem(ee.ENS_CACHE),Z.removeItem(ee.IDENTITY_CACHE)}catch{console.info("Unable to clear address cache")}},setPreferredAccountTypes(t){try{Z.setItem(ee.PREFERRED_ACCOUNT_TYPES,JSON.stringify(t))}catch{console.info("Unable to set preferred account types",t)}},getPreferredAccountTypes(){try{const t=Z.getItem(ee.PREFERRED_ACCOUNT_TYPES);return t?JSON.parse(t):{}}catch{console.info("Unable to get preferred account types")}return{}},setConnections(t,e){try{const s={...F.getConnections(),[e]:t};Z.setItem(ee.CONNECTIONS,JSON.stringify(s))}catch(s){console.error("Unable to sync connections to storage",s)}},getConnections(){try{const t=Z.getItem(ee.CONNECTIONS);return t?JSON.parse(t):{}}catch(t){return console.error("Unable to get connections from storage",t),{}}}},X={isMobile(){return this.isClient()?!!(typeof window?.matchMedia=="function"&&window?.matchMedia("(pointer:coarse)")?.matches||/Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent)):!1},checkCaipNetwork(t,e=""){return t?.caipNetworkId.toLocaleLowerCase().includes(e.toLowerCase())},isAndroid(){if(!this.isMobile())return!1;const t=window?.navigator.userAgent.toLowerCase();return X.isMobile()&&t.includes("android")},isIos(){if(!this.isMobile())return!1;const t=window?.navigator.userAgent.toLowerCase();return t.includes("iphone")||t.includes("ipad")},isSafari(){return this.isClient()?(window?.navigator.userAgent.toLowerCase()).includes("safari"):!1},isClient(){return typeof window<"u"},isPairingExpired(t){return t?t-Date.now()<=ve.TEN_SEC_MS:!0},isAllowedRetry(t,e=ve.ONE_SEC_MS){return Date.now()-t>=e},copyToClopboard(t){navigator.clipboard.writeText(t)},isIframe(){try{return window?.self!==window?.top}catch{return!1}},isSafeApp(){if(X.isClient()&&window.self!==window.top)try{const t=window?.location?.ancestorOrigins?.[0],e="https://app.safe.global";if(t){const s=new URL(t),r=new URL(e);return s.hostname===r.hostname}}catch{return!1}return!1},getPairingExpiry(){return Date.now()+ve.FOUR_MINUTES_MS},getNetworkId(t){return t?.split(":")[1]},getPlainAddress(t){return t?.split(":")[2]},async wait(t){return new Promise(e=>{setTimeout(e,t)})},debounce(t,e=500){let s;return(...r)=>{function i(){t(...r)}s&&clearTimeout(s),s=setTimeout(i,e)}},isHttpUrl(t){return t.startsWith("http://")||t.startsWith("https://")},formatNativeUrl(t,e,s=null){if(X.isHttpUrl(t))return this.formatUniversalUrl(t,e);let r=t,i=s;r.includes("://")||(r=t.replaceAll("/","").replaceAll(":",""),r=`${r}://`),r.endsWith("/")||(r=`${r}/`),i&&!i?.endsWith("/")&&(i=`${i}/`),this.isTelegram()&&this.isAndroid()&&(e=encodeURIComponent(e));const n=encodeURIComponent(e);return{redirect:`${r}wc?uri=${n}`,redirectUniversalLink:i?`${i}wc?uri=${n}`:void 0,href:r}},formatUniversalUrl(t,e){if(!X.isHttpUrl(t))return this.formatNativeUrl(t,e);let s=t;s.endsWith("/")||(s=`${s}/`);const r=encodeURIComponent(e);return{redirect:`${s}wc?uri=${r}`,href:s}},getOpenTargetForPlatform(t){return t==="popupWindow"?t:this.isTelegram()?F.getTelegramSocialProvider()?"_top":"_blank":t},openHref(t,e,s){window?.open(t,this.getOpenTargetForPlatform(e),s||"noreferrer noopener")},returnOpenHref(t,e,s){return window?.open(t,this.getOpenTargetForPlatform(e),s||"noreferrer noopener")},isTelegram(){return typeof window<"u"&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)},isPWA(){if(typeof window>"u")return!1;const t=window.matchMedia?.("(display-mode: standalone)")?.matches,e=window?.navigator?.standalone;return!!(t||e)},async preloadImage(t){const e=new Promise((s,r)=>{const i=new Image;i.onload=s,i.onerror=r,i.crossOrigin="anonymous",i.src=t});return Promise.race([e,X.wait(2e3)])},formatBalance(t,e){let s="0.000";if(typeof t=="string"){const r=Number(t);if(r){const i=Math.floor(r*1e3)/1e3;i&&(s=i.toString())}}return`${s}${e?` ${e}`:""}`},formatBalance2(t,e){let s;if(t==="0")s="0";else if(typeof t=="string"){const r=Number(t);r&&(s=r.toString().match(/^-?\d+(?:\.\d{0,3})?/u)?.[0])}return{value:s??"0",rest:s==="0"?"000":"",symbol:e}},getApiUrl(){return W.W3M_API_URL},getBlockchainApiUrl(){return W.BLOCKCHAIN_API_RPC_URL},getAnalyticsUrl(){return W.PULSE_API_URL},getUUID(){return crypto?.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/gu,t=>{const e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})},parseError(t){return typeof t=="string"?t:typeof t?.issues?.[0]?.message=="string"?t.issues[0].message:t instanceof Error?t.message:"Unknown error"},sortRequestedNetworks(t,e=[]){const s={};return e&&t&&(t.forEach((r,i)=>{s[r]=i}),e.sort((r,i)=>{const n=s[r.id],o=s[i.id];return n!==void 0&&o!==void 0?n-o:n!==void 0?-1:o!==void 0?1:0})),e},calculateBalance(t){let e=0;for(const s of t)e+=s.value??0;return e},formatTokenBalance(t){const e=t.toFixed(2),[s,r]=e.split(".");return{dollars:s,pennies:r}},isAddress(t,e="eip155"){switch(e){case"eip155":if(/^(?:0x)?[0-9a-f]{40}$/iu.test(t)){if(/^(?:0x)?[0-9a-f]{40}$/iu.test(t)||/^(?:0x)?[0-9A-F]{40}$/iu.test(t))return!0}else return!1;return!1;case"solana":return/[1-9A-HJ-NP-Za-km-z]{32,44}$/iu.test(t);default:return!1}},uniqueBy(t,e){const s=new Set;return t.filter(r=>{const i=r[e];return s.has(i)?!1:(s.add(i),!0)})},generateSdkVersion(t,e,s){const i=t.length===0?ve.ADAPTER_TYPES.UNIVERSAL:t.map(n=>n.adapterType).join(",");return`${e}-${i}-${s}`},createAccount(t,e,s,r,i){return{namespace:t,address:e,type:s,publicKey:r,path:i}},isCaipAddress(t){if(typeof t!="string")return!1;const e=t.split(":"),s=e[0];return e.filter(Boolean).length===3&&s in W.CHAIN_NAME_MAP},isMac(){const t=window?.navigator.userAgent.toLowerCase();return t.includes("macintosh")&&!t.includes("safari")},formatTelegramSocialLoginUrl(t){const e=`--${encodeURIComponent(window?.location.href)}`,s="state=";if(new URL(t).host==="auth.magic.link"){const i="provider_authorization_url=",n=t.substring(t.indexOf(i)+i.length),o=this.injectIntoUrl(decodeURIComponent(n),s,e);return t.replace(n,encodeURIComponent(o))}return this.injectIntoUrl(t,s,e)},injectIntoUrl(t,e,s){const r=t.indexOf(e);if(r===-1)throw new Error(`${e} parameter not found in the URL: ${t}`);const i=t.indexOf("&",r),n=e.length,o=i!==-1?i:t.length,a=t.substring(0,r+n),c=t.substring(r+n,o),l=t.substring(i),u=c+s;return a+u+l}};async function Zr(...t){const e=await fetch(...t);if(!e.ok)throw new Error(`HTTP status code: ${e.status}`,{cause:e});return e}class Ui{constructor({baseUrl:e,clientId:s}){this.baseUrl=e,this.clientId=s}async get({headers:e,signal:s,cache:r,...i}){const n=this.createUrl(i);return(await Zr(n,{method:"GET",headers:e,signal:s,cache:r})).json()}async getBlob({headers:e,signal:s,...r}){const i=this.createUrl(r);return(await Zr(i,{method:"GET",headers:e,signal:s})).blob()}async post({body:e,headers:s,signal:r,...i}){const n=this.createUrl(i);return(await Zr(n,{method:"POST",headers:s,body:e?JSON.stringify(e):void 0,signal:r})).json()}async put({body:e,headers:s,signal:r,...i}){const n=this.createUrl(i);return(await Zr(n,{method:"PUT",headers:s,body:e?JSON.stringify(e):void 0,signal:r})).json()}async delete({body:e,headers:s,signal:r,...i}){const n=this.createUrl(i);return(await Zr(n,{method:"DELETE",headers:s,body:e?JSON.stringify(e):void 0,signal:r})).json()}createUrl({path:e,params:s}){const r=new URL(e,this.baseUrl);return s&&Object.entries(s).forEach(([i,n])=>{n&&r.searchParams.append(i,n)}),this.clientId&&r.searchParams.append("clientId",this.clientId),r}}const Sd={getFeatureValue(t,e){const s=e?.[t];return s===void 0?ve.DEFAULT_FEATURES[t]:s},filterSocialsByPlatform(t){if(!t||!t.length)return t;if(X.isTelegram()){if(X.isIos())return t.filter(e=>e!=="google");if(X.isMac())return t.filter(e=>e!=="x");if(X.isAndroid())return t.filter(e=>!["facebook","x"].includes(e))}return t}},K=_e({features:ve.DEFAULT_FEATURES,projectId:"",sdkType:"appkit",sdkVersion:"html-wagmi-undefined",defaultAccountTypes:ve.DEFAULT_ACCOUNT_TYPES,enableNetworkSwitch:!0,experimental_preferUniversalLinks:!1,remoteFeatures:{}}),O={state:K,subscribeKey(t,e){return et(K,t,e)},setOptions(t){Object.assign(K,t)},setRemoteFeatures(t){if(!t)return;const e={...K.remoteFeatures,...t};K.remoteFeatures=e,K.remoteFeatures?.socials&&(K.remoteFeatures.socials=Sd.filterSocialsByPlatform(K.remoteFeatures.socials))},setFeatures(t){if(!t)return;K.features||(K.features=ve.DEFAULT_FEATURES);const e={...K.features,...t};K.features=e},setProjectId(t){K.projectId=t},setCustomRpcUrls(t){K.customRpcUrls=t},setAllWallets(t){K.allWallets=t},setIncludeWalletIds(t){K.includeWalletIds=t},setExcludeWalletIds(t){K.excludeWalletIds=t},setFeaturedWalletIds(t){K.featuredWalletIds=t},setTokens(t){K.tokens=t},setTermsConditionsUrl(t){K.termsConditionsUrl=t},setPrivacyPolicyUrl(t){K.privacyPolicyUrl=t},setCustomWallets(t){K.customWallets=t},setIsSiweEnabled(t){K.isSiweEnabled=t},setIsUniversalProvider(t){K.isUniversalProvider=t},setSdkVersion(t){K.sdkVersion=t},setMetadata(t){K.metadata=t},setDisableAppend(t){K.disableAppend=t},setEIP6963Enabled(t){K.enableEIP6963=t},setDebug(t){K.debug=t},setEnableWalletConnect(t){K.enableWalletConnect=t},setEnableWalletGuide(t){K.enableWalletGuide=t},setEnableAuthLogger(t){K.enableAuthLogger=t},setEnableWallets(t){K.enableWallets=t},setPreferUniversalLinks(t){K.experimental_preferUniversalLinks=t},setHasMultipleAddresses(t){K.hasMultipleAddresses=t},setSIWX(t){K.siwx=t},setConnectMethodsOrder(t){K.features={...K.features,connectMethodsOrder:t}},setWalletFeaturesOrder(t){K.features={...K.features,walletFeaturesOrder:t}},setSocialsOrder(t){K.remoteFeatures={...K.remoteFeatures,socials:t}},setCollapseWallets(t){K.features={...K.features,collapseWallets:t}},setEnableEmbedded(t){K.enableEmbedded=t},setAllowUnsupportedChain(t){K.allowUnsupportedChain=t},setManualWCControl(t){K.manualWCControl=t},setEnableNetworkSwitch(t){K.enableNetworkSwitch=t},setDefaultAccountTypes(t={}){Object.entries(t).forEach(([e,s])=>{s&&(K.defaultAccountTypes[e]=s)})},setUniversalProviderConfigOverride(t){K.universalProviderConfigOverride=t},getUniversalProviderConfigOverride(){return K.universalProviderConfigOverride},getSnapshot(){return Ii(K)}},Pd=Object.freeze({enabled:!0,events:[]}),kd=new Ui({baseUrl:X.getAnalyticsUrl(),clientId:null}),Od=5,Td=60*1e3,ds=_e({...Pd}),xd={state:ds,subscribeKey(t,e){return et(ds,t,e)},async sendError(t,e){if(!ds.enabled)return;const s=Date.now();if(ds.events.filter(n=>{const o=new Date(n.properties.timestamp||"").getTime();return s-o=Od)return;const i={type:"error",event:e,properties:{errorType:t.name,errorMessage:t.message,stackTrace:t.stack,timestamp:new Date().toISOString()}};ds.events.push(i);try{if(typeof window>"u")return;const{projectId:n,sdkType:o,sdkVersion:a}=O.state;await kd.post({path:"/e",params:{projectId:n,st:o,sv:a||"html-wagmi-4.2.2"},body:{eventId:X.getUUID(),url:window.location.href,domain:window.location.hostname,timestamp:new Date().toISOString(),props:{type:"error",event:e,errorType:t.name,errorMessage:t.message,stackTrace:t.stack}}})}catch{}},enable(){ds.enabled=!0},disable(){ds.enabled=!1},clearEvents(){ds.events=[]}};class $r extends Error{constructor(e,s,r){super(e),this.name="AppKitError",this.category=s,this.originalError=r,Object.setPrototypeOf(this,$r.prototype);let i=!1;if(r instanceof Error&&typeof r.stack=="string"&&r.stack){const n=r.stack,o=n.indexOf(`
-`);if(o>-1){const a=n.substring(o+1);this.stack=`${this.name}: ${this.message}
-${a}`,i=!0}}i||(Error.captureStackTrace?Error.captureStackTrace(this,$r):this.stack||(this.stack=`${this.name}: ${this.message}`))}}function Da(t,e){const s=t instanceof $r?t:new $r(t instanceof Error?t.message:String(t),e,t);throw xd.sendError(s,s.category),s}function Ct(t,e="INTERNAL_SDK_ERROR"){const s={};return Object.keys(t).forEach(r=>{const i=t[r];if(typeof i=="function"){let n=i;i.constructor.name==="AsyncFunction"?n=async(...o)=>{try{return await i(...o)}catch(a){return Da(a,e)}}:n=(...o)=>{try{return i(...o)}catch(a){return Da(a,e)}},s[r]=n}else s[r]=i}),s}const Vt={PHANTOM:{id:"a797aa35c0fadbfc1a53e7f675162ed5226968b44a19ee3d24385c64d1d3c393",url:"https://phantom.app"},SOLFLARE:{id:"1ca0bdd4747578705b1939af023d120677c64fe6ca76add81fda36e350605e79",url:"https://solflare.com"},COINBASE:{id:"fd20dc426fb37566d803205b19bbc1d4096b248ac04548e3cfb6b3a38bd033aa",url:"https://go.cb-w.com"}},$d={handleMobileDeeplinkRedirect(t,e){const s=window.location.href,r=encodeURIComponent(s);if(t===Vt.PHANTOM.id&&!("phantom"in window)){const i=s.startsWith("https")?"https":"http",n=s.split("/")[2],o=encodeURIComponent(`${i}://${n}`);window.location.href=`${Vt.PHANTOM.url}/ul/browse/${r}?ref=${o}`}t===Vt.SOLFLARE.id&&!("solflare"in window)&&(window.location.href=`${Vt.SOLFLARE.url}/ul/v1/browse/${r}?ref=${r}`),e===W.CHAIN.SOLANA&&t===Vt.COINBASE.id&&!("coinbaseSolana"in window)&&(window.location.href=`${Vt.COINBASE.url}/dapp?cb_url=${r}`)}},pt=_e({walletImages:{},networkImages:{},chainImages:{},connectorImages:{},tokenImages:{},currencyImages:{}}),Rd={state:pt,subscribeNetworkImages(t){return Qe(pt.networkImages,()=>t(pt.networkImages))},subscribeKey(t,e){return et(pt,t,e)},subscribe(t){return Qe(pt,()=>t(pt))},setWalletImage(t,e){pt.walletImages[t]=e},setNetworkImage(t,e){pt.networkImages[t]=e},setChainImage(t,e){pt.chainImages[t]=e},setConnectorImage(t,e){pt.connectorImages={...pt.connectorImages,[t]:e}},setTokenImage(t,e){pt.tokenImages[t]=e},setCurrencyImage(t,e){pt.currencyImages[t]=e}},Dt=Ct(Rd),Ud={eip155:"ba0ba0cd-17c6-4806-ad93-f9d174f17900",solana:"a1b58899-f671-4276-6a5e-56ca5bd59700",polkadot:"",bip122:"0b4838db-0161-4ffe-022d-532bf03dba00",cosmos:""},Wn=_e({networkImagePromises:{}}),Ql={async fetchWalletImage(t){if(t)return await V._fetchWalletImage(t),this.getWalletImageById(t)},async fetchNetworkImage(t){if(!t)return;const e=this.getNetworkImageById(t);return e||(Wn.networkImagePromises[t]||(Wn.networkImagePromises[t]=V._fetchNetworkImage(t)),await Wn.networkImagePromises[t],this.getNetworkImageById(t))},getWalletImageById(t){if(t)return Dt.state.walletImages[t]},getWalletImage(t){if(t?.image_url)return t?.image_url;if(t?.image_id)return Dt.state.walletImages[t.image_id]},getNetworkImage(t){if(t?.assets?.imageUrl)return t?.assets?.imageUrl;if(t?.assets?.imageId)return Dt.state.networkImages[t.assets.imageId]},getNetworkImageById(t){if(t)return Dt.state.networkImages[t]},getConnectorImage(t){if(t?.imageUrl)return t.imageUrl;if(t?.imageId)return Dt.state.connectorImages[t.imageId]},getChainImage(t){return Dt.state.networkImages[Ud[t]]}},ps=_e({message:"",variant:"info",open:!1}),Dd={state:ps,subscribeKey(t,e){return et(ps,t,e)},open(t,e){const{debug:s}=O.state,{shortMessage:r,longMessage:i}=t;s&&(ps.message=r,ps.variant=e,ps.open=!0),i&&console.error(typeof i=="function"?i():i)},close(){ps.open=!1,ps.message="",ps.variant="info"}},Ls=Ct(Dd),Ld=X.getAnalyticsUrl(),Md=new Ui({baseUrl:Ld,clientId:null}),Bd=["MODAL_CREATED"],Qt=_e({timestamp:Date.now(),reportedErrors:{},data:{type:"track",event:"MODAL_CREATED"}}),Pe={state:Qt,subscribe(t){return Qe(Qt,()=>t(Qt))},getSdkProperties(){const{projectId:t,sdkType:e,sdkVersion:s}=O.state;return{projectId:t,st:e,sv:s||"html-wagmi-4.2.2"}},async _sendAnalyticsEvent(t){try{const e=z.state.address;if(Bd.includes(t.data.event)||typeof window>"u")return;await Md.post({path:"/e",params:Pe.getSdkProperties(),body:{eventId:X.getUUID(),url:window.location.href,domain:window.location.hostname,timestamp:t.timestamp,props:{...t.data,address:e}}}),Qt.reportedErrors.FORBIDDEN=!1}catch(e){e instanceof Error&&e.cause instanceof Response&&e.cause.status===W.HTTP_STATUS_CODES.FORBIDDEN&&!Qt.reportedErrors.FORBIDDEN&&(Ls.open({shortMessage:"Invalid App Configuration",longMessage:`Origin ${ai()?window.origin:"uknown"} not found on Allowlist - update configuration on cloud.reown.com`},"error"),Qt.reportedErrors.FORBIDDEN=!0)}},sendEvent(t){Qt.timestamp=Date.now(),Qt.data=t,O.state.features?.analytics&&Pe._sendAnalyticsEvent(Qt)}},jd=X.getApiUrl(),it=new Ui({baseUrl:jd,clientId:null}),qd=40,La=4,Fd=20,te=_e({promises:{},page:1,count:0,featured:[],allFeatured:[],recommended:[],allRecommended:[],wallets:[],filteredWallets:[],search:[],isAnalyticsEnabled:!1,excludedWallets:[],isFetchingRecommendedWallets:!1}),V={state:te,subscribeKey(t,e){return et(te,t,e)},_getSdkProperties(){const{projectId:t,sdkType:e,sdkVersion:s}=O.state;return{projectId:t,st:e||"appkit",sv:s||"html-wagmi-4.2.2"}},_filterOutExtensions(t){return O.state.isUniversalProvider?t.filter(e=>!!(e.mobile_link||e.desktop_link||e.webapp_link)):t},async _fetchWalletImage(t){const e=`${it.baseUrl}/getWalletImage/${t}`,s=await it.getBlob({path:e,params:V._getSdkProperties()});Dt.setWalletImage(t,URL.createObjectURL(s))},async _fetchNetworkImage(t){const e=`${it.baseUrl}/public/getAssetImage/${t}`,s=await it.getBlob({path:e,params:V._getSdkProperties()});Dt.setNetworkImage(t,URL.createObjectURL(s))},async _fetchConnectorImage(t){const e=`${it.baseUrl}/public/getAssetImage/${t}`,s=await it.getBlob({path:e,params:V._getSdkProperties()});Dt.setConnectorImage(t,URL.createObjectURL(s))},async _fetchCurrencyImage(t){const e=`${it.baseUrl}/public/getCurrencyImage/${t}`,s=await it.getBlob({path:e,params:V._getSdkProperties()});Dt.setCurrencyImage(t,URL.createObjectURL(s))},async _fetchTokenImage(t){const e=`${it.baseUrl}/public/getTokenImage/${t}`,s=await it.getBlob({path:e,params:V._getSdkProperties()});Dt.setTokenImage(t,URL.createObjectURL(s))},_filterWalletsByPlatform(t){return X.isMobile()?t?.filter(s=>s.mobile_link||s.id===Vt.COINBASE.id?!0:g.state.activeChain==="solana"&&(s.id===Vt.SOLFLARE.id||s.id===Vt.PHANTOM.id)):t},async fetchProjectConfig(){return(await it.get({path:"/appkit/v1/config",params:V._getSdkProperties()})).features},async fetchAllowedOrigins(){try{const{allowedOrigins:t}=await it.get({path:"/projects/v1/origins",params:V._getSdkProperties()});return t}catch{return[]}},async fetchNetworkImages(){const e=g.getAllRequestedCaipNetworks()?.map(({assets:s})=>s?.imageId).filter(Boolean).filter(s=>!Ql.getNetworkImageById(s));e&&await Promise.allSettled(e.map(s=>V._fetchNetworkImage(s)))},async fetchConnectorImages(){const{connectors:t}=j.state,e=t.map(({imageId:s})=>s).filter(Boolean);await Promise.allSettled(e.map(s=>V._fetchConnectorImage(s)))},async fetchCurrencyImages(t=[]){await Promise.allSettled(t.map(e=>V._fetchCurrencyImage(e)))},async fetchTokenImages(t=[]){await Promise.allSettled(t.map(e=>V._fetchTokenImage(e)))},async fetchWallets(t){const e=t.exclude??[];V._getSdkProperties().sv.startsWith("html-core-")&&e.push(...Object.values(Vt).map(n=>n.id));const r=await it.get({path:"/getWallets",params:{...V._getSdkProperties(),...t,page:String(t.page),entries:String(t.entries),include:t.include?.join(","),exclude:e.join(",")}});return{data:V._filterWalletsByPlatform(r?.data)||[],count:r?.count}},async fetchFeaturedWallets(){const{featuredWalletIds:t}=O.state;if(t?.length){const e={...V._getSdkProperties(),page:1,entries:t?.length??La,include:t},{data:s}=await V.fetchWallets(e),r=[...s].sort((n,o)=>t.indexOf(n.id)-t.indexOf(o.id)),i=r.map(n=>n.image_id).filter(Boolean);await Promise.allSettled(i.map(n=>V._fetchWalletImage(n))),te.featured=r,te.allFeatured=r}},async fetchRecommendedWallets(){try{te.isFetchingRecommendedWallets=!0;const{includeWalletIds:t,excludeWalletIds:e,featuredWalletIds:s}=O.state,r=[...e??[],...s??[]].filter(Boolean),i=g.getRequestedCaipNetworkIds().join(","),n={page:1,entries:La,include:t,exclude:r,chains:i},{data:o,count:a}=await V.fetchWallets(n),c=F.getRecentWallets(),l=o.map(h=>h.image_id).filter(Boolean),u=c.map(h=>h.image_id).filter(Boolean);await Promise.allSettled([...l,...u].map(h=>V._fetchWalletImage(h))),te.recommended=o,te.allRecommended=o,te.count=a??0}catch{}finally{te.isFetchingRecommendedWallets=!1}},async fetchWalletsByPage({page:t}){const{includeWalletIds:e,excludeWalletIds:s,featuredWalletIds:r}=O.state,i=g.getRequestedCaipNetworkIds().join(","),n=[...te.recommended.map(({id:u})=>u),...s??[],...r??[]].filter(Boolean),o={page:t,entries:qd,include:e,exclude:n,chains:i},{data:a,count:c}=await V.fetchWallets(o),l=a.slice(0,Fd).map(u=>u.image_id).filter(Boolean);await Promise.allSettled(l.map(u=>V._fetchWalletImage(u))),te.wallets=X.uniqueBy([...te.wallets,...V._filterOutExtensions(a)],"id").filter(u=>u.chains?.some(h=>i.includes(h))),te.count=c>te.count?c:te.count,te.page=t},async initializeExcludedWallets({ids:t}){const e={page:1,entries:t.length,include:t},{data:s}=await V.fetchWallets(e);s&&s.forEach(r=>{te.excludedWallets.push({rdns:r.rdns,name:r.name})})},async searchWallet({search:t,badge:e}){const{includeWalletIds:s,excludeWalletIds:r}=O.state,i=g.getRequestedCaipNetworkIds().join(",");te.search=[];const n={page:1,entries:100,search:t?.trim(),badge_type:e,include:s,exclude:r,chains:i},{data:o}=await V.fetchWallets(n);Pe.sendEvent({type:"track",event:"SEARCH_WALLET",properties:{badge:e??"",search:t??""}});const a=o.map(c=>c.image_id).filter(Boolean);await Promise.allSettled([...a.map(c=>V._fetchWalletImage(c)),X.wait(300)]),te.search=V._filterOutExtensions(o)},initPromise(t,e){const s=te.promises[t];return s||(te.promises[t]=e())},prefetch({fetchConnectorImages:t=!0,fetchFeaturedWallets:e=!0,fetchRecommendedWallets:s=!0,fetchNetworkImages:r=!0}={}){const i=[t&&V.initPromise("connectorImages",V.fetchConnectorImages),e&&V.initPromise("featuredWallets",V.fetchFeaturedWallets),s&&V.initPromise("recommendedWallets",V.fetchRecommendedWallets),r&&V.initPromise("networkImages",V.fetchNetworkImages)].filter(Boolean);return Promise.allSettled(i)},prefetchAnalyticsConfig(){O.state.features?.analytics&&V.fetchAnalyticsConfig()},async fetchAnalyticsConfig(){try{const{isAnalyticsEnabled:t}=await it.get({path:"/getAnalyticsConfig",params:V._getSdkProperties()});O.setFeatures({analytics:t})}catch{O.setFeatures({analytics:!1})}},filterByNamespaces(t){if(!t?.length){te.featured=te.allFeatured,te.recommended=te.allRecommended;return}const e=g.getRequestedCaipNetworkIds().join(",");te.featured=te.allFeatured.filter(s=>s.chains?.some(r=>e.includes(r))),te.recommended=te.allRecommended.filter(s=>s.chains?.some(r=>e.includes(r))),te.filteredWallets=te.wallets.filter(s=>s.chains?.some(r=>e.includes(r)))},clearFilterByNamespaces(){te.filteredWallets=[]},setFilterByNamespace(t){if(!t){te.featured=te.allFeatured,te.recommended=te.allRecommended;return}const e=g.getRequestedCaipNetworkIds().join(",");te.featured=te.allFeatured.filter(s=>s.chains?.some(r=>e.includes(r))),te.recommended=te.allRecommended.filter(s=>s.chains?.some(r=>e.includes(r))),te.filteredWallets=te.wallets.filter(s=>s.chains?.some(r=>e.includes(r)))}},me=_e({view:"Connect",history:["Connect"],transactionStack:[]}),zd={state:me,subscribeKey(t,e){return et(me,t,e)},pushTransactionStack(t){me.transactionStack.push(t)},popTransactionStack(t){const e=me.transactionStack.pop();if(!e)return;const{onSuccess:s,onError:r,onCancel:i}=e;switch(t){case"success":s?.();break;case"error":r?.(),re.goBack();break;case"cancel":i?.(),re.goBack();break}},push(t,e){t!==me.view&&(me.view=t,me.history.push(t),me.data=e)},reset(t,e){me.view=t,me.history=[t],me.data=e},replace(t,e){me.history.at(-1)===t||(me.view=t,me.history[me.history.length-1]=t,me.data=e)},goBack(){const t=g.state.activeCaipAddress,e=re.state.view==="ConnectingFarcaster",s=!t&&e;if(me.history.length>1){me.history.pop();const[r]=me.history.slice(-1);r&&(t&&r==="Connect"?me.view="Account":me.view=r)}else We.close();me.data?.wallet&&(me.data.wallet=void 0),setTimeout(()=>{if(s){z.setFarcasterUrl(void 0,g.state.activeChain);const r=j.getAuthConnector();r?.provider?.reload();const i=Ii(O.state);r?.provider?.syncDappData?.({metadata:i.metadata,sdkVersion:i.sdkVersion,projectId:i.projectId,sdkType:i.sdkType})}},100)},goBackToIndex(t){if(me.history.length>1){me.history=me.history.slice(0,t+1);const[e]=me.history.slice(-1);e&&(me.view=e)}},goBackOrCloseModal(){re.state.history.length>1?re.goBack():We.close()}},re=Ct(zd),es=_e({themeMode:"dark",themeVariables:{},w3mThemeVariables:void 0}),No={state:es,subscribe(t){return Qe(es,()=>t(es))},setThemeMode(t){es.themeMode=t;try{const e=j.getAuthConnector();if(e){const s=No.getSnapshot().themeVariables;e.provider.syncTheme({themeMode:t,themeVariables:s,w3mThemeVariables:Es(s,t)})}}catch{console.info("Unable to sync theme to auth connector")}},setThemeVariables(t){es.themeVariables={...es.themeVariables,...t};try{const e=j.getAuthConnector();if(e){const s=No.getSnapshot().themeVariables;e.provider.syncTheme({themeVariables:s,w3mThemeVariables:Es(es.themeVariables,es.themeMode)})}}catch{console.info("Unable to sync theme to auth connector")}},getSnapshot(){return Ii(es)}},mt=Ct(No),eu={eip155:void 0,solana:void 0,polkadot:void 0,bip122:void 0,cosmos:void 0},ae=_e({allConnectors:[],connectors:[],activeConnector:void 0,filterByNamespace:void 0,activeConnectorIds:{...eu},filterByNamespaceMap:{eip155:!0,solana:!0,polkadot:!0,bip122:!0,cosmos:!0}}),Wd={state:ae,subscribe(t){return Qe(ae,()=>{t(ae)})},subscribeKey(t,e){return et(ae,t,e)},initialize(t){t.forEach(e=>{const s=F.getConnectedConnectorId(e);s&&j.setConnectorId(s,e)})},setActiveConnector(t){t&&(ae.activeConnector=Vs(t))},setConnectors(t){t.filter(i=>!ae.allConnectors.some(n=>n.id===i.id&&j.getConnectorName(n.name)===j.getConnectorName(i.name)&&n.chain===i.chain)).forEach(i=>{i.type!=="MULTI_CHAIN"&&ae.allConnectors.push(Vs(i))});const s=j.getEnabledNamespaces(),r=j.getEnabledConnectors(s);ae.connectors=j.mergeMultiChainConnectors(r)},filterByNamespaces(t){Object.keys(ae.filterByNamespaceMap).forEach(e=>{ae.filterByNamespaceMap[e]=!1}),t.forEach(e=>{ae.filterByNamespaceMap[e]=!0}),j.updateConnectorsForEnabledNamespaces()},filterByNamespace(t,e){ae.filterByNamespaceMap[t]=e,j.updateConnectorsForEnabledNamespaces()},updateConnectorsForEnabledNamespaces(){const t=j.getEnabledNamespaces(),e=j.getEnabledConnectors(t),s=j.areAllNamespacesEnabled();ae.connectors=j.mergeMultiChainConnectors(e),s?V.clearFilterByNamespaces():V.filterByNamespaces(t)},getEnabledNamespaces(){return Object.entries(ae.filterByNamespaceMap).filter(([t,e])=>e).map(([t])=>t)},getEnabledConnectors(t){return ae.allConnectors.filter(e=>t.includes(e.chain))},areAllNamespacesEnabled(){return Object.values(ae.filterByNamespaceMap).every(t=>t)},mergeMultiChainConnectors(t){const e=j.generateConnectorMapByName(t),s=[];return e.forEach(r=>{const i=r[0],n=i?.id===W.CONNECTOR_ID.AUTH;r.length>1&&i?s.push({name:i.name,imageUrl:i.imageUrl,imageId:i.imageId,connectors:[...r],type:n?"AUTH":"MULTI_CHAIN",chain:"eip155",id:i?.id||""}):i&&s.push(i)}),s},generateConnectorMapByName(t){const e=new Map;return t.forEach(s=>{const{name:r}=s,i=j.getConnectorName(r);if(!i)return;const n=e.get(i)||[];n.find(a=>a.chain===s.chain)||n.push(s),e.set(i,n)}),e},getConnectorName(t){return t&&({"Trust Wallet":"Trust"}[t]||t)},getUniqueConnectorsByName(t){const e=[];return t.forEach(s=>{e.find(r=>r.chain===s.chain)||e.push(s)}),e},addConnector(t){if(t.id===W.CONNECTOR_ID.AUTH){const e=t,s=Ii(O.state),r=mt.getSnapshot().themeMode,i=mt.getSnapshot().themeVariables;e?.provider?.syncDappData?.({metadata:s.metadata,sdkVersion:s.sdkVersion,projectId:s.projectId,sdkType:s.sdkType}),e?.provider?.syncTheme({themeMode:r,themeVariables:i,w3mThemeVariables:Es(i,r)}),j.setConnectors([t])}else j.setConnectors([t])},getAuthConnector(t){const e=t||g.state.activeChain,s=ae.connectors.find(r=>r.id===W.CONNECTOR_ID.AUTH);if(s)return s?.connectors?.length?s.connectors.find(i=>i.chain===e):s},getAnnouncedConnectorRdns(){return ae.connectors.filter(t=>t.type==="ANNOUNCED").map(t=>t.info?.rdns)},getConnectorById(t){return ae.allConnectors.find(e=>e.id===t)},getConnector(t,e){return ae.allConnectors.filter(r=>r.chain===g.state.activeChain).find(r=>r.explorerId===t||r.info?.rdns===e)},syncIfAuthConnector(t){if(t.id!=="ID_AUTH")return;const e=t,s=Ii(O.state),r=mt.getSnapshot().themeMode,i=mt.getSnapshot().themeVariables;e?.provider?.syncDappData?.({metadata:s.metadata,sdkVersion:s.sdkVersion,sdkType:s.sdkType,projectId:s.projectId}),e.provider.syncTheme({themeMode:r,themeVariables:i,w3mThemeVariables:Es(i,r)})},getConnectorsByNamespace(t){const e=ae.allConnectors.filter(s=>s.chain===t);return j.mergeMultiChainConnectors(e)},selectWalletConnector(t){const e=j.getConnector(t.id,t.rdns),s=g.state.activeChain;$d.handleMobileDeeplinkRedirect(e?.explorerId||t.id,s),e?re.push("ConnectingExternal",{connector:e}):re.push("ConnectingWalletConnect",{wallet:t})},getConnectors(t){return t?j.getConnectorsByNamespace(t):j.mergeMultiChainConnectors(ae.allConnectors)},setFilterByNamespace(t){ae.filterByNamespace=t,ae.connectors=j.getConnectors(t),V.setFilterByNamespace(t)},setConnectorId(t,e){t&&(ae.activeConnectorIds={...ae.activeConnectorIds,[e]:t},F.setConnectedConnectorId(e,t))},removeConnectorId(t){ae.activeConnectorIds={...ae.activeConnectorIds,[t]:void 0},F.deleteConnectedConnectorId(t)},getConnectorId(t){if(t)return ae.activeConnectorIds[t]},isConnected(t){return t?!!ae.activeConnectorIds[t]:Object.values(ae.activeConnectorIds).some(e=>!!e)},resetConnectorIds(){ae.activeConnectorIds={...eu}}},j=Ct(Wd),fi={ACCOUNT_TYPES:{SMART_ACCOUNT:"smartAccount"}},Us=Object.freeze({message:"",variant:"success",svg:void 0,open:!1,autoClose:!0}),Ue=_e({...Us}),Hd={state:Ue,subscribeKey(t,e){return et(Ue,t,e)},showLoading(t,e={}){this._showMessage({message:t,variant:"loading",...e})},showSuccess(t){this._showMessage({message:t,variant:"success"})},showSvg(t,e){this._showMessage({message:t,svg:e})},showError(t){const e=X.parseError(t);this._showMessage({message:e,variant:"error"})},hide(){Ue.message=Us.message,Ue.variant=Us.variant,Ue.svg=Us.svg,Ue.open=Us.open,Ue.autoClose=Us.autoClose},_showMessage({message:t,svg:e,variant:s="success",autoClose:r=Us.autoClose}){Ue.open?(Ue.open=!1,setTimeout(()=>{Ue.message=t,Ue.variant=s,Ue.svg=e,Ue.open=!0,Ue.autoClose=r},150)):(Ue.message=t,Ue.variant=s,Ue.svg=e,Ue.open=!0,Ue.autoClose=r)}},Lt=Hd,Ce=_e({transactions:[],coinbaseTransactions:{},transactionsByYear:{},lastNetworkInView:void 0,loading:!1,empty:!1,next:void 0}),Vd={state:Ce,subscribe(t){return Qe(Ce,()=>t(Ce))},setLastNetworkInView(t){Ce.lastNetworkInView=t},async fetchTransactions(t,e){if(!t)throw new Error("Transactions can't be fetched without an accountAddress");Ce.loading=!0;try{const s=await J.fetchTransactions({account:t,cursor:Ce.next,onramp:e,cache:e==="coinbase"?"no-cache":void 0,chainId:g.state.activeCaipNetwork?.caipNetworkId}),r=li.filterSpamTransactions(s.data),i=li.filterByConnectedChain(r),n=[...Ce.transactions,...i];Ce.loading=!1,e==="coinbase"?Ce.coinbaseTransactions=li.groupTransactionsByYearAndMonth(Ce.coinbaseTransactions,s.data):(Ce.transactions=n,Ce.transactionsByYear=li.groupTransactionsByYearAndMonth(Ce.transactionsByYear,i)),Ce.empty=n.length===0,Ce.next=s.next?s.next:void 0}catch{const r=g.state.activeChain;Pe.sendEvent({type:"track",event:"ERROR_FETCH_TRANSACTIONS",properties:{address:t,projectId:O.state.projectId,cursor:Ce.next,isSmartAccount:z.state.preferredAccountTypes?.[r]===fi.ACCOUNT_TYPES.SMART_ACCOUNT}}),Lt.showError("Failed to fetch transactions"),Ce.loading=!1,Ce.empty=!0,Ce.next=void 0}},groupTransactionsByYearAndMonth(t={},e=[]){const s=t;return e.forEach(r=>{const i=new Date(r.metadata.minedAt).getFullYear(),n=new Date(r.metadata.minedAt).getMonth(),o=s[i]??{},c=(o[n]??[]).filter(l=>l.id!==r.id);s[i]={...o,[n]:[...c,r].sort((l,u)=>new Date(u.metadata.minedAt).getTime()-new Date(l.metadata.minedAt).getTime())}}),s},filterSpamTransactions(t){return t.filter(e=>!e.transfers.every(r=>r.nft_info?.flags.is_spam===!0))},filterByConnectedChain(t){const e=g.state.activeCaipNetwork?.caipNetworkId;return t.filter(r=>r.metadata.chain===e)},clearCursor(){Ce.next=void 0},resetTransactions(){Ce.transactions=[],Ce.transactionsByYear={},Ce.lastNetworkInView=void 0,Ce.loading=!1,Ce.empty=!1,Ce.next=void 0}},li=Ct(Vd,"API_ERROR"),Ne=_e({connections:new Map,wcError:!1,buffering:!1,status:"disconnected"});let Ts;const Kd={state:Ne,subscribeKey(t,e){return et(Ne,t,e)},_getClient(){return Ne._client},setClient(t){Ne._client=Vs(t)},async connectWalletConnect(){if(X.isTelegram()||X.isSafari()&&X.isIos()){if(Ts){await Ts,Ts=void 0;return}if(!X.isPairingExpired(Ne?.wcPairingExpiry)){const t=Ne.wcUri;Ne.wcUri=t;return}Ts=Y._getClient()?.connectWalletConnect?.().catch(()=>{}),Y.state.status="connecting",await Ts,Ts=void 0,Ne.wcPairingExpiry=void 0,Y.state.status="connected"}else await Y._getClient()?.connectWalletConnect?.()},async connectExternal(t,e,s=!0){await Y._getClient()?.connectExternal?.(t),s&&g.setActiveNamespace(e)},async reconnectExternal(t){await Y._getClient()?.reconnectExternal?.(t);const e=t.chain||g.state.activeChain;e&&j.setConnectorId(t.id,e)},async setPreferredAccountType(t,e){We.setLoading(!0,g.state.activeChain);const s=j.getAuthConnector();s&&(z.setPreferredAccountType(t,e),await s.provider.setPreferredAccount(t),F.setPreferredAccountTypes(z.state.preferredAccountTypes??{[e]:t}),await Y.reconnectExternal(s),We.setLoading(!1,g.state.activeChain),Pe.sendEvent({type:"track",event:"SET_PREFERRED_ACCOUNT_TYPE",properties:{accountType:t,network:g.state.activeCaipNetwork?.caipNetworkId||""}}))},async signMessage(t){return Y._getClient()?.signMessage(t)},parseUnits(t,e){return Y._getClient()?.parseUnits(t,e)},formatUnits(t,e){return Y._getClient()?.formatUnits(t,e)},async sendTransaction(t){return Y._getClient()?.sendTransaction(t)},async getCapabilities(t){return Y._getClient()?.getCapabilities(t)},async grantPermissions(t){return Y._getClient()?.grantPermissions(t)},async walletGetAssets(t){return Y._getClient()?.walletGetAssets(t)??{}},async estimateGas(t){return Y._getClient()?.estimateGas(t)},async writeContract(t){return Y._getClient()?.writeContract(t)},async getEnsAddress(t){return Y._getClient()?.getEnsAddress(t)},async getEnsAvatar(t){return Y._getClient()?.getEnsAvatar(t)},checkInstalled(t){return Y._getClient()?.checkInstalled?.(t)||!1},resetWcConnection(){Ne.wcUri=void 0,Ne.wcPairingExpiry=void 0,Ne.wcLinking=void 0,Ne.recentWallet=void 0,Ne.status="disconnected",li.resetTransactions(),F.deleteWalletConnectDeepLink()},resetUri(){Ne.wcUri=void 0,Ne.wcPairingExpiry=void 0,Ts=void 0},finalizeWcConnection(){const{wcLinking:t,recentWallet:e}=Y.state;t&&F.setWalletConnectDeepLink(t),e&&F.setAppKitRecent(e),Pe.sendEvent({type:"track",event:"CONNECT_SUCCESS",properties:{method:t?"mobile":"qrcode",name:re.state.data?.wallet?.name||"Unknown"}})},setWcBasic(t){Ne.wcBasic=t},setUri(t){Ne.wcUri=t,Ne.wcPairingExpiry=X.getPairingExpiry()},setWcLinking(t){Ne.wcLinking=t},setWcError(t){Ne.wcError=t,Ne.buffering=!1},setRecentWallet(t){Ne.recentWallet=t},setBuffering(t){Ne.buffering=t},setStatus(t){Ne.status=t},async disconnect(t){try{await Y._getClient()?.disconnect(t)}catch(e){throw new $r("Failed to disconnect","INTERNAL_SDK_ERROR",e)}},setConnections(t,e){Ne.connections.set(e,t)},switchAccount({connection:t,address:e,namespace:s}){if(j.state.activeConnectorIds[s]===t.connectorId){const n=g.state.activeCaipNetwork;if(n){const o=`${s}:${n.id}:${e}`;z.setCaipAddress(o,s)}else console.warn(`No current network found for namespace "${s}"`)}else{const n=j.getConnector(t.connectorId);n?Y.connectExternal(n,s):console.warn(`No connector found for namespace "${s}"`)}}},Y=Ct(Kd),nr=_e({loading:!1,open:!1,selectedNetworkId:void 0,activeChain:void 0,initialized:!1}),Is={state:nr,subscribe(t){return Qe(nr,()=>t(nr))},subscribeOpen(t){return et(nr,"open",t)},set(t){Object.assign(nr,{...nr,...t})}},Hn={createBalance(t,e){const s={name:t.metadata.name||"",symbol:t.metadata.symbol||"",decimals:t.metadata.decimals||0,value:t.metadata.value||0,price:t.metadata.price||0,iconUrl:t.metadata.iconUrl||""};return{name:s.name,symbol:s.symbol,chainId:e,address:t.address==="native"?void 0:this.convertAddressToCAIP10Address(t.address,e),value:s.value,price:s.price,quantity:{decimals:s.decimals.toString(),numeric:this.convertHexToBalance({hex:t.balance,decimals:s.decimals})},iconUrl:s.iconUrl}},convertHexToBalance({hex:t,decimals:e}){return Vh(BigInt(t),e)},convertAddressToCAIP10Address(t,e){return`${e}:${t}`},createCAIP2ChainId(t,e){return`${e}:${parseInt(t,16)}`},getChainIdHexFromCAIP2ChainId(t){const e=t.split(":");if(e.length<2||!e[1])return"0x0";const s=e[1],r=parseInt(s,10);return isNaN(r)?"0x0":`0x${r.toString(16)}`},isWalletGetAssetsResponse(t){return typeof t!="object"||t===null?!1:Object.values(t).every(e=>Array.isArray(e)&&e.every(s=>this.isValidAsset(s)))},isValidAsset(t){return typeof t=="object"&&t!==null&&typeof t.address=="string"&&typeof t.balance=="string"&&(t.type==="ERC20"||t.type==="NATIVE")&&typeof t.metadata=="object"&&t.metadata!==null&&typeof t.metadata.name=="string"&&typeof t.metadata.symbol=="string"&&typeof t.metadata.decimals=="number"&&typeof t.metadata.price=="number"&&typeof t.metadata.iconUrl=="string"}},Ma={async getMyTokensWithBalance(t){const e=z.state.address,s=g.state.activeCaipNetwork;if(!e||!s)return[];if(s.chainNamespace==="eip155"){const i=await this.getEIP155Balances(e,s);if(i)return this.filterLowQualityTokens(i)}const r=await J.getBalance(e,s.caipNetworkId,t);return this.filterLowQualityTokens(r.balances)},async getEIP155Balances(t,e){try{const s=Hn.getChainIdHexFromCAIP2ChainId(e.caipNetworkId);if(!(await Y.getCapabilities(t))?.[s]?.assetDiscovery?.supported)return null;const i=await Y.walletGetAssets({account:t,chainFilter:[s]});return Hn.isWalletGetAssetsResponse(i)?(i[s]||[]).map(o=>Hn.createBalance(o,e.caipNetworkId)):null}catch{return null}},filterLowQualityTokens(t){return t.filter(e=>e.quantity.decimals!=="0")},mapBalancesToSwapTokens(t){return t?.map(e=>({...e,address:e?.address?e.address:g.getActiveNetworkTokenAddress(),decimals:parseInt(e.quantity.decimals,10),logoUri:e.iconUrl,eip2612:!1}))||[]}},fe=_e({tokenBalances:[],loading:!1}),Gd={state:fe,subscribe(t){return Qe(fe,()=>t(fe))},subscribeKey(t,e){return et(fe,t,e)},setToken(t){t&&(fe.token=Vs(t))},setTokenAmount(t){fe.sendTokenAmount=t},setReceiverAddress(t){fe.receiverAddress=t},setReceiverProfileImageUrl(t){fe.receiverProfileImageUrl=t},setReceiverProfileName(t){fe.receiverProfileName=t},setNetworkBalanceInUsd(t){fe.networkBalanceInUSD=t},setLoading(t){fe.loading=t},async sendToken(){try{switch(he.setLoading(!0),g.state.activeCaipNetwork?.chainNamespace){case"eip155":await he.sendEvmToken();return;case"solana":await he.sendSolanaToken();return;default:throw new Error("Unsupported chain")}}finally{he.setLoading(!1)}},async sendEvmToken(){const t=g.state.activeChain,e=z.state.preferredAccountTypes?.[t];if(!he.state.sendTokenAmount||!he.state.receiverAddress)throw new Error("An amount and receiver address are required");if(!he.state.token)throw new Error("A token is required");he.state.token?.address?(Pe.sendEvent({type:"track",event:"SEND_INITIATED",properties:{isSmartAccount:e===fi.ACCOUNT_TYPES.SMART_ACCOUNT,token:he.state.token.address,amount:he.state.sendTokenAmount,network:g.state.activeCaipNetwork?.caipNetworkId||""}}),await he.sendERC20Token({receiverAddress:he.state.receiverAddress,tokenAddress:he.state.token.address,sendTokenAmount:he.state.sendTokenAmount,decimals:he.state.token.quantity.decimals})):(Pe.sendEvent({type:"track",event:"SEND_INITIATED",properties:{isSmartAccount:e===fi.ACCOUNT_TYPES.SMART_ACCOUNT,token:he.state.token.symbol||"",amount:he.state.sendTokenAmount,network:g.state.activeCaipNetwork?.caipNetworkId||""}}),await he.sendNativeToken({receiverAddress:he.state.receiverAddress,sendTokenAmount:he.state.sendTokenAmount,decimals:he.state.token.quantity.decimals}))},async fetchTokenBalance(t){fe.loading=!0;const e=g.state.activeCaipNetwork?.caipNetworkId,s=g.state.activeCaipNetwork?.chainNamespace,r=g.state.activeCaipAddress,i=r?X.getPlainAddress(r):void 0;if(fe.lastRetry&&!X.isAllowedRetry(fe.lastRetry,30*ve.ONE_SEC_MS))return fe.loading=!1,[];try{if(i&&e&&s){const n=await Ma.getMyTokensWithBalance();return fe.tokenBalances=n,fe.lastRetry=void 0,n}}catch(n){fe.lastRetry=Date.now(),t?.(n),Lt.showError("Token Balance Unavailable")}finally{fe.loading=!1}return[]},fetchNetworkBalance(){if(fe.tokenBalances.length===0)return;const t=Ma.mapBalancesToSwapTokens(fe.tokenBalances);if(!t)return;const e=t.find(s=>s.address===g.getActiveNetworkTokenAddress());e&&(fe.networkBalanceInUSD=e?gd.multiply(e.quantity.numeric,e.price).toString():"0")},async sendNativeToken(t){re.pushTransactionStack({});const e=t.receiverAddress,s=z.state.address,r=Y.parseUnits(t.sendTokenAmount.toString(),Number(t.decimals));await Y.sendTransaction({chainNamespace:"eip155",to:e,address:s,data:"0x",value:r??BigInt(0)}),Pe.sendEvent({type:"track",event:"SEND_SUCCESS",properties:{isSmartAccount:z.state.preferredAccountTypes?.eip155===fi.ACCOUNT_TYPES.SMART_ACCOUNT,token:he.state.token?.symbol||"",amount:t.sendTokenAmount,network:g.state.activeCaipNetwork?.caipNetworkId||""}}),Y._getClient()?.updateBalance("eip155"),he.resetSend()},async sendERC20Token(t){re.pushTransactionStack({onSuccess(){re.replace("Account")}});const e=Y.parseUnits(t.sendTokenAmount.toString(),Number(t.decimals));if(z.state.address&&t.sendTokenAmount&&t.receiverAddress&&t.tokenAddress){const s=X.getPlainAddress(t.tokenAddress);await Y.writeContract({fromAddress:z.state.address,tokenAddress:s,args:[t.receiverAddress,e??BigInt(0)],method:"transfer",abi:bd.getERC20Abi(s),chainNamespace:"eip155"}),he.resetSend()}},async sendSolanaToken(){if(!he.state.sendTokenAmount||!he.state.receiverAddress)throw new Error("An amount and receiver address are required");re.pushTransactionStack({onSuccess(){re.replace("Account")}}),await Y.sendTransaction({chainNamespace:"solana",to:he.state.receiverAddress,value:he.state.sendTokenAmount}),Y._getClient()?.updateBalance("solana"),he.resetSend()},resetSend(){fe.token=void 0,fe.sendTokenAmount=void 0,fe.receiverAddress=void 0,fe.receiverProfileImageUrl=void 0,fe.receiverProfileName=void 0,fe.loading=!1,fe.tokenBalances=[]}},he=Ct(Gd),Vn={currentTab:0,tokenBalance:[],smartAccountDeployed:!1,addressLabels:new Map,allAccounts:[],user:void 0},Gi={caipNetwork:void 0,supportsAllNetworks:!0,smartAccountEnabledNetworks:[]},M=_e({chains:Ad(),activeCaipAddress:void 0,activeChain:void 0,activeCaipNetwork:void 0,noAdapters:!1,universalAdapter:{networkControllerClient:void 0,connectionControllerClient:void 0},isSwitchingNamespace:!1}),Jd={state:M,subscribe(t){return Qe(M,()=>{t(M)})},subscribeKey(t,e){return et(M,t,e)},subscribeChainProp(t,e,s){let r;return Qe(M.chains,()=>{const i=s||M.activeChain;if(i){const n=M.chains.get(i)?.[t];r!==n&&(r=n,e(n))}})},initialize(t,e,s){const{chainId:r,namespace:i}=F.getActiveNetworkProps(),n=e?.find(u=>u.id.toString()===r?.toString()),a=t.find(u=>u?.namespace===i)||t?.[0],c=t.map(u=>u.namespace).filter(u=>u!==void 0),l=O.state.enableEmbedded?new Set([...c]):new Set([...e?.map(u=>u.chainNamespace)??[]]);(t?.length===0||!a)&&(M.noAdapters=!0),M.noAdapters||(M.activeChain=a?.namespace,M.activeCaipNetwork=n,g.setChainNetworkData(a?.namespace,{caipNetwork:n}),M.activeChain&&Is.set({activeChain:a?.namespace})),l.forEach(u=>{const h=e?.filter(d=>d.chainNamespace===u);g.state.chains.set(u,{namespace:u,networkState:_e({...Gi,caipNetwork:h?.[0]}),accountState:_e(Vn),caipNetworks:h??[],...s}),g.setRequestedCaipNetworks(h??[],u)})},removeAdapter(t){if(M.activeChain===t){const e=Array.from(M.chains.entries()).find(([s])=>s!==t);if(e){const s=e[1]?.caipNetworks?.[0];s&&g.setActiveCaipNetwork(s)}}M.chains.delete(t)},addAdapter(t,{networkControllerClient:e,connectionControllerClient:s},r){M.chains.set(t.namespace,{namespace:t.namespace,networkState:{...Gi,caipNetwork:r[0]},accountState:Vn,caipNetworks:r,connectionControllerClient:s,networkControllerClient:e}),g.setRequestedCaipNetworks(r?.filter(i=>i.chainNamespace===t.namespace)??[],t.namespace)},addNetwork(t){const e=M.chains.get(t.chainNamespace);if(e){const s=[...e.caipNetworks||[]];e.caipNetworks?.find(r=>r.id===t.id)||s.push(t),M.chains.set(t.chainNamespace,{...e,caipNetworks:s}),g.setRequestedCaipNetworks(s,t.chainNamespace),j.filterByNamespace(t.chainNamespace,!0)}},removeNetwork(t,e){const s=M.chains.get(t);if(s){const r=M.activeCaipNetwork?.id===e,i=[...s.caipNetworks?.filter(n=>n.id!==e)||[]];r&&s?.caipNetworks?.[0]&&g.setActiveCaipNetwork(s.caipNetworks[0]),M.chains.set(t,{...s,caipNetworks:i}),g.setRequestedCaipNetworks(i||[],t),i.length===0&&j.filterByNamespace(t,!1)}},setAdapterNetworkState(t,e){const s=M.chains.get(t);s&&(s.networkState={...s.networkState||Gi,...e},M.chains.set(t,s))},setChainAccountData(t,e,s=!0){if(!t)throw new Error("Chain is required to update chain account data");const r=M.chains.get(t);if(r){const i={...r.accountState||Vn,...e};M.chains.set(t,{...r,accountState:i}),(M.chains.size===1||M.activeChain===t)&&(e.caipAddress&&(M.activeCaipAddress=e.caipAddress),z.replaceState(i))}},setChainNetworkData(t,e){if(!t)return;const s=M.chains.get(t);if(s){const r={...s.networkState||Gi,...e};M.chains.set(t,{...s,networkState:r})}},setAccountProp(t,e,s,r=!0){g.setChainAccountData(s,{[t]:e},r),t==="status"&&e==="disconnected"&&s&&j.removeConnectorId(s)},setActiveNamespace(t){M.activeChain=t;const e=t?M.chains.get(t):void 0,s=e?.networkState?.caipNetwork;s?.id&&t&&(M.activeCaipAddress=e?.accountState?.caipAddress,M.activeCaipNetwork=s,g.setChainNetworkData(t,{caipNetwork:s}),F.setActiveCaipNetworkId(s?.caipNetworkId),Is.set({activeChain:t,selectedNetworkId:s?.caipNetworkId}))},setActiveCaipNetwork(t){if(!t)return;M.activeChain!==t.chainNamespace&&g.setIsSwitchingNamespace(!0);const e=M.chains.get(t.chainNamespace);M.activeChain=t.chainNamespace,M.activeCaipNetwork=t,g.setChainNetworkData(t.chainNamespace,{caipNetwork:t}),e?.accountState?.address?M.activeCaipAddress=`${t.chainNamespace}:${t.id}:${e?.accountState?.address}`:M.activeCaipAddress=void 0,g.setAccountProp("caipAddress",M.activeCaipAddress,t.chainNamespace),e&&z.replaceState(e.accountState),he.resetSend(),Is.set({activeChain:M.activeChain,selectedNetworkId:M.activeCaipNetwork?.caipNetworkId}),F.setActiveCaipNetworkId(t.caipNetworkId),!g.checkIfSupportedNetwork(t.chainNamespace)&&O.state.enableNetworkSwitch&&!O.state.allowUnsupportedChain&&!Y.state.wcBasic&&g.showUnsupportedChainUI()},addCaipNetwork(t){if(!t)return;const e=M.chains.get(t.chainNamespace);e&&e?.caipNetworks?.push(t)},async switchActiveNamespace(t){if(!t)return;const e=t!==g.state.activeChain,s=g.getNetworkData(t)?.caipNetwork,r=g.getCaipNetworkByNamespace(t,s?.id);e&&r&&await g.switchActiveNetwork(r)},async switchActiveNetwork(t){const s=!g.state.chains.get(g.state.activeChain)?.caipNetworks?.some(i=>i.id===M.activeCaipNetwork?.id),r=g.getNetworkControllerClient(t.chainNamespace);if(r){try{await r.switchCaipNetwork(t),s&&We.close()}catch{re.goBack()}Pe.sendEvent({type:"track",event:"SWITCH_NETWORK",properties:{network:t.caipNetworkId}})}},getNetworkControllerClient(t){const e=t||M.activeChain,s=M.chains.get(e);if(!s)throw new Error("Chain adapter not found");if(!s.networkControllerClient)throw new Error("NetworkController client not set");return s.networkControllerClient},getConnectionControllerClient(t){const e=t||M.activeChain;if(!e)throw new Error("Chain is required to get connection controller client");const s=M.chains.get(e);if(!s?.connectionControllerClient)throw new Error("ConnectionController client not set");return s.connectionControllerClient},getAccountProp(t,e){let s=M.activeChain;if(e&&(s=e),!s)return;const r=M.chains.get(s)?.accountState;if(r)return r[t]},getNetworkProp(t,e){const s=M.chains.get(e)?.networkState;if(s)return s[t]},getRequestedCaipNetworks(t){const e=M.chains.get(t),{approvedCaipNetworkIds:s=[],requestedCaipNetworks:r=[]}=e?.networkState||{};return X.sortRequestedNetworks(s,r)},getAllRequestedCaipNetworks(){const t=[];return M.chains.forEach(e=>{const s=g.getRequestedCaipNetworks(e.namespace);t.push(...s)}),t},setRequestedCaipNetworks(t,e){g.setAdapterNetworkState(e,{requestedCaipNetworks:t});const r=g.getAllRequestedCaipNetworks().map(n=>n.chainNamespace),i=Array.from(new Set(r));j.filterByNamespaces(i)},getAllApprovedCaipNetworkIds(){const t=[];return M.chains.forEach(e=>{const s=g.getApprovedCaipNetworkIds(e.namespace);t.push(...s)}),t},getActiveCaipNetwork(){return M.activeCaipNetwork},getActiveCaipAddress(){return M.activeCaipAddress},getApprovedCaipNetworkIds(t){return M.chains.get(t)?.networkState?.approvedCaipNetworkIds||[]},async setApprovedCaipNetworksData(t){const s=await g.getNetworkControllerClient()?.getApprovedCaipNetworksData();g.setAdapterNetworkState(t,{approvedCaipNetworkIds:s?.approvedCaipNetworkIds,supportsAllNetworks:s?.supportsAllNetworks})},checkIfSupportedNetwork(t,e){const s=e||M.activeCaipNetwork,r=g.getRequestedCaipNetworks(t);return r.length?r?.some(i=>i.id===s?.id):!0},checkIfSupportedChainId(t){return M.activeChain?g.getRequestedCaipNetworks(M.activeChain)?.some(s=>s.id===t):!0},setSmartAccountEnabledNetworks(t,e){g.setAdapterNetworkState(e,{smartAccountEnabledNetworks:t})},checkIfSmartAccountEnabled(){const t=Jl.caipNetworkIdToNumber(M.activeCaipNetwork?.caipNetworkId),e=M.activeChain;return!e||!t?!1:!!g.getNetworkProp("smartAccountEnabledNetworks",e)?.includes(Number(t))},getActiveNetworkTokenAddress(){const t=M.activeCaipNetwork?.chainNamespace||"eip155",e=M.activeCaipNetwork?.id||1,s=ve.NATIVE_TOKEN_ADDRESS[t];return`${t}:${e}:${s}`},showUnsupportedChainUI(){We.open({view:"UnsupportedChain"})},checkIfNamesSupported(){const t=M.activeCaipNetwork;return!!(t?.chainNamespace&&ve.NAMES_SUPPORTED_CHAIN_NAMESPACES.includes(t.chainNamespace))},resetNetwork(t){g.setAdapterNetworkState(t,{approvedCaipNetworkIds:void 0,supportsAllNetworks:!0,smartAccountEnabledNetworks:[]})},resetAccount(t){const e=t;if(!e)throw new Error("Chain is required to set account prop");M.activeCaipAddress=void 0,g.setChainAccountData(e,{smartAccountDeployed:!1,currentTab:0,caipAddress:void 0,address:void 0,balance:void 0,balanceSymbol:void 0,profileName:void 0,profileImage:void 0,addressExplorerUrl:void 0,tokenBalance:[],connectedWalletInfo:void 0,preferredAccountTypes:void 0,socialProvider:void 0,socialWindow:void 0,farcasterUrl:void 0,allAccounts:[],user:void 0,status:"disconnected"}),j.removeConnectorId(e)},setIsSwitchingNamespace(t){M.isSwitchingNamespace=t},getFirstCaipNetworkSupportsAuthConnector(){const t=[];let e;if(M.chains.forEach(s=>{W.AUTH_CONNECTOR_SUPPORTED_CHAINS.find(r=>r===s.namespace)&&s.namespace&&t.push(s.namespace)}),t.length>0){const s=t[0];return e=s?M.chains.get(s)?.caipNetworks?.[0]:void 0,e}},getAccountData(t){return t?g.state.chains.get(t)?.accountState:z.state},getNetworkData(t){const e=t||M.activeChain;if(e)return g.state.chains.get(e)?.networkState},getCaipNetworkByNamespace(t,e){if(!t)return;const s=g.state.chains.get(t),r=s?.caipNetworks?.find(i=>i.id===e);return r||s?.networkState?.caipNetwork||s?.caipNetworks?.[0]},getRequestedCaipNetworkIds(){const t=j.state.filterByNamespace;return(t?[M.chains.get(t)]:Array.from(M.chains.values())).flatMap(s=>s?.caipNetworks||[]).map(s=>s.caipNetworkId)},getCaipNetworks(t){return t?g.getRequestedCaipNetworks(t):g.getAllRequestedCaipNetworks()}},g=Ct(Jd),Yd={purchaseCurrencies:[{id:"2b92315d-eab7-5bef-84fa-089a131333f5",name:"USD Coin",symbol:"USDC",networks:[{name:"ethereum-mainnet",display_name:"Ethereum",chain_id:"1",contract_address:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},{name:"polygon-mainnet",display_name:"Polygon",chain_id:"137",contract_address:"0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"}]},{id:"2b92315d-eab7-5bef-84fa-089a131333f5",name:"Ether",symbol:"ETH",networks:[{name:"ethereum-mainnet",display_name:"Ethereum",chain_id:"1",contract_address:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},{name:"polygon-mainnet",display_name:"Polygon",chain_id:"137",contract_address:"0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"}]}],paymentCurrencies:[{id:"USD",payment_method_limits:[{id:"card",min:"10.00",max:"7500.00"},{id:"ach_bank_account",min:"10.00",max:"25000.00"}]},{id:"EUR",payment_method_limits:[{id:"card",min:"10.00",max:"7500.00"},{id:"ach_bank_account",min:"10.00",max:"25000.00"}]}]},tu=X.getBlockchainApiUrl(),nt=_e({clientId:null,api:new Ui({baseUrl:tu,clientId:null}),supportedChains:{http:[],ws:[]}}),J={state:nt,async get(t){const{st:e,sv:s}=J.getSdkProperties(),r=O.state.projectId,i={...t.params||{},st:e,sv:s,projectId:r};return nt.api.get({...t,params:i})},getSdkProperties(){const{sdkType:t,sdkVersion:e}=O.state;return{st:t||"unknown",sv:e||"unknown"}},async isNetworkSupported(t){if(!t)return!1;try{nt.supportedChains.http.length||await J.getSupportedNetworks()}catch{return!1}return nt.supportedChains.http.includes(t)},async getSupportedNetworks(){try{const t=await J.get({path:"v1/supported-chains"});return nt.supportedChains=t,t}catch{return nt.supportedChains}},async fetchIdentity({address:t,caipNetworkId:e}){if(!await J.isNetworkSupported(e))return{avatar:"",name:""};const r=F.getIdentityFromCacheForAddress(t);if(r)return r;const i=await J.get({path:`/v1/identity/${t}`,params:{sender:g.state.activeCaipAddress?X.getPlainAddress(g.state.activeCaipAddress):void 0}});return F.updateIdentityCache({address:t,identity:i,timestamp:Date.now()}),i},async fetchTransactions({account:t,cursor:e,onramp:s,signal:r,cache:i,chainId:n}){return await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId)?J.get({path:`/v1/account/${t}/history`,params:{cursor:e,onramp:s,chainId:n},signal:r,cache:i}):{data:[],next:void 0}},async fetchSwapQuote({amount:t,userAddress:e,from:s,to:r,gasPrice:i}){return await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId)?J.get({path:"/v1/convert/quotes",headers:{"Content-Type":"application/json"},params:{amount:t,userAddress:e,from:s,to:r,gasPrice:i}}):{quotes:[]}},async fetchSwapTokens({chainId:t}){return await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId)?J.get({path:"/v1/convert/tokens",params:{chainId:t}}):{tokens:[]}},async fetchTokenPrice({addresses:t}){return await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId)?nt.api.post({path:"/v1/fungible/price",body:{currency:"usd",addresses:t,projectId:O.state.projectId},headers:{"Content-Type":"application/json"}}):{fungibles:[]}},async fetchSwapAllowance({tokenAddress:t,userAddress:e}){return await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId)?J.get({path:"/v1/convert/allowance",params:{tokenAddress:t,userAddress:e},headers:{"Content-Type":"application/json"}}):{allowance:"0"}},async fetchGasPrice({chainId:t}){const{st:e,sv:s}=J.getSdkProperties();if(!await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId))throw new Error("Network not supported for Gas Price");return J.get({path:"/v1/convert/gas-price",headers:{"Content-Type":"application/json"},params:{chainId:t,st:e,sv:s}})},async generateSwapCalldata({amount:t,from:e,to:s,userAddress:r,disableEstimate:i}){if(!await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId))throw new Error("Network not supported for Swaps");return nt.api.post({path:"/v1/convert/build-transaction",headers:{"Content-Type":"application/json"},body:{amount:t,eip155:{slippage:ve.CONVERT_SLIPPAGE_TOLERANCE},projectId:O.state.projectId,from:e,to:s,userAddress:r,disableEstimate:i}})},async generateApproveCalldata({from:t,to:e,userAddress:s}){const{st:r,sv:i}=J.getSdkProperties();if(!await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId))throw new Error("Network not supported for Swaps");return J.get({path:"/v1/convert/build-approve",headers:{"Content-Type":"application/json"},params:{userAddress:s,from:t,to:e,st:r,sv:i}})},async getBalance(t,e,s){const{st:r,sv:i}=J.getSdkProperties();if(!await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId))return Lt.showError("Token Balance Unavailable"),{balances:[]};const o=`${e}:${t}`,a=F.getBalanceCacheForCaipAddress(o);if(a)return a;const c=await J.get({path:`/v1/account/${t}/balance`,params:{currency:"usd",chainId:e,forceUpdate:s,st:r,sv:i}});return F.updateBalanceCache({caipAddress:o,balance:c,timestamp:Date.now()}),c},async lookupEnsName(t){return await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId)?J.get({path:`/v1/profile/account/${t}`,params:{apiVersion:"2"}}):{addresses:{},attributes:[]}},async reverseLookupEnsName({address:t}){return await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId)?J.get({path:`/v1/profile/reverse/${t}`,params:{sender:z.state.address,apiVersion:"2"}}):[]},async getEnsNameSuggestions(t){return await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId)?J.get({path:`/v1/profile/suggestions/${t}`,params:{zone:"reown.id"}}):{suggestions:[]}},async registerEnsName({coinType:t,address:e,message:s,signature:r}){return await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId)?nt.api.post({path:"/v1/profile/account",body:{coin_type:t,address:e,message:s,signature:r},headers:{"Content-Type":"application/json"}}):{success:!1}},async generateOnRampURL({destinationWallets:t,partnerUserId:e,defaultNetwork:s,purchaseAmount:r,paymentAmount:i}){return await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId)?(await nt.api.post({path:"/v1/generators/onrampurl",params:{projectId:O.state.projectId},body:{destinationWallets:t,defaultNetwork:s,partnerUserId:e,defaultExperience:"buy",presetCryptoAmount:r,presetFiatAmount:i}})).url:""},async getOnrampOptions(){if(!await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId))return{paymentCurrencies:[],purchaseCurrencies:[]};try{return await J.get({path:"/v1/onramp/options"})}catch{return Yd}},async getOnrampQuote({purchaseCurrency:t,paymentCurrency:e,amount:s,network:r}){try{return await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId)?await nt.api.post({path:"/v1/onramp/quote",params:{projectId:O.state.projectId},body:{purchaseCurrency:t,paymentCurrency:e,amount:s,network:r}}):null}catch{return{coinbaseFee:{amount:s,currency:e.id},networkFee:{amount:s,currency:e.id},paymentSubtotal:{amount:s,currency:e.id},paymentTotal:{amount:s,currency:e.id},purchaseAmount:{amount:s,currency:e.id},quoteId:"mocked-quote-id"}}},async getSmartSessions(t){return await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId)?J.get({path:`/v1/sessions/${t}`}):[]},async revokeSmartSession(t,e,s){return await J.isNetworkSupported(g.state.activeCaipNetwork?.caipNetworkId)?nt.api.post({path:`/v1/sessions/${t}/revoke`,params:{projectId:O.state.projectId},body:{pci:e,signature:s}}):{success:!1}},setClientId(t){nt.clientId=t,nt.api=new Ui({baseUrl:tu,clientId:t})}},It=_e({currentTab:0,tokenBalance:[],smartAccountDeployed:!1,addressLabels:new Map,allAccounts:[]}),Xd={state:It,replaceState(t){t&&Object.assign(It,Vs(t))},subscribe(t){return g.subscribeChainProp("accountState",e=>{if(e)return t(e)})},subscribeKey(t,e,s){let r;return g.subscribeChainProp("accountState",i=>{if(i){const n=i[t];r!==n&&(r=n,e(n))}},s)},setStatus(t,e){g.setAccountProp("status",t,e)},getCaipAddress(t){return g.getAccountProp("caipAddress",t)},setCaipAddress(t,e){const s=t?X.getPlainAddress(t):void 0;e===g.state.activeChain&&(g.state.activeCaipAddress=t),g.setAccountProp("caipAddress",t,e),g.setAccountProp("address",s,e)},setBalance(t,e,s){g.setAccountProp("balance",t,s),g.setAccountProp("balanceSymbol",e,s)},setProfileName(t,e){g.setAccountProp("profileName",t,e)},setProfileImage(t,e){g.setAccountProp("profileImage",t,e)},setUser(t,e){g.setAccountProp("user",t,e)},setAddressExplorerUrl(t,e){g.setAccountProp("addressExplorerUrl",t,e)},setSmartAccountDeployed(t,e){g.setAccountProp("smartAccountDeployed",t,e)},setCurrentTab(t){g.setAccountProp("currentTab",t,g.state.activeChain)},setTokenBalance(t,e){t&&g.setAccountProp("tokenBalance",t,e)},setShouldUpdateToAddress(t,e){g.setAccountProp("shouldUpdateToAddress",t,e)},setAllAccounts(t,e){g.setAccountProp("allAccounts",t,e)},addAddressLabel(t,e,s){const r=g.getAccountProp("addressLabels",s)||new Map;r.set(t,e),g.setAccountProp("addressLabels",r,s)},removeAddressLabel(t,e){const s=g.getAccountProp("addressLabels",e)||new Map;s.delete(t),g.setAccountProp("addressLabels",s,e)},setConnectedWalletInfo(t,e){g.setAccountProp("connectedWalletInfo",t,e,!1)},setPreferredAccountType(t,e){g.setAccountProp("preferredAccountTypes",{...It.preferredAccountTypes,[e]:t},e)},setPreferredAccountTypes(t){It.preferredAccountTypes=t},setSocialProvider(t,e){t&&g.setAccountProp("socialProvider",t,e)},setSocialWindow(t,e){g.setAccountProp("socialWindow",t?Vs(t):void 0,e)},setFarcasterUrl(t,e){g.setAccountProp("farcasterUrl",t,e)},async fetchTokenBalance(t){It.balanceLoading=!0;const e=g.state.activeCaipNetwork?.caipNetworkId,s=g.state.activeCaipNetwork?.chainNamespace,r=g.state.activeCaipAddress,i=r?X.getPlainAddress(r):void 0;if(It.lastRetry&&!X.isAllowedRetry(It.lastRetry,30*ve.ONE_SEC_MS))return It.balanceLoading=!1,[];try{if(i&&e&&s){const o=(await J.getBalance(i,e)).balances.filter(a=>a.quantity.decimals!=="0");return z.setTokenBalance(o,s),It.lastRetry=void 0,It.balanceLoading=!1,o}}catch(n){It.lastRetry=Date.now(),t?.(n),Lt.showError("Token Balance Unavailable")}finally{It.balanceLoading=!1}return[]},resetAccount(t){g.resetAccount(t)}},z=Ct(Xd),Zd={onSwitchNetwork({network:t,ignoreSwitchConfirmation:e=!1}){const s=g.state.activeCaipNetwork,r=re.state.data;if(t.id===s?.id)return;const n=z.getCaipAddress(g.state.activeChain),o=t.chainNamespace!==g.state.activeChain,a=z.getCaipAddress(t.chainNamespace),l=j.getConnectorId(g.state.activeChain)===W.CONNECTOR_ID.AUTH,u=W.AUTH_CONNECTOR_SUPPORTED_CHAINS.find(h=>h===t.chainNamespace);e||l&&u?re.push("SwitchNetwork",{...r,network:t}):n&&o&&!a?re.push("SwitchActiveChain",{switchToChain:t.chainNamespace,navigateTo:"Connect",navigateWithReplace:!0,network:t}):re.push("SwitchNetwork",{...r,network:t})}},ot=_e({loading:!1,loadingNamespaceMap:new Map,open:!1,shake:!1,namespace:void 0}),Qd={state:ot,subscribe(t){return Qe(ot,()=>t(ot))},subscribeKey(t,e){return et(ot,t,e)},async open(t){const e=z.state.status==="connected",s=t?.namespace,r=g.state.activeChain,i=s&&s!==r,n=g.getAccountData(t?.namespace)?.caipAddress;if(Y.state.wcBasic?V.prefetch({fetchNetworkImages:!1,fetchConnectorImages:!1}):await V.prefetch({fetchConnectorImages:!e,fetchFeaturedWallets:!e,fetchRecommendedWallets:!e}),j.setFilterByNamespace(t?.namespace),We.setLoading(!0,s),s&&i){const o=g.getNetworkData(s)?.caipNetwork||g.getRequestedCaipNetworks(s)[0];o&&Zd.onSwitchNetwork({network:o,ignoreSwitchConfirmation:!0})}else{const o=g.state.noAdapters;O.state.manualWCControl||o&&!n?X.isMobile()?re.reset("AllWallets"):re.reset("ConnectingWalletConnectBasic"):t?.view?re.reset(t.view,t.data):n?re.reset("Account"):re.reset("Connect")}ot.open=!0,Is.set({open:!0}),Pe.sendEvent({type:"track",event:"MODAL_OPEN",properties:{connected:!!n}})},close(){const t=O.state.enableEmbedded,e=!!g.state.activeCaipAddress;ot.open&&Pe.sendEvent({type:"track",event:"MODAL_CLOSE",properties:{connected:e}}),ot.open=!1,re.reset("Connect"),We.clearLoading(),t?e?re.replace("Account"):re.push("Connect"):Is.set({open:!1}),Y.resetUri()},setLoading(t,e){e&&ot.loadingNamespaceMap.set(e,t),ot.loading=t,Is.set({loading:t})},clearLoading(){ot.loadingNamespaceMap.clear(),ot.loading=!1},shake(){ot.shake||(ot.shake=!0,setTimeout(()=>{ot.shake=!1},500))}},We=Ct(Qd),gi={id:"2b92315d-eab7-5bef-84fa-089a131333f5",name:"USD Coin",symbol:"USDC",networks:[{name:"ethereum-mainnet",display_name:"Ethereum",chain_id:"1",contract_address:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},{name:"polygon-mainnet",display_name:"Polygon",chain_id:"137",contract_address:"0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"}]},Ao={id:"USD",payment_method_limits:[{id:"card",min:"10.00",max:"7500.00"},{id:"ach_bank_account",min:"10.00",max:"25000.00"}]},ep={providers:Zl,selectedProvider:null,error:null,purchaseCurrency:gi,paymentCurrency:Ao,purchaseCurrencies:[gi],paymentCurrencies:[],quotesLoading:!1},oe=_e(ep),tp={state:oe,subscribe(t){return Qe(oe,()=>t(oe))},subscribeKey(t,e){return et(oe,t,e)},setSelectedProvider(t){if(t&&t.name==="meld"){const e=g.state.activeChain===W.CHAIN.SOLANA?"SOL":"USDC",s=z.state.address??"",r=new URL(t.url);r.searchParams.append("publicKey",_d),r.searchParams.append("destinationCurrencyCode",e),r.searchParams.append("walletAddress",s),r.searchParams.append("externalCustomerId",O.state.projectId),oe.selectedProvider={...t,url:r.toString()}}else oe.selectedProvider=t},setOnrampProviders(t){if(Array.isArray(t)&&t.every(e=>typeof e=="string")){const e=t,s=Zl.filter(r=>e.includes(r.name));oe.providers=s}else oe.providers=[]},setPurchaseCurrency(t){oe.purchaseCurrency=t},setPaymentCurrency(t){oe.paymentCurrency=t},setPurchaseAmount(t){_o.state.purchaseAmount=t},setPaymentAmount(t){_o.state.paymentAmount=t},async getAvailableCurrencies(){const t=await J.getOnrampOptions();oe.purchaseCurrencies=t.purchaseCurrencies,oe.paymentCurrencies=t.paymentCurrencies,oe.paymentCurrency=t.paymentCurrencies[0]||Ao,oe.purchaseCurrency=t.purchaseCurrencies[0]||gi,await V.fetchCurrencyImages(t.paymentCurrencies.map(e=>e.id)),await V.fetchTokenImages(t.purchaseCurrencies.map(e=>e.symbol))},async getQuote(){oe.quotesLoading=!0;try{const t=await J.getOnrampQuote({purchaseCurrency:oe.purchaseCurrency,paymentCurrency:oe.paymentCurrency,amount:oe.paymentAmount?.toString()||"0",network:oe.purchaseCurrency?.symbol});return oe.quotesLoading=!1,oe.purchaseAmount=Number(t?.purchaseAmount.amount),t}catch(t){return oe.error=t.message,oe.quotesLoading=!1,null}finally{oe.quotesLoading=!1}},resetState(){oe.selectedProvider=null,oe.error=null,oe.purchaseCurrency=gi,oe.paymentCurrency=Ao,oe.purchaseCurrencies=[gi],oe.paymentCurrencies=[],oe.paymentAmount=void 0,oe.purchaseAmount=void 0,oe.quotesLoading=!1}},_o=Ct(tp),Ba=2147483648,sp={convertEVMChainIdToCoinType(t){if(t>=Ba)throw new Error("Invalid chainId");return(Ba|t)>>>0}},Nt=_e({suggestions:[],loading:!1}),rp={state:Nt,subscribe(t){return Qe(Nt,()=>t(Nt))},subscribeKey(t,e){return et(Nt,t,e)},async resolveName(t){try{return await J.lookupEnsName(t)}catch(e){const s=e;throw new Error(s?.reasons?.[0]?.description||"Error resolving name")}},async isNameRegistered(t){try{return await J.lookupEnsName(t),!0}catch{return!1}},async getSuggestions(t){try{Nt.loading=!0,Nt.suggestions=[];const e=await J.getEnsNameSuggestions(t);return Nt.suggestions=e.suggestions.map(s=>({...s,name:s.name}))||[],Nt.suggestions}catch(e){const s=mi.parseEnsApiError(e,"Error fetching name suggestions");throw new Error(s)}finally{Nt.loading=!1}},async getNamesForAddress(t){try{if(!g.state.activeCaipNetwork)return[];const s=F.getEnsFromCacheForAddress(t);if(s)return s;const r=await J.reverseLookupEnsName({address:t});return F.updateEnsCache({address:t,ens:r,timestamp:Date.now()}),r}catch(e){const s=mi.parseEnsApiError(e,"Error fetching names for address");throw new Error(s)}},async registerName(t){const e=g.state.activeCaipNetwork;if(!e)throw new Error("Network not found");const s=z.state.address,r=j.getAuthConnector();if(!s||!r)throw new Error("Address or auth connector not found");Nt.loading=!0;try{const i=JSON.stringify({name:t,attributes:{},timestamp:Math.floor(Date.now()/1e3)});re.pushTransactionStack({onCancel(){re.replace("RegisterAccountName")}});const n=await Y.signMessage(i);Nt.loading=!1;const o=e.id;if(!o)throw new Error("Network not found");const a=sp.convertEVMChainIdToCoinType(Number(o));await J.registerEnsName({coinType:a,address:s,signature:n,message:i}),z.setProfileName(t,e.chainNamespace),re.replace("RegisterAccountNameSuccess")}catch(i){const n=mi.parseEnsApiError(i,`Error registering name ${t}`);throw re.replace("RegisterAccountName"),new Error(n)}finally{Nt.loading=!1}},validateName(t){return/^[a-zA-Z0-9-]{4,}$/u.test(t)},parseEnsApiError(t,e){return t?.reasons?.[0]?.description||e}},mi=Ct(rp),wi={getSIWX(){return O.state.siwx},async initializeIfEnabled(){const t=O.state.siwx,e=g.getActiveCaipAddress();if(!(t&&e))return;const[s,r,i]=e.split(":");if(g.checkIfSupportedNetwork(s))try{if((await t.getSessions(`${s}:${r}`,i)).length)return;await We.open({view:"SIWXSignMessage"})}catch(n){console.error("SIWXUtil:initializeIfEnabled",n),Pe.sendEvent({type:"track",event:"SIWX_AUTH_ERROR",properties:this.getSIWXEventProperties()}),await Y._getClient()?.disconnect().catch(console.error),re.reset("Connect"),Lt.showError("A problem occurred while trying initialize authentication")}},async requestSignMessage(){const t=O.state.siwx,e=X.getPlainAddress(g.getActiveCaipAddress()),s=g.getActiveCaipNetwork(),r=Y._getClient();if(!t)throw new Error("SIWX is not enabled");if(!e)throw new Error("No ActiveCaipAddress found");if(!s)throw new Error("No ActiveCaipNetwork or client found");if(!r)throw new Error("No ConnectionController client found");try{const i=await t.createMessage({chainId:s.caipNetworkId,accountAddress:e}),n=i.toString();j.getConnectorId(s.chainNamespace)===W.CONNECTOR_ID.AUTH&&re.pushTransactionStack({});const a=await r.signMessage(n);await t.addSession({data:i,message:n,signature:a}),We.close(),Pe.sendEvent({type:"track",event:"SIWX_AUTH_SUCCESS",properties:this.getSIWXEventProperties()})}catch(i){const n=this.getSIWXEventProperties();(!We.state.open||re.state.view==="ApproveTransaction")&&await We.open({view:"SIWXSignMessage"}),n.isSmartAccount?Lt.showError("This application might not support Smart Accounts"):Lt.showError("Signature declined"),Pe.sendEvent({type:"track",event:"SIWX_AUTH_ERROR",properties:n}),console.error("SWIXUtil:requestSignMessage",i)}},async cancelSignMessage(){try{this.getSIWX()?.getRequired?.()?await Y.disconnect():We.close(),re.reset("Connect"),Pe.sendEvent({event:"CLICK_CANCEL_SIWX",type:"track",properties:this.getSIWXEventProperties()})}catch(t){console.error("SIWXUtil:cancelSignMessage",t)}},async getSessions(){const t=O.state.siwx,e=X.getPlainAddress(g.getActiveCaipAddress()),s=g.getActiveCaipNetwork();return t&&e&&s?t.getSessions(s.caipNetworkId,e):[]},async isSIWXCloseDisabled(){const t=this.getSIWX();if(t){const e=re.state.view==="ApproveTransaction",s=re.state.view==="SIWXSignMessage";if(e||s)return t.getRequired?.()&&(await this.getSessions()).length===0}return!1},async universalProviderAuthenticate({universalProvider:t,chains:e,methods:s}){const r=wi.getSIWX(),i=new Set(e.map(a=>a.split(":")[0]));if(!r||i.size!==1||!i.has("eip155"))return!1;const n=await r.createMessage({chainId:g.getActiveCaipNetwork()?.caipNetworkId||"",accountAddress:""}),o=await t.authenticate({nonce:n.nonce,domain:n.domain,uri:n.uri,exp:n.expirationTime,iat:n.issuedAt,nbf:n.notBefore,requestId:n.requestId,version:n.version,resources:n.resources,statement:n.statement,chainId:n.chainId,methods:s,chains:[n.chainId,...e.filter(a=>a!==n.chainId)]});if(Lt.showLoading("Authenticating...",{autoClose:!1}),z.setConnectedWalletInfo({...o.session.peer.metadata,name:o.session.peer.metadata.name,icon:o.session.peer.metadata.icons?.[0],type:"WALLET_CONNECT"},Array.from(i)[0]),o?.auths?.length){const a=o.auths.map(c=>{const l=t.client.formatAuthMessage({request:c.p,iss:c.p.iss});return{data:{...c.p,accountAddress:c.p.iss.split(":").slice(-1).join(""),chainId:c.p.iss.split(":").slice(2,4).join(":"),uri:c.p.aud,version:c.p.version||n.version,expirationTime:c.p.exp,issuedAt:c.p.iat,notBefore:c.p.nbf},message:l,signature:c.s.s,cacao:c}});try{await r.setSessions(a),Pe.sendEvent({type:"track",event:"SIWX_AUTH_SUCCESS",properties:wi.getSIWXEventProperties()})}catch(c){throw console.error("SIWX:universalProviderAuth - failed to set sessions",c),Pe.sendEvent({type:"track",event:"SIWX_AUTH_ERROR",properties:wi.getSIWXEventProperties()}),await t.disconnect().catch(console.error),c}finally{Lt.hide()}}return!0},getSIWXEventProperties(){const t=g.state.activeChain;return{network:g.state.activeCaipNetwork?.caipNetworkId||"",isSmartAccount:z.state.preferredAccountTypes?.[t]===fi.ACCOUNT_TYPES.SMART_ACCOUNT}},async clearSessions(){const t=this.getSIWX();t&&await t.setSessions([])}};function ip(t){return!t||typeof t.then!="function"?Promise.resolve(t):t}function je(t,...e){try{return ip(t(...e))}catch(s){return Promise.reject(s)}}function np(t){const e=typeof t;return t===null||e!=="object"&&e!=="function"}function op(t){const e=Object.getPrototypeOf(t);return!e||e.isPrototypeOf(Object)}function ln(t){if(np(t))return String(t);if(op(t)||Array.isArray(t))return JSON.stringify(t);if(typeof t.toJSON=="function")return ln(t.toJSON());throw new Error("[unstorage] Cannot stringify value!")}const So="base64:";function ap(t){return typeof t=="string"?t:So+up(t)}function cp(t){return typeof t!="string"||!t.startsWith(So)?t:lp(t.slice(So.length))}function lp(t){return globalThis.Buffer?Buffer.from(t,"base64"):Uint8Array.from(globalThis.atob(t),e=>e.codePointAt(0))}function up(t){return globalThis.Buffer?Buffer.from(t).toString("base64"):globalThis.btoa(String.fromCodePoint(...t))}function lt(t){return t&&t.split("?")[0]?.replace(/[/\\]/g,":").replace(/:+/g,":").replace(/^:|:$/g,"")||""}function hp(...t){return lt(t.join(":"))}function Ji(t){return t=lt(t),t?t+":":""}function dp(t,e){if(e===void 0)return!0;let s=0,r=t.indexOf(":");for(;r>-1;)s++,r=t.indexOf(":",r+1);return s<=e}function pp(t,e){return e?t.startsWith(e)&&t[t.length-1]!=="$":t[t.length-1]!=="$"}const fp="memory",gp=()=>{const t=new Map;return{name:fp,getInstance:()=>t,hasItem(e){return t.has(e)},getItem(e){return t.get(e)??null},getItemRaw(e){return t.get(e)??null},setItem(e,s){t.set(e,s)},setItemRaw(e,s){t.set(e,s)},removeItem(e){t.delete(e)},getKeys(){return[...t.keys()]},clear(){t.clear()},dispose(){t.clear()}}};function mp(t={}){const e={mounts:{"":t.driver||gp()},mountpoints:[""],watching:!1,watchListeners:[],unwatch:{}},s=l=>{for(const u of e.mountpoints)if(l.startsWith(u))return{base:u,relativeKey:l.slice(u.length),driver:e.mounts[u]};return{base:"",relativeKey:l,driver:e.mounts[""]}},r=(l,u)=>e.mountpoints.filter(h=>h.startsWith(l)||u&&l.startsWith(h)).map(h=>({relativeBase:l.length>h.length?l.slice(h.length):void 0,mountpoint:h,driver:e.mounts[h]})),i=(l,u)=>{if(e.watching){u=lt(u);for(const h of e.watchListeners)h(l,u)}},n=async()=>{if(!e.watching){e.watching=!0;for(const l in e.mounts)e.unwatch[l]=await ja(e.mounts[l],i,l)}},o=async()=>{if(e.watching){for(const l in e.unwatch)await e.unwatch[l]();e.unwatch={},e.watching=!1}},a=(l,u,h)=>{const d=new Map,p=w=>{let m=d.get(w.base);return m||(m={driver:w.driver,base:w.base,items:[]},d.set(w.base,m)),m};for(const w of l){const m=typeof w=="string",f=lt(m?w:w.key),y=m?void 0:w.value,b=m||!w.options?u:{...u,...w.options},v=s(f);p(v).items.push({key:f,value:y,relativeKey:v.relativeKey,options:b})}return Promise.all([...d.values()].map(w=>h(w))).then(w=>w.flat())},c={hasItem(l,u={}){l=lt(l);const{relativeKey:h,driver:d}=s(l);return je(d.hasItem,h,u)},getItem(l,u={}){l=lt(l);const{relativeKey:h,driver:d}=s(l);return je(d.getItem,h,u).then(p=>Ki(p))},getItems(l,u={}){return a(l,u,h=>h.driver.getItems?je(h.driver.getItems,h.items.map(d=>({key:d.relativeKey,options:d.options})),u).then(d=>d.map(p=>({key:hp(h.base,p.key),value:Ki(p.value)}))):Promise.all(h.items.map(d=>je(h.driver.getItem,d.relativeKey,d.options).then(p=>({key:d.key,value:Ki(p)})))))},getItemRaw(l,u={}){l=lt(l);const{relativeKey:h,driver:d}=s(l);return d.getItemRaw?je(d.getItemRaw,h,u):je(d.getItem,h,u).then(p=>cp(p))},async setItem(l,u,h={}){if(u===void 0)return c.removeItem(l);l=lt(l);const{relativeKey:d,driver:p}=s(l);p.setItem&&(await je(p.setItem,d,ln(u),h),p.watch||i("update",l))},async setItems(l,u){await a(l,u,async h=>{if(h.driver.setItems)return je(h.driver.setItems,h.items.map(d=>({key:d.relativeKey,value:ln(d.value),options:d.options})),u);h.driver.setItem&&await Promise.all(h.items.map(d=>je(h.driver.setItem,d.relativeKey,ln(d.value),d.options)))})},async setItemRaw(l,u,h={}){if(u===void 0)return c.removeItem(l,h);l=lt(l);const{relativeKey:d,driver:p}=s(l);if(p.setItemRaw)await je(p.setItemRaw,d,u,h);else if(p.setItem)await je(p.setItem,d,ap(u),h);else return;p.watch||i("update",l)},async removeItem(l,u={}){typeof u=="boolean"&&(u={removeMeta:u}),l=lt(l);const{relativeKey:h,driver:d}=s(l);d.removeItem&&(await je(d.removeItem,h,u),(u.removeMeta||u.removeMata)&&await je(d.removeItem,h+"$",u),d.watch||i("remove",l))},async getMeta(l,u={}){typeof u=="boolean"&&(u={nativeOnly:u}),l=lt(l);const{relativeKey:h,driver:d}=s(l),p=Object.create(null);if(d.getMeta&&Object.assign(p,await je(d.getMeta,h,u)),!u.nativeOnly){const w=await je(d.getItem,h+"$",u).then(m=>Ki(m));w&&typeof w=="object"&&(typeof w.atime=="string"&&(w.atime=new Date(w.atime)),typeof w.mtime=="string"&&(w.mtime=new Date(w.mtime)),Object.assign(p,w))}return p},setMeta(l,u,h={}){return this.setItem(l+"$",u,h)},removeMeta(l,u={}){return this.removeItem(l+"$",u)},async getKeys(l,u={}){l=Ji(l);const h=r(l,!0);let d=[];const p=[];let w=!0;for(const f of h){f.driver.flags?.maxDepth||(w=!1);const y=await je(f.driver.getKeys,f.relativeBase,u);for(const b of y){const v=f.mountpoint+lt(b);d.some(C=>v.startsWith(C))||p.push(v)}d=[f.mountpoint,...d.filter(b=>!b.startsWith(f.mountpoint))]}const m=u.maxDepth!==void 0&&!w;return p.filter(f=>(!m||dp(f,u.maxDepth))&&pp(f,l))},async clear(l,u={}){l=Ji(l),await Promise.all(r(l,!1).map(async h=>{if(h.driver.clear)return je(h.driver.clear,h.relativeBase,u);if(h.driver.removeItem){const d=await h.driver.getKeys(h.relativeBase||"",u);return Promise.all(d.map(p=>h.driver.removeItem(p,u)))}}))},async dispose(){await Promise.all(Object.values(e.mounts).map(l=>qa(l)))},async watch(l){return await n(),e.watchListeners.push(l),async()=>{e.watchListeners=e.watchListeners.filter(u=>u!==l),e.watchListeners.length===0&&await o()}},async unwatch(){e.watchListeners=[],await o()},mount(l,u){if(l=Ji(l),l&&e.mounts[l])throw new Error(`already mounted at ${l}`);return l&&(e.mountpoints.push(l),e.mountpoints.sort((h,d)=>d.length-h.length)),e.mounts[l]=u,e.watching&&Promise.resolve(ja(u,i,l)).then(h=>{e.unwatch[l]=h}).catch(console.error),c},async unmount(l,u=!0){l=Ji(l),!(!l||!e.mounts[l])&&(e.watching&&l in e.unwatch&&(e.unwatch[l]?.(),delete e.unwatch[l]),u&&await qa(e.mounts[l]),e.mountpoints=e.mountpoints.filter(h=>h!==l),delete e.mounts[l])},getMount(l=""){l=lt(l)+":";const u=s(l);return{driver:u.driver,base:u.base}},getMounts(l="",u={}){return l=lt(l),r(l,u.parents).map(d=>({driver:d.driver,base:d.mountpoint}))},keys:(l,u={})=>c.getKeys(l,u),get:(l,u={})=>c.getItem(l,u),set:(l,u,h={})=>c.setItem(l,u,h),has:(l,u={})=>c.hasItem(l,u),del:(l,u={})=>c.removeItem(l,u),remove:(l,u={})=>c.removeItem(l,u)};return c}function ja(t,e,s){return t.watch?t.watch((r,i)=>e(r,s+i)):()=>{}}async function qa(t){typeof t.dispose=="function"&&await je(t.dispose)}const wp="idb-keyval";var yp=(t={})=>{const e=t.base&&t.base.length>0?`${t.base}:`:"",s=i=>e+i;let r;return t.dbName&&t.storeName&&(r=ed(t.dbName,t.storeName)),{name:wp,options:t,async hasItem(i){return!(typeof await Oa(s(i),r)>"u")},async getItem(i){return await Oa(s(i),r)??null},setItem(i,n){return id(s(i),n,r)},removeItem(i){return rd(s(i),r)},getKeys(){return sd(r)},clear(){return td(r)}}};const bp="WALLET_CONNECT_V2_INDEXED_DB",vp="keyvaluestorage";let Ep=class{constructor(){this.indexedDb=mp({driver:yp({dbName:bp,storeName:vp})})}async getKeys(){return this.indexedDb.getKeys()}async getEntries(){return(await this.indexedDb.getItems(await this.indexedDb.getKeys())).map(e=>[e.key,e.value])}async getItem(e){const s=await this.indexedDb.getItem(e);if(s!==null)return s}async setItem(e,s){await this.indexedDb.setItem(e,na(s))}async removeItem(e){await this.indexedDb.removeItem(e)}};var Kn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},un={exports:{}};(function(){let t;function e(){}t=e,t.prototype.getItem=function(s){return this.hasOwnProperty(s)?String(this[s]):null},t.prototype.setItem=function(s,r){this[s]=String(r)},t.prototype.removeItem=function(s){delete this[s]},t.prototype.clear=function(){const s=this;Object.keys(s).forEach(function(r){s[r]=void 0,delete s[r]})},t.prototype.key=function(s){return s=s||0,Object.keys(this)[s]},t.prototype.__defineGetter__("length",function(){return Object.keys(this).length}),typeof Kn<"u"&&Kn.localStorage?un.exports=Kn.localStorage:typeof window<"u"&&window.localStorage?un.exports=window.localStorage:un.exports=new e})();function Cp(t){var e;return[t[0],bn((e=t[1])!=null?e:"")]}let Ip=class{constructor(){this.localStorage=un.exports}async getKeys(){return Object.keys(this.localStorage)}async getEntries(){return Object.entries(this.localStorage).map(Cp)}async getItem(e){const s=this.localStorage.getItem(e);if(s!==null)return bn(s)}async setItem(e,s){this.localStorage.setItem(e,na(s))}async removeItem(e){this.localStorage.removeItem(e)}};const Np="wc_storage_version",Fa=1,Ap=async(t,e,s)=>{const r=Np,i=await e.getItem(r);if(i&&i>=Fa){s(e);return}const n=await t.getKeys();if(!n.length){s(e);return}const o=[];for(;n.length;){const a=n.shift();if(!a)continue;const c=a.toLowerCase();if(c.includes("wc@")||c.includes("walletconnect")||c.includes("wc_")||c.includes("wallet_connect")){const l=await t.getItem(a);await e.setItem(a,l),o.push(a)}}await e.setItem(r,Fa),s(e),_p(t,o)},_p=async(t,e)=>{e.length&&e.forEach(async s=>{await t.removeItem(s)})};let Sp=class{constructor(){this.initialized=!1,this.setInitialized=s=>{this.storage=s,this.initialized=!0};const e=new Ip;this.storage=e;try{const s=new Ep;Ap(e,s,this.setInitialized)}catch{this.initialized=!0}}async getKeys(){return await this.initialize(),this.storage.getKeys()}async getEntries(){return await this.initialize(),this.storage.getEntries()}async getItem(e){return await this.initialize(),this.storage.getItem(e)}async setItem(e,s){return await this.initialize(),this.storage.setItem(e,s)}async removeItem(e){return await this.initialize(),this.storage.removeItem(e)}async initialize(){this.initialized||await new Promise(e=>{const s=setInterval(()=>{this.initialized&&(clearInterval(s),e())},20)})}};var Pp=Object.defineProperty,kp=(t,e,s)=>e in t?Pp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,za=(t,e,s)=>kp(t,typeof e!="symbol"?e+"":e,s);let Op=class extends zr{constructor(e){super(),this.opts=e,za(this,"protocol","wc"),za(this,"version",2)}};var Tp=Object.defineProperty,xp=(t,e,s)=>e in t?Tp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,$p=(t,e,s)=>xp(t,e+"",s);let Rp=class extends zr{constructor(e,s){super(),this.core=e,this.logger=s,$p(this,"records",new Map)}},Up=class{constructor(e,s){this.logger=e,this.core=s}},Dp=class extends zr{constructor(e,s){super(),this.relayer=e,this.logger=s}},Lp=class extends zr{constructor(e){super()}},Mp=class{constructor(e,s,r,i){this.core=e,this.logger=s,this.name=r}},Bp=class extends zr{constructor(e,s){super(),this.relayer=e,this.logger=s}},jp=class extends zr{constructor(e,s){super(),this.core=e,this.logger=s}},qp=class{constructor(e,s,r){this.core=e,this.logger=s,this.store=r}},Fp=class{constructor(e,s){this.projectId=e,this.logger=s}},zp=class{constructor(e,s,r){this.core=e,this.logger=s,this.telemetryEnabled=r}};var Wp=Object.defineProperty,Hp=(t,e,s)=>e in t?Wp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Wa=(t,e,s)=>Hp(t,typeof e!="symbol"?e+"":e,s);let Vp=class{constructor(e){this.opts=e,Wa(this,"protocol","wc"),Wa(this,"version",2)}},Kp=class{constructor(e){this.client=e}};function Ni(t,{strict:e=!0}={}){return!t||typeof t!="string"?!1:e?/^0x[0-9a-fA-F]*$/.test(t):t.startsWith("0x")}function Ha(t){return Ni(t,{strict:!1})?Math.ceil((t.length-2)/2):t.length}const su="2.23.2";let Gn={getDocsUrl:({docsBaseUrl:t,docsPath:e="",docsSlug:s})=>e?`${t??"https://viem.sh"}${e}${s?`#${s}`:""}`:void 0,version:`viem@${su}`};class Ks extends Error{constructor(e,s={}){const r=s.cause instanceof Ks?s.cause.details:s.cause?.message?s.cause.message:s.details,i=s.cause instanceof Ks&&s.cause.docsPath||s.docsPath,n=Gn.getDocsUrl?.({...s,docsPath:i}),o=[e||"An error occurred.","",...s.metaMessages?[...s.metaMessages,""]:[],...n?[`Docs: ${n}`]:[],...r?[`Details: ${r}`]:[],...Gn.version?[`Version: ${Gn.version}`]:[]].join(`
-`);super(o,s.cause?{cause:s.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=r,this.docsPath=i,this.metaMessages=s.metaMessages,this.name=s.name??this.name,this.shortMessage=e,this.version=su}walk(e){return ru(this,e)}}function ru(t,e){return e?.(t)?t:t&&typeof t=="object"&&"cause"in t&&t.cause!==void 0?ru(t.cause,e):e?null:t}class iu extends Ks{constructor({size:e,targetSize:s,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (${e}) exceeds padding size (${s}).`,{name:"SizeExceedsPaddingSizeError"})}}function Hr(t,{dir:e,size:s=32}={}){return typeof t=="string"?Gp(t,{dir:e,size:s}):Jp(t,{dir:e,size:s})}function Gp(t,{dir:e,size:s=32}={}){if(s===null)return t;const r=t.replace("0x","");if(r.length>s*2)throw new iu({size:Math.ceil(r.length/2),targetSize:s,type:"hex"});return`0x${r[e==="right"?"padEnd":"padStart"](s*2,"0")}`}function Jp(t,{dir:e,size:s=32}={}){if(s===null)return t;if(t.length>s)throw new iu({size:t.length,targetSize:s,type:"bytes"});const r=new Uint8Array(s);for(let i=0;ie)throw new Xp({givenSize:Ha(t),maxSize:e})}function Po(t,e={}){const{signed:s}=e;e.size&&Vr(t,{size:e.size});const r=BigInt(t);if(!s)return r;const i=(t.length-2)/2,n=(1n<e.toString(16).padStart(2,"0"));function ko(t,e={}){return typeof t=="number"||typeof t=="bigint"?ou(t,e):typeof t=="string"?sf(t,e):typeof t=="boolean"?ef(t,e):nu(t,e)}function ef(t,e={}){const s=`0x${Number(t)}`;return typeof e.size=="number"?(Vr(s,{size:e.size}),Hr(s,{size:e.size})):s}function nu(t,e={}){let s="";for(let i=0;in||i=ts.zero&&t<=ts.nine)return t-ts.zero;if(t>=ts.A&&t<=ts.F)return t-(ts.A-10);if(t>=ts.a&&t<=ts.f)return t-(ts.a-10)}function au(t,e={}){let s=t;e.size&&(Vr(s,{size:e.size}),s=Hr(s,{dir:"right",size:e.size}));let r=s.slice(2);r.length%2&&(r=`0${r}`);const i=r.length/2,n=new Uint8Array(i);for(let o=0,a=0;o0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function l1(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");En(t.outputLen),En(t.blockLen)}function Ka(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function lf(t,e){Tn(t);const s=e.outputLen;if(t.length>Ga&Yi)}:{h:Number(t>>Ga&Yi)|0,l:Number(t&Yi)|0}}function hf(t,e=!1){let s=new Uint32Array(t.length),r=new Uint32Array(t.length);for(let i=0;it<>>32-s,pf=(t,e,s)=>e<>>32-s,ff=(t,e,s)=>e<>>64-s,gf=(t,e,s)=>t<>>64-s,or=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function mf(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function u1(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function h1(t,e){return t<<32-e|t>>>e}const Ja=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function wf(t){return t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255}function Ya(t){for(let e=0;et().update(lu(r)).digest(),s=t();return e.outputLen=s.outputLen,e.blockLen=s.blockLen,e.create=()=>t(),e}function p1(t=32){if(or&&typeof or.getRandomValues=="function")return or.getRandomValues(new Uint8Array(t));if(or&&typeof or.randomBytes=="function")return or.randomBytes(t);throw new Error("crypto.getRandomValues must be defined")}const uu=[],hu=[],du=[],Ef=BigInt(0),Qr=BigInt(1),Cf=BigInt(2),If=BigInt(7),Nf=BigInt(256),Af=BigInt(113);for(let t=0,e=Qr,s=1,r=0;t<24;t++){[s,r]=[r,(2*s+3*r)%5],uu.push(2*(5*r+s)),hu.push((t+1)*(t+2)/2%64);let i=Ef;for(let n=0;n<7;n++)e=(e<>If)*Af)%Nf,e&Cf&&(i^=Qr<<(Qr<s>32?ff(t,e,s):df(t,e,s),Za=(t,e,s)=>s>32?gf(t,e,s):pf(t,e,s);function Pf(t,e=24){const s=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let o=0;o<10;o++)s[o]=t[o]^t[o+10]^t[o+20]^t[o+30]^t[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,c=(o+2)%10,l=s[c],u=s[c+1],h=Xa(l,u,1)^s[a],d=Za(l,u,1)^s[a+1];for(let p=0;p<50;p+=10)t[o+p]^=h,t[o+p+1]^=d}let i=t[2],n=t[3];for(let o=0;o<24;o++){const a=hu[o],c=Xa(i,n,a),l=Za(i,n,a),u=uu[o];i=t[u],n=t[u+1],t[u]=c,t[u+1]=l}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)s[a]=t[o+a];for(let a=0;a<10;a++)t[o+a]^=~s[(a+2)%10]&s[(a+4)%10]}t[0]^=_f[r],t[1]^=Sf[r]}s.fill(0)}class ua extends bf{constructor(e,s,r,i=!1,n=24){if(super(),this.blockLen=e,this.suffix=s,this.outputLen=r,this.enableXOF=i,this.rounds=n,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,En(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=mf(this.state)}keccak(){Ja||Ya(this.state32),Pf(this.state32,this.rounds),Ja||Ya(this.state32),this.posOut=0,this.pos=0}update(e){Ka(this);const{blockLen:s,state:r}=this;e=lu(e);const i=e.length;for(let n=0;n=r&&this.keccak();const o=Math.min(r-this.posOut,n-i);e.set(s.subarray(this.posOut,this.posOut+o),i),this.posOut+=o,i+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return En(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(lf(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:s,suffix:r,outputLen:i,rounds:n,enableXOF:o}=this;return e||(e=new ua(s,r,i,o,n)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=n,e.suffix=r,e.outputLen=i,e.enableXOF=o,e.destroyed=this.destroyed,e}}const kf=(t,e,s)=>vf(()=>new ua(e,t,s)),Of=kf(1,136,256/8);function pu(t,e){const s=e||"hex",r=Of(Ni(t,{strict:!1})?nf(t):t);return s==="bytes"?r:ko(r)}class Tf extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const s=super.get(e);return super.has(e)&&s!==void 0&&(this.delete(e),super.set(e,s)),s}set(e,s){if(super.set(e,s),this.maxSize&&this.size>this.maxSize){const r=this.keys().next().value;r&&this.delete(r)}return this}}const Jn=new Tf(8192);function xf(t,e){if(Jn.has(`${t}.${e}`))return Jn.get(`${t}.${e}`);const s=t.substring(2).toLowerCase(),r=pu(cu(s),"bytes"),i=s.split("");for(let o=0;o<40;o+=2)r[o>>1]>>4>=8&&i[o]&&(i[o]=i[o].toUpperCase()),(r[o>>1]&15)>=8&&i[o+1]&&(i[o+1]=i[o+1].toUpperCase());const n=`0x${i.join("")}`;return Jn.set(`${t}.${e}`,n),n}function $f(t){const e=pu(`0x${t.substring(4)}`).substring(26);return xf(`0x${e}`)}async function Rf({hash:t,signature:e}){const s=Ni(t)?t:ko(t),{secp256k1:r}=await Eo(async()=>{const{secp256k1:o}=await import("./secp256k1-BygF97rU.js");return{secp256k1:o}},__vite__mapDeps([0,1,2,3,4,5]));return`0x${(()=>{if(typeof e=="object"&&"r"in e&&"s"in e){const{r:l,s:u,v:h,yParity:d}=e,p=Number(d??h),w=Qa(p);return new r.Signature(Po(l),Po(u)).addRecoveryBit(w)}const o=Ni(e)?e:ko(e),a=Zp(`0x${o.slice(130)}`),c=Qa(a);return r.Signature.fromCompact(o.substring(2,130)).addRecoveryBit(c)})().recoverPublicKey(s.substring(2)).toHex(!1)}`}function Qa(t){if(t===0||t===1)return t;if(t===27)return 0;if(t===28)return 1;throw new Error("Invalid yParityOrV value")}async function Uf({hash:t,signature:e}){return $f(await Rf({hash:t,signature:e}))}function Df(t){if(t.length>=255)throw new TypeError("Alphabet too long");const e=new Uint8Array(256);for(let l=0;l>>0,m=new Uint8Array(w);for(;d!==p;){let b=l[d],v=0;for(let C=w-1;(b!==0||v>>0,m[C]=b%s>>>0,b=b/s>>>0;if(b!==0)throw new Error("Non-zero carry");h=v,d++}let f=w-h;for(;f!==w&&m[f]===0;)f++;let y=r.repeat(u);for(;f>>0,w=new Uint8Array(p);for(;u255)return;let v=e[b];if(v===255)return;let C=0;for(let S=p-1;(v!==0||C>>0,w[S]=v%256>>>0,v=v/256>>>0;if(v!==0)throw new Error("Non-zero carry");d=C,u++}let m=p-d;for(;m!==p&&w[m]===0;)m++;const f=new Uint8Array(h+(p-m));let y=h;for(;m!==p;)f[y++]=w[m++];return f}function c(l){const u=a(l);if(u)return u;throw new Error("Non-base"+s+" character")}return{encode:o,decodeUnsafe:a,decode:c}}var Lf="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";const fu=Df(Lf);var Mf={};const Bf=":";function Or(t){const[e,s]=t.split(Bf);return{namespace:e,reference:s}}function gu(t,e){return t.includes(":")?[t]:e.chains||[]}var jf=Object.defineProperty,qf=Object.defineProperties,Ff=Object.getOwnPropertyDescriptors,ec=Object.getOwnPropertySymbols,zf=Object.prototype.hasOwnProperty,Wf=Object.prototype.propertyIsEnumerable,tc=(t,e,s)=>e in t?jf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,sc=(t,e)=>{for(var s in e||(e={}))zf.call(e,s)&&tc(t,s,e[s]);if(ec)for(var s of ec(e))Wf.call(e,s)&&tc(t,s,e[s]);return t},Hf=(t,e)=>qf(t,Ff(e));const Vf="ReactNative",bt={reactNative:"react-native",node:"node",browser:"browser",unknown:"unknown"},Kf="js";function Cn(){return typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"}function ks(){return!ls.getDocument()&&!!ls.getNavigator()&&navigator.product===Vf}function Gf(){return ks()&&typeof global<"u"&&typeof(global==null?void 0:global.Platform)<"u"&&(global==null?void 0:global.Platform.OS)==="android"}function Jf(){return ks()&&typeof global<"u"&&typeof(global==null?void 0:global.Platform)<"u"&&(global==null?void 0:global.Platform.OS)==="ios"}function Kr(){return!Cn()&&!!ls.getNavigator()&&!!ls.getDocument()}function Di(){return ks()?bt.reactNative:Cn()?bt.node:Kr()?bt.browser:bt.unknown}function rc(){var t;try{return ks()&&typeof global<"u"&&typeof(global==null?void 0:global.Application)<"u"?(t=global.Application)==null?void 0:t.applicationId:void 0}catch{return}}function Yf(t,e){const s=new URLSearchParams(t);for(const r of Object.keys(e).sort())if(e.hasOwnProperty(r)){const i=e[r];i!==void 0&&s.set(r,i)}return s.toString()}function Xf(t){var e,s;const r=mu();try{return t!=null&&t.url&&r.url&&new URL(t.url).host!==new URL(r.url).host&&(console.warn(`The configured WalletConnect 'metadata.url':${t.url} differs from the actual page url:${r.url}. This is probably unintended and can lead to issues.`),t.url=r.url),(e=t?.icons)!=null&&e.length&&t.icons.length>0&&(t.icons=t.icons.filter(i=>i!=="")),Hf(sc(sc({},r),t),{url:t?.url||r.url,name:t?.name||r.name,description:t?.description||r.description,icons:(s=t?.icons)!=null&&s.length&&t.icons.length>0?t.icons:r.icons})}catch(i){return console.warn("Error populating app metadata",i),t||r}}function mu(){return Kh.getWindowMetadata()||{name:"",description:"",url:"",icons:[""]}}function Zf(){if(Di()===bt.reactNative&&typeof global<"u"&&typeof(global==null?void 0:global.Platform)<"u"){const{OS:s,Version:r}=global.Platform;return[s,r].join("-")}const t=Jh();if(t===null)return"unknown";const e=t.os?t.os.replace(" ","").toLowerCase():"unknown";return t.type==="browser"?[e,t.name,t.version].join("-"):[e,t.version].join("-")}function Qf(){var t;const e=Di();return e===bt.browser?[e,((t=ls.getLocation())==null?void 0:t.host)||"unknown"].join(":"):e}function wu(t,e,s){const r=Zf(),i=Qf();return[[t,e].join("-"),[Kf,s].join("-"),r,i].join("/")}function eg({protocol:t,version:e,relayUrl:s,sdkVersion:r,auth:i,projectId:n,useOnCloseEvent:o,bundleId:a,packageName:c}){const l=s.split("?"),u=wu(t,e,r),h={auth:i,ua:u,projectId:n,useOnCloseEvent:o,packageName:c||void 0,bundleId:a||void 0},d=Yf(l[1]||"",h);return l[0]+"?"+d}function Fs(t,e){return t.filter(s=>e.includes(s)).length===t.length}function Oo(t){return Object.fromEntries(t.entries())}function To(t){return new Map(Object.entries(t))}function Ds(t=D.FIVE_MINUTES,e){const s=D.toMiliseconds(t||D.FIVE_MINUTES);let r,i,n,o;return{resolve:a=>{n&&r&&(clearTimeout(n),r(a),o=Promise.resolve(a))},reject:a=>{n&&i&&(clearTimeout(n),i(a))},done:()=>new Promise((a,c)=>{if(o)return a(o);n=setTimeout(()=>{const l=new Error(e);o=Promise.reject(l),c(l)},s),r=a,i=c})}}function Cs(t,e,s){return new Promise(async(r,i)=>{const n=setTimeout(()=>i(new Error(s)),e);try{const o=await t;r(o)}catch(o){i(o)}clearTimeout(n)})}function yu(t,e){if(typeof e=="string"&&e.startsWith(`${t}:`))return e;if(t.toLowerCase()==="topic"){if(typeof e!="string")throw new Error('Value must be "string" for expirer target type: topic');return`topic:${e}`}else if(t.toLowerCase()==="id"){if(typeof e!="number")throw new Error('Value must be "number" for expirer target type: id');return`id:${e}`}throw new Error(`Unknown expirer target type: ${t}`)}function tg(t){return yu("topic",t)}function sg(t){return yu("id",t)}function bu(t){const[e,s]=t.split(":"),r={id:void 0,topic:void 0};if(e==="topic"&&typeof s=="string")r.topic=s;else if(e==="id"&&Number.isInteger(Number(s)))r.id=Number(s);else throw new Error(`Invalid target, expected id:number or topic:string, got ${e}:${s}`);return r}function De(t,e){return D.fromMiliseconds(Date.now()+D.toMiliseconds(t))}function ys(t){return Date.now()>=D.toMiliseconds(t)}function pe(t,e){return`${t}${e?`:${e}`:""}`}function Jt(t=[],e=[]){return[...new Set([...t,...e])]}async function rg({id:t,topic:e,wcDeepLink:s}){var r;try{if(!s)return;const i=typeof s=="string"?JSON.parse(s):s,n=i?.href;if(typeof n!="string")return;const o=ig(n,t,e),a=Di();if(a===bt.browser){if(!((r=ls.getDocument())!=null&&r.hasFocus())){console.warn("Document does not have focus, skipping deeplink.");return}ng(o)}else a===bt.reactNative&&typeof(global==null?void 0:global.Linking)<"u"&&await global.Linking.openURL(o)}catch(i){console.error(i)}}function ig(t,e,s){const r=`requestId=${e}&sessionTopic=${s}`;t.endsWith("/")&&(t=t.slice(0,-1));let i=`${t}`;if(t.startsWith("https://t.me")){const n=t.includes("?")?"&startapp=":"?startapp=";i=`${i}${n}${lg(r,!0)}`}else i=`${i}/wc?${r}`;return i}function ng(t){let e="_self";cg()?e="_top":(ag()||t.startsWith("https://")||t.startsWith("http://"))&&(e="_blank"),window.open(t,e,"noreferrer noopener")}async function og(t,e){let s="";try{if(Kr()&&(s=localStorage.getItem(e),s))return s;s=await t.getItem(e)}catch(r){console.error(r)}return s}function ic(t,e){if(!t.includes(e))return null;const s=t.split(/([&,?,=])/),r=s.indexOf(e);return s[r+2]}function nc(){return typeof crypto<"u"&&crypto!=null&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/gu,t=>{const e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})}function ha(){return typeof process<"u"&&Mf.IS_VITEST==="true"}function ag(){return typeof window<"u"&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function cg(){try{return window.self!==window.top}catch{return!1}}function lg(t,e=!1){const s=Buffer.from(t).toString("base64");return e?s.replace(/[=]/g,""):s}function vu(t){return Buffer.from(t,"base64").toString("utf-8")}function ug(t){return new Promise(e=>setTimeout(e,t))}function Ai(t){if(!Number.isSafeInteger(t)||t<0)throw new Error("positive integer expected, got "+t)}function hg(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function Li(t,...e){if(!hg(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function da(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Ai(t.outputLen),Ai(t.blockLen)}function Rr(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Eu(t,e){Li(t);const s=e.outputLen;if(t.length>oc&Xi)}:{h:Number(t>>oc&Xi)|0,l:Number(t&Xi)|0}}function pg(t,e=!1){let s=new Uint32Array(t.length),r=new Uint32Array(t.length);for(let i=0;it<>>32-s,gg=(t,e,s)=>e<>>32-s,mg=(t,e,s)=>e<>>64-s,wg=(t,e,s)=>t<>>64-s,ar=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function yg(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function Yn(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function qt(t,e){return t<<32-e|t>>>e}const ac=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function bg(t){return t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255}function cc(t){for(let e=0;et().update(Ur(r)).digest(),s=t();return e.outputLen=s.outputLen,e.blockLen=s.blockLen,e.create=()=>t(),e}function Gr(t=32){if(ar&&typeof ar.getRandomValues=="function")return ar.getRandomValues(new Uint8Array(t));if(ar&&typeof ar.randomBytes=="function")return ar.randomBytes(t);throw new Error("crypto.getRandomValues must be defined")}const Iu=[],Nu=[],Au=[],Cg=BigInt(0),ei=BigInt(1),Ig=BigInt(2),Ng=BigInt(7),Ag=BigInt(256),_g=BigInt(113);for(let t=0,e=ei,s=1,r=0;t<24;t++){[s,r]=[r,(2*s+3*r)%5],Iu.push(2*(5*r+s)),Nu.push((t+1)*(t+2)/2%64);let i=Cg;for(let n=0;n<7;n++)e=(e<>Ng)*_g)%Ag,e&Ig&&(i^=ei<<(ei<s>32?mg(t,e,s):fg(t,e,s),uc=(t,e,s)=>s>32?wg(t,e,s):gg(t,e,s);function kg(t,e=24){const s=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let o=0;o<10;o++)s[o]=t[o]^t[o+10]^t[o+20]^t[o+30]^t[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,c=(o+2)%10,l=s[c],u=s[c+1],h=lc(l,u,1)^s[a],d=uc(l,u,1)^s[a+1];for(let p=0;p<50;p+=10)t[o+p]^=h,t[o+p+1]^=d}let i=t[2],n=t[3];for(let o=0;o<24;o++){const a=Nu[o],c=lc(i,n,a),l=uc(i,n,a),u=Iu[o];i=t[u],n=t[u+1],t[u]=c,t[u+1]=l}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)s[a]=t[o+a];for(let a=0;a<10;a++)t[o+a]^=~s[(a+2)%10]&s[(a+4)%10]}t[0]^=Sg[r],t[1]^=Pg[r]}s.fill(0)}let Og=class _u extends pa{constructor(e,s,r,i=!1,n=24){if(super(),this.blockLen=e,this.suffix=s,this.outputLen=r,this.enableXOF=i,this.rounds=n,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Ai(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=yg(this.state)}keccak(){ac||cc(this.state32),kg(this.state32,this.rounds),ac||cc(this.state32),this.posOut=0,this.pos=0}update(e){Rr(this);const{blockLen:s,state:r}=this;e=Ur(e);const i=e.length;for(let n=0;n=r&&this.keccak();const o=Math.min(r-this.posOut,n-i);e.set(s.subarray(this.posOut,this.posOut+o),i),this.posOut+=o,i+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return Ai(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Eu(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:s,suffix:r,outputLen:i,rounds:n,enableXOF:o}=this;return e||(e=new _u(s,r,i,o,n)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=n,e.suffix=r,e.outputLen=i,e.enableXOF=o,e.destroyed=this.destroyed,e}};const Tg=(t,e,s)=>Cu(()=>new Og(e,t,s)),xg=Tg(1,136,256/8),$g="https://rpc.walletconnect.org/v1";function Su(t){const e=`Ethereum Signed Message:
-${t.length}`,s=new TextEncoder().encode(e+t);return"0x"+Buffer.from(xg(s)).toString("hex")}async function Rg(t,e,s,r,i,n){switch(s.t){case"eip191":return await Ug(t,e,s.s);case"eip1271":return await Dg(t,e,s.s,r,i,n);default:throw new Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${s.t}`)}}async function Ug(t,e,s){return(await Uf({hash:Su(e),signature:s})).toLowerCase()===t.toLowerCase()}async function Dg(t,e,s,r,i,n){const o=Or(r);if(!o.namespace||!o.reference)throw new Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${r}`);try{const a="0x1626ba7e",c="0000000000000000000000000000000000000000000000000000000000000040",l="0000000000000000000000000000000000000000000000000000000000000041",u=s.substring(2),h=Su(e).substring(2),d=a+h+c+l+u,p=await fetch(`${n||$g}/?chainId=${r}&projectId=${i}`,{method:"POST",body:JSON.stringify({id:Lg(),jsonrpc:"2.0",method:"eth_call",params:[{to:t,data:d},"latest"]})}),{result:w}=await p.json();return w?w.slice(0,a.length).toLowerCase()===a.toLowerCase():!1}catch(a){return console.error("isValidEip1271Signature: ",a),!1}}function Lg(){return Date.now()+Math.floor(Math.random()*1e3)}function Mg(t){const e=atob(t),s=new Uint8Array(e.length);for(let o=0;oe in t?Bg(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Wg=(t,e)=>{for(var s in e||(e={}))Fg.call(e,s)&&dc(t,s,e[s]);if(hc)for(var s of hc(e))zg.call(e,s)&&dc(t,s,e[s]);return t},Hg=(t,e)=>jg(t,qg(e));const Vg="did:pkh:",fa=t=>t?.split(":"),Kg=t=>{const e=t&&fa(t);if(e)return t.includes(Vg)?e[3]:e[1]},xo=t=>{const e=t&&fa(t);if(e)return e[2]+":"+e[3]},In=t=>{const e=t&&fa(t);if(e)return e.pop()};async function pc(t){const{cacao:e,projectId:s}=t,{s:r,p:i}=e,n=Pu(i,i.iss),o=In(i.iss);return await Rg(o,n,r,xo(i.iss),s)}const Pu=(t,e)=>{const s=`${t.domain} wants you to sign in with your Ethereum account:`,r=In(e);if(!t.aud&&!t.uri)throw new Error("Either `aud` or `uri` is required to construct the message");let i=t.statement||void 0;const n=`URI: ${t.aud||t.uri}`,o=`Version: ${t.version}`,a=`Chain ID: ${Kg(e)}`,c=`Nonce: ${t.nonce}`,l=`Issued At: ${t.iat}`,u=t.exp?`Expiration Time: ${t.exp}`:void 0,h=t.nbf?`Not Before: ${t.nbf}`:void 0,d=t.requestId?`Request ID: ${t.requestId}`:void 0,p=t.resources?`Resources:${t.resources.map(m=>`
-- ${m}`).join("")}`:void 0,w=hn(t.resources);if(w){const m=_i(w);i=sm(i,m)}return[s,r,"",i,"",n,o,a,c,l,u,h,d,p].filter(m=>m!=null).join(`
-`)};function Gg(t){return Buffer.from(JSON.stringify(t)).toString("base64")}function Jg(t){return JSON.parse(Buffer.from(t,"base64").toString("utf-8"))}function Gs(t){if(!t)throw new Error("No recap provided, value is undefined");if(!t.att)throw new Error("No `att` property found");const e=Object.keys(t.att);if(!(e!=null&&e.length))throw new Error("No resources found in `att` property");e.forEach(s=>{const r=t.att[s];if(Array.isArray(r))throw new Error(`Resource must be an object: ${s}`);if(typeof r!="object")throw new Error(`Resource must be an object: ${s}`);if(!Object.keys(r).length)throw new Error(`Resource object is empty: ${s}`);Object.keys(r).forEach(i=>{const n=r[i];if(!Array.isArray(n))throw new Error(`Ability limits ${i} must be an array of objects, found: ${n}`);if(!n.length)throw new Error(`Value of ${i} is empty array, must be an array with objects`);n.forEach(o=>{if(typeof o!="object")throw new Error(`Ability limits (${i}) must be an array of objects, found: ${o}`)})})})}function Yg(t,e,s,r={}){return s?.sort((i,n)=>i.localeCompare(n)),{att:{[t]:Xg(e,s,r)}}}function Xg(t,e,s={}){e=e?.sort((i,n)=>i.localeCompare(n));const r=e.map(i=>({[`${t}/${i}`]:[s]}));return Object.assign({},...r)}function ku(t){return Gs(t),`urn:recap:${Gg(t).replace(/=/g,"")}`}function _i(t){const e=Jg(t.replace("urn:recap:",""));return Gs(e),e}function Zg(t,e,s){const r=Yg(t,e,s);return ku(r)}function Qg(t){return t&&t.includes("urn:recap:")}function em(t,e){const s=_i(t),r=_i(e),i=tm(s,r);return ku(i)}function tm(t,e){Gs(t),Gs(e);const s=Object.keys(t.att).concat(Object.keys(e.att)).sort((i,n)=>i.localeCompare(n)),r={att:{}};return s.forEach(i=>{var n,o;Object.keys(((n=t.att)==null?void 0:n[i])||{}).concat(Object.keys(((o=e.att)==null?void 0:o[i])||{})).sort((a,c)=>a.localeCompare(c)).forEach(a=>{var c,l;r.att[i]=Hg(Wg({},r.att[i]),{[a]:((c=t.att[i])==null?void 0:c[a])||((l=e.att[i])==null?void 0:l[a])})})}),r}function sm(t="",e){Gs(e);const s="I further authorize the stated URI to perform the following actions on my behalf: ";if(t.includes(s))return t;const r=[];let i=0;Object.keys(e.att).forEach(a=>{const c=Object.keys(e.att[a]).map(h=>({ability:h.split("/")[0],action:h.split("/")[1]}));c.sort((h,d)=>h.action.localeCompare(d.action));const l={};c.forEach(h=>{l[h.ability]||(l[h.ability]=[]),l[h.ability].push(h.action)});const u=Object.keys(l).map(h=>(i++,`(${i}) '${h}': '${l[h].join("', '")}' for '${a}'.`));r.push(u.join(", ").replace(".,","."))});const n=r.join(" "),o=`${s}${n}`;return`${t?t+" ":""}${o}`}function fc(t){var e;const s=_i(t);Gs(s);const r=(e=s.att)==null?void 0:e.eip155;return r?Object.keys(r).map(i=>i.split("/")[1]):[]}function gc(t){const e=_i(t);Gs(e);const s=[];return Object.values(e.att).forEach(r=>{Object.values(r).forEach(i=>{var n;(n=i?.[0])!=null&&n.chains&&s.push(i[0].chains)})}),[...new Set(s.flat())]}function hn(t){if(!t)return;const e=t?.[t.length-1];return Qg(e)?e:void 0}function Xn(t){if(!Number.isSafeInteger(t)||t<0)throw new Error("positive integer expected, got "+t)}function Ou(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function yt(t,...e){if(!Ou(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function mc(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function rm(t,e){yt(t);const s=e.outputLen;if(t.lengthnew Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4)),im=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),nm=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!nm)throw new Error("Non little-endian hardware is not supported");function om(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}function $o(t){if(typeof t=="string")t=om(t);else if(Ou(t))t=Ro(t);else throw new Error("Uint8Array expected, got "+typeof t);return t}function am(t,e){if(e==null||typeof e!="object")throw new Error("options must be defined");return Object.assign(t,e)}function cm(t,e){if(t.length!==e.length)return!1;let s=0;for(let r=0;r{function s(r,...i){if(yt(r),t.nonceLength!==void 0){const l=i[0];if(!l)throw new Error("nonce / iv required");t.varSizeNonce?yt(l):yt(l,t.nonceLength)}const n=t.tagLength;n&&i[1]!==void 0&&yt(i[1]);const o=e(r,...i),a=(l,u)=>{if(u!==void 0){if(l!==2)throw new Error("cipher output not supported");yt(u)}};let c=!1;return{encrypt(l,u){if(c)throw new Error("cannot encrypt() twice with same key + nonce");return c=!0,yt(l),a(o.encrypt.length,u),o.encrypt(l,u)},decrypt(l,u){if(yt(l),n&&l.length>i&n),a=Number(s&n);t.setUint32(e+4,o,r),t.setUint32(e+0,a,r)}function um(t){return t.byteOffset%4===0}function Ro(t){return Uint8Array.from(t)}function Dr(...t){for(let e=0;eUint8Array.from(t.split("").map(e=>e.charCodeAt(0))),hm=Tu("expand 16-byte k"),dm=Tu("expand 32-byte k"),pm=Ns(hm),fm=Ns(dm);function ce(t,e){return t<>>32-e}function Uo(t){return t.byteOffset%4===0}const Zi=64,gm=16,xu=2**32-1,vc=new Uint32Array;function mm(t,e,s,r,i,n,o,a){const c=i.length,l=new Uint8Array(Zi),u=Ns(l),h=Uo(i)&&Uo(n),d=h?Ns(i):vc,p=h?Ns(n):vc;for(let w=0;w=xu)throw new Error("arx: counter overflow");const m=Math.min(Zi,c-w);if(h&&m===Zi){const f=w/4;if(w%4!==0)throw new Error("arx: invalid block position");for(let y=0,b;y{yt(a),yt(c),yt(l);const d=l.length;if(u===void 0&&(u=new Uint8Array(d)),yt(u),Xn(h),h<0||h>=xu)throw new Error("arx: counter overflow");if(u.lengtht[e++]&255|(t[e++]&255)<<8;class ym{constructor(e){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,e=$o(e),yt(e,32);const s=Ve(e,0),r=Ve(e,2),i=Ve(e,4),n=Ve(e,6),o=Ve(e,8),a=Ve(e,10),c=Ve(e,12),l=Ve(e,14);this.r[0]=s&8191,this.r[1]=(s>>>13|r<<3)&8191,this.r[2]=(r>>>10|i<<6)&7939,this.r[3]=(i>>>7|n<<9)&8191,this.r[4]=(n>>>4|o<<12)&255,this.r[5]=o>>>1&8190,this.r[6]=(o>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|l<<8)&8191,this.r[9]=l>>>5&127;for(let u=0;u<8;u++)this.pad[u]=Ve(e,16+2*u)}process(e,s,r=!1){const i=r?0:2048,{h:n,r:o}=this,a=o[0],c=o[1],l=o[2],u=o[3],h=o[4],d=o[5],p=o[6],w=o[7],m=o[8],f=o[9],y=Ve(e,s+0),b=Ve(e,s+2),v=Ve(e,s+4),C=Ve(e,s+6),S=Ve(e,s+8),A=Ve(e,s+10),_=Ve(e,s+12),U=Ve(e,s+14);let E=n[0]+(y&8191),$=n[1]+((y>>>13|b<<3)&8191),I=n[2]+((b>>>10|v<<6)&8191),L=n[3]+((v>>>7|C<<9)&8191),H=n[4]+((C>>>4|S<<12)&8191),N=n[5]+(S>>>1&8191),T=n[6]+((S>>>14|A<<2)&8191),k=n[7]+((A>>>11|_<<5)&8191),B=n[8]+((_>>>8|U<<8)&8191),q=n[9]+(U>>>5|i),x=0,G=x+E*a+$*(5*f)+I*(5*m)+L*(5*w)+H*(5*p);x=G>>>13,G&=8191,G+=N*(5*d)+T*(5*h)+k*(5*u)+B*(5*l)+q*(5*c),x+=G>>>13,G&=8191;let Q=x+E*c+$*a+I*(5*f)+L*(5*m)+H*(5*w);x=Q>>>13,Q&=8191,Q+=N*(5*p)+T*(5*d)+k*(5*h)+B*(5*u)+q*(5*l),x+=Q>>>13,Q&=8191;let se=x+E*l+$*c+I*a+L*(5*f)+H*(5*m);x=se>>>13,se&=8191,se+=N*(5*w)+T*(5*p)+k*(5*d)+B*(5*h)+q*(5*u),x+=se>>>13,se&=8191;let Ee=x+E*u+$*l+I*c+L*a+H*(5*f);x=Ee>>>13,Ee&=8191,Ee+=N*(5*m)+T*(5*w)+k*(5*p)+B*(5*d)+q*(5*h),x+=Ee>>>13,Ee&=8191;let de=x+E*h+$*u+I*l+L*c+H*a;x=de>>>13,de&=8191,de+=N*(5*f)+T*(5*m)+k*(5*w)+B*(5*p)+q*(5*d),x+=de>>>13,de&=8191;let Oe=x+E*d+$*h+I*u+L*l+H*c;x=Oe>>>13,Oe&=8191,Oe+=N*a+T*(5*f)+k*(5*m)+B*(5*w)+q*(5*p),x+=Oe>>>13,Oe&=8191;let Le=x+E*p+$*d+I*h+L*u+H*l;x=Le>>>13,Le&=8191,Le+=N*c+T*a+k*(5*f)+B*(5*m)+q*(5*w),x+=Le>>>13,Le&=8191;let Xe=x+E*w+$*p+I*d+L*h+H*u;x=Xe>>>13,Xe&=8191,Xe+=N*l+T*c+k*a+B*(5*f)+q*(5*m),x+=Xe>>>13,Xe&=8191;let $e=x+E*m+$*w+I*p+L*d+H*h;x=$e>>>13,$e&=8191,$e+=N*u+T*l+k*c+B*a+q*(5*f),x+=$e>>>13,$e&=8191;let Re=x+E*f+$*m+I*w+L*p+H*d;x=Re>>>13,Re&=8191,Re+=N*h+T*u+k*l+B*c+q*a,x+=Re>>>13,Re&=8191,x=(x<<2)+x|0,x=x+G|0,G=x&8191,x=x>>>13,Q+=x,n[0]=G,n[1]=Q,n[2]=se,n[3]=Ee,n[4]=de,n[5]=Oe,n[6]=Le,n[7]=Xe,n[8]=$e,n[9]=Re}finalize(){const{h:e,pad:s}=this,r=new Uint16Array(10);let i=e[1]>>>13;e[1]&=8191;for(let a=2;a<10;a++)e[a]+=i,i=e[a]>>>13,e[a]&=8191;e[0]+=i*5,i=e[0]>>>13,e[0]&=8191,e[1]+=i,i=e[1]>>>13,e[1]&=8191,e[2]+=i,r[0]=e[0]+5,i=r[0]>>>13,r[0]&=8191;for(let a=1;a<10;a++)r[a]=e[a]+i,i=r[a]>>>13,r[a]&=8191;r[9]-=8192;let n=(i^1)-1;for(let a=0;a<10;a++)r[a]&=n;n=~n;for(let a=0;a<10;a++)e[a]=e[a]&n|r[a];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let o=e[0]+s[0];e[0]=o&65535;for(let a=1;a<8;a++)o=(e[a]+s[a]|0)+(o>>>16)|0,e[a]=o&65535;Dr(r)}update(e){mc(this);const{buffer:s,blockLen:r}=this;e=$o(e);const i=e.length;for(let n=0;n>>0,e[n++]=r[o]>>>8;return e}digest(){const{buffer:e,outputLen:s}=this;this.digestInto(e);const r=e.slice(0,s);return this.destroy(),r}}function bm(t){const e=(r,i)=>t(i).update($o(r)).digest(),s=t(new Uint8Array(32));return e.outputLen=s.outputLen,e.blockLen=s.blockLen,e.create=r=>t(r),e}const vm=bm(t=>new ym(t));function Em(t,e,s,r,i,n=20){let o=t[0],a=t[1],c=t[2],l=t[3],u=e[0],h=e[1],d=e[2],p=e[3],w=e[4],m=e[5],f=e[6],y=e[7],b=i,v=s[0],C=s[1],S=s[2],A=o,_=a,U=c,E=l,$=u,I=h,L=d,H=p,N=w,T=m,k=f,B=y,q=b,x=v,G=C,Q=S;for(let Ee=0;Ee{t.update(e);const s=e.length%16;s&&t.update(Im.subarray(s))},Nm=new Uint8Array(32);function Cc(t,e,s,r,i){const n=t(e,s,Nm),o=vm.create(n);i&&Ec(o,i),Ec(o,r);const a=new Uint8Array(16),c=im(a);bc(c,0,BigInt(i?i.length:0),!0),bc(c,8,BigInt(r.length),!0),o.update(a);const l=o.digest();return Dr(n,a),l}const Am=t=>(e,s,r)=>({encrypt(i,n){const o=i.length;n=yc(o+16,n,!1),n.set(i);const a=n.subarray(0,-16);t(e,s,a,a,1);const c=Cc(t,e,s,a,r);return n.set(c,o),Dr(c),n},decrypt(i,n){n=yc(i.length-16,n,!1);const o=i.subarray(0,-16),a=i.subarray(-16),c=Cc(t,e,s,o,r);if(!cm(a,c))throw new Error("invalid tag");return n.set(i.subarray(0,-16)),t(e,s,n,n,1),Dr(c),n}}),$u=lm({blockSize:64,nonceLength:12,tagLength:16},Am(Cm));let Ru=class extends pa{constructor(e,s){super(),this.finished=!1,this.destroyed=!1,da(e);const r=Ur(s);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const i=this.blockLen,n=new Uint8Array(i);n.set(r.length>i?e.create().update(r).digest():r);for(let o=0;onew Ru(t,e).update(s).digest();xn.create=(t,e)=>new Ru(t,e);function _m(t,e,s){return da(t),s===void 0&&(s=new Uint8Array(t.outputLen)),xn(t,Ur(s),Ur(e))}const Zn=new Uint8Array([0]),Ic=new Uint8Array;function Sm(t,e,s,r=32){if(da(t),Ai(r),r>255*t.outputLen)throw new Error("Length should be <= 255*HashLen");const i=Math.ceil(r/t.outputLen);s===void 0&&(s=Ic);const n=new Uint8Array(i*t.outputLen),o=xn.create(t,e),a=o._cloneInto(),c=new Uint8Array(o.outputLen);for(let l=0;lSm(t,_m(t,e,s),r,i);function km(t,e,s,r){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,s,r);const i=BigInt(32),n=BigInt(4294967295),o=Number(s>>i&n),a=Number(s&n),c=r?4:0,l=r?0:4;t.setUint32(e+c,o,r),t.setUint32(e+l,a,r)}function Om(t,e,s){return t&e^~t&s}function Tm(t,e,s){return t&e^t&s^e&s}let xm=class extends pa{constructor(e,s,r,i){super(),this.blockLen=e,this.outputLen=s,this.padOffset=r,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Yn(this.buffer)}update(e){Rr(this);const{view:s,buffer:r,blockLen:i}=this;e=Ur(e);const n=e.length;for(let o=0;oi-o&&(this.process(r,0),o=0);for(let h=o;hu.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h>>3,m=qt(p,17)^qt(p,19)^p>>>10;gs[h]=m+gs[h-7]+w+gs[h-16]|0}let{A:r,B:i,C:n,D:o,E:a,F:c,G:l,H:u}=this;for(let h=0;h<64;h++){const d=qt(a,6)^qt(a,11)^qt(a,25),p=u+d+Om(a,c,l)+$m[h]+gs[h]|0,w=(qt(r,2)^qt(r,13)^qt(r,22))+Tm(r,i,n)|0;u=l,l=c,c=a,a=o+p|0,o=n,n=i,i=r,r=p+w|0}r=r+this.A|0,i=i+this.B|0,n=n+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,l=l+this.G|0,u=u+this.H|0,this.set(r,i,n,o,a,c,l,u)}roundClean(){gs.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Mi=Cu(()=>new Rm);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const $n=BigInt(0),Rn=BigInt(1),Um=BigInt(2);function Js(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function Bi(t){if(!Js(t))throw new Error("Uint8Array expected")}function Lr(t,e){if(typeof e!="boolean")throw new Error(t+" boolean expected, got "+e)}const Dm=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Mr(t){Bi(t);let e="";for(let s=0;s=ss._0&&t<=ss._9)return t-ss._0;if(t>=ss.A&&t<=ss.F)return t-(ss.A-10);if(t>=ss.a&&t<=ss.f)return t-(ss.a-10)}function Br(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);const e=t.length,s=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const r=new Uint8Array(s);for(let i=0,n=0;itypeof t=="bigint"&&$n<=t;function Dn(t,e,s){return Qn(t)&&Qn(e)&&Qn(s)&&e<=t&&t$n;t>>=Rn,e+=1);return e}function jm(t,e){return t>>BigInt(e)&Rn}function qm(t,e,s){return t|(s?Rn:$n)<(Um<new Uint8Array(t),Ac=t=>Uint8Array.from(t);function Du(t,e,s){if(typeof t!="number"||t<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof s!="function")throw new Error("hmacFn must be a function");let r=eo(t),i=eo(t),n=0;const o=()=>{r.fill(1),i.fill(0),n=0},a=(...u)=>s(i,r,...u),c=(u=eo())=>{i=a(Ac([0]),u),r=a(),u.length!==0&&(i=a(Ac([1]),u),r=a())},l=()=>{if(n++>=1e3)throw new Error("drbg: tried 1000 values");let u=0;const h=[];for(;u{o(),c(u);let d;for(;!(d=h(l()));)c();return o(),d}}const Fm={bigint:t=>typeof t=="bigint",function:t=>typeof t=="function",boolean:t=>typeof t=="boolean",string:t=>typeof t=="string",stringOrUint8Array:t=>typeof t=="string"||Js(t),isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>typeof t=="function"&&Number.isSafeInteger(t.outputLen)};function Jr(t,e,s={}){const r=(i,n,o)=>{const a=Fm[n];if(typeof a!="function")throw new Error("invalid validator function");const c=t[i];if(!(o&&c===void 0)&&!a(c,t))throw new Error("param "+String(i)+" is invalid. Expected "+n+", got "+c)};for(const[i,n]of Object.entries(e))r(i,n,!1);for(const[i,n]of Object.entries(s))r(i,n,!0);return t}const zm=()=>{throw new Error("not implemented")};function Do(t){const e=new WeakMap;return(s,...r)=>{const i=e.get(s);if(i!==void 0)return i;const n=t(s,...r);return e.set(s,n),n}}var Wm=Object.freeze({__proto__:null,isBytes:Js,abytes:Bi,abool:Lr,bytesToHex:Mr,numberToHexUnpadded:Sr,hexToNumber:ga,hexToBytes:Br,bytesToNumberBE:Ws,bytesToNumberLE:Si,numberToBytesBE:jr,numberToBytesLE:Un,numberToVarBytesBE:Lm,ensureBytes:wt,concatBytes:Pi,equalBytes:Mm,utf8ToBytes:Bm,inRange:Dn,aInRange:as,bitLen:Uu,bitGet:jm,bitSet:qm,bitMask:ma,createHmacDrbg:Du,validateObject:Jr,notImplemented:zm,memoized:Do});const He=BigInt(0),ke=BigInt(1),Ms=BigInt(2),Hm=BigInt(3),Lo=BigInt(4),_c=BigInt(5),Sc=BigInt(8);function ht(t,e){const s=t%e;return s>=He?s:e+s}function Lu(t,e,s){if(eHe;)e&ke&&(r=r*t%s),t=t*t%s,e>>=ke;return r}function Ut(t,e,s){let r=t;for(;e-- >He;)r*=r,r%=s;return r}function Mo(t,e){if(t===He)throw new Error("invert: expected non-zero number");if(e<=He)throw new Error("invert: expected positive modulus, got "+e);let s=ht(t,e),r=e,i=He,n=ke;for(;s!==He;){const o=r/s,a=r%s,c=i-n*o;r=s,s=a,i=n,n=c}if(r!==ke)throw new Error("invert: does not exist");return ht(i,e)}function Vm(t){const e=(t-ke)/Ms;let s,r,i;for(s=t-ke,r=0;s%Ms===He;s/=Ms,r++);for(i=Ms;i1e3)throw new Error("Cannot find square root: likely non-prime P");if(r===1){const o=(t+ke)/Lo;return function(a,c){const l=a.pow(c,o);if(!a.eql(a.sqr(l),c))throw new Error("Cannot find square root");return l}}const n=(s+ke)/Ms;return function(o,a){if(o.pow(a,e)===o.neg(o.ONE))throw new Error("Cannot find square root");let c=r,l=o.pow(o.mul(o.ONE,i),s),u=o.pow(a,n),h=o.pow(a,s);for(;!o.eql(h,o.ONE);){if(o.eql(h,o.ZERO))return o.ZERO;let d=1;for(let w=o.sqr(h);d(r[i]="function",r),e);return Jr(t,s)}function Ym(t,e,s){if(sHe;)s&ke&&(r=t.mul(r,i)),i=t.sqr(i),s>>=ke;return r}function Xm(t,e){const s=new Array(e.length),r=e.reduce((n,o,a)=>t.is0(o)?n:(s[a]=n,t.mul(n,o)),t.ONE),i=t.inv(r);return e.reduceRight((n,o,a)=>t.is0(o)?n:(s[a]=t.mul(n,s[a]),t.mul(n,o)),i),s}function Mu(t,e){const s=e!==void 0?e:t.toString(2).length,r=Math.ceil(s/8);return{nBitLength:s,nByteLength:r}}function Bu(t,e,s=!1,r={}){if(t<=He)throw new Error("invalid field: expected ORDER > 0, got "+t);const{nBitLength:i,nByteLength:n}=Mu(t,e);if(n>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let o;const a=Object.freeze({ORDER:t,isLE:s,BITS:i,BYTES:n,MASK:ma(i),ZERO:He,ONE:ke,create:c=>ht(c,t),isValid:c=>{if(typeof c!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof c);return He<=c&&cc===He,isOdd:c=>(c&ke)===ke,neg:c=>ht(-c,t),eql:(c,l)=>c===l,sqr:c=>ht(c*c,t),add:(c,l)=>ht(c+l,t),sub:(c,l)=>ht(c-l,t),mul:(c,l)=>ht(c*l,t),pow:(c,l)=>Ym(a,c,l),div:(c,l)=>ht(c*Mo(l,t),t),sqrN:c=>c*c,addN:(c,l)=>c+l,subN:(c,l)=>c-l,mulN:(c,l)=>c*l,inv:c=>Mo(c,t),sqrt:r.sqrt||(c=>(o||(o=Km(t)),o(a,c))),invertBatch:c=>Xm(a,c),cmov:(c,l,u)=>u?l:c,toBytes:c=>s?Un(c,n):jr(c,n),fromBytes:c=>{if(c.length!==n)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+c.length);return s?Si(c):Ws(c)}});return Object.freeze(a)}function ju(t){if(typeof t!="bigint")throw new Error("field order must be bigint");const e=t.toString(2).length;return Math.ceil(e/8)}function qu(t){const e=ju(t);return e+Math.ceil(e/2)}function Zm(t,e,s=!1){const r=t.length,i=ju(e),n=qu(e);if(r<16||r1024)throw new Error("expected "+n+"-1024 bytes of input, got "+r);const o=s?Si(t):Ws(t),a=ht(o,e-ke)+ke;return s?Un(a,i):jr(a,i)}const Pc=BigInt(0),Qi=BigInt(1);function to(t,e){const s=e.negate();return t?s:e}function Fu(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+t)}function so(t,e){Fu(t,e);const s=Math.ceil(e/t)+1,r=2**(t-1);return{windows:s,windowSize:r}}function Qm(t,e){if(!Array.isArray(t))throw new Error("array expected");t.forEach((s,r)=>{if(!(s instanceof e))throw new Error("invalid point at index "+r)})}function ew(t,e){if(!Array.isArray(t))throw new Error("array of scalars expected");t.forEach((s,r)=>{if(!e.isValid(s))throw new Error("invalid scalar at index "+r)})}const ro=new WeakMap,zu=new WeakMap;function io(t){return zu.get(t)||1}function tw(t,e){return{constTimeNegate:to,hasPrecomputes(s){return io(s)!==1},unsafeLadder(s,r,i=t.ZERO){let n=s;for(;r>Pc;)r&Qi&&(i=i.add(n)),n=n.double(),r>>=Qi;return i},precomputeWindow(s,r){const{windows:i,windowSize:n}=so(r,e),o=[];let a=s,c=a;for(let l=0;l>=h,w>o&&(w-=u,i+=Qi);const m=p,f=p+Math.abs(w)-1,y=d%2!==0,b=w<0;w===0?c=c.add(to(y,r[m])):a=a.add(to(b,r[f]))}return{p:a,f:c}},wNAFUnsafe(s,r,i,n=t.ZERO){const{windows:o,windowSize:a}=so(s,e),c=BigInt(2**s-1),l=2**s,u=BigInt(s);for(let h=0;h>=u,p>a&&(p-=l,i+=Qi),p===0)continue;let w=r[d+Math.abs(p)-1];p<0&&(w=w.negate()),n=n.add(w)}return n},getPrecomputes(s,r,i){let n=ro.get(r);return n||(n=this.precomputeWindow(r,s),s!==1&&ro.set(r,i(n))),n},wNAFCached(s,r,i){const n=io(s);return this.wNAF(n,this.getPrecomputes(n,s,i),r)},wNAFCachedUnsafe(s,r,i,n){const o=io(s);return o===1?this.unsafeLadder(s,r,n):this.wNAFUnsafe(o,this.getPrecomputes(o,s,i),r,n)},setWindowSize(s,r){Fu(r,e),zu.set(s,r),ro.delete(s)}}}function sw(t,e,s,r){if(Qm(s,t),ew(r,e),s.length!==r.length)throw new Error("arrays of points and scalars must have equal length");const i=t.ZERO,n=Uu(BigInt(s.length)),o=n>12?n-3:n>4?n-2:n?2:1,a=(1<=0;h-=o){c.fill(i);for(let p=0;p>BigInt(h)&BigInt(a));c[m]=c[m].add(s[p])}let d=i;for(let p=c.length-1,w=i;p>0;p--)w=w.add(c[p]),d=d.add(w);if(u=u.add(d),h!==0)for(let p=0;pht(b,s),i=e.montgomeryBits,n=Math.ceil(i/8),o=e.nByteLength,a=e.adjustScalarBytes||(b=>b),c=e.powPminus2||(b=>Lu(b,s-BigInt(2),s));function l(b,v,C){const S=r(b*(v-C));return v=r(v-S),C=r(C+S),[v,C]}const u=(e.a-BigInt(2))/BigInt(4);function h(b,v){as("u",b,cr,s),as("scalar",v,cr,s);const C=v,S=b;let A=no,_=cr,U=b,E=no,$=cr,I;for(let H=BigInt(i-1);H>=cr;H--){const N=C>>H&no;$^=N,I=l($,A,U),A=I[0],U=I[1],I=l($,_,E),_=I[0],E=I[1],$=N;const T=A+_,k=r(T*T),B=A-_,q=r(B*B),x=k-q,G=U+E,Q=U-E,se=r(Q*T),Ee=r(G*B),de=se+Ee,Oe=se-Ee;U=r(de*de),E=r(S*r(Oe*Oe)),A=r(k*q),_=r(x*(k+r(u*x)))}I=l($,A,U),A=I[0],U=I[1],I=l($,_,E),_=I[0],E=I[1];const L=c(_);return r(A*L)}function d(b){return Un(r(b),n)}function p(b){const v=wt("u coordinate",b,n);return o===32&&(v[31]&=127),Si(v)}function w(b){const v=wt("scalar",b),C=v.length;if(C!==n&&C!==o){let S=""+n+" or "+o;throw new Error("invalid scalar, expected "+S+" bytes, got "+C)}return Si(a(v))}function m(b,v){const C=p(v),S=w(b),A=h(C,S);if(A===cr)throw new Error("invalid private or public key received");return d(A)}const f=d(e.Gu);function y(b){return m(b,f)}return{scalarMult:m,scalarMultBase:y,getSharedSecret:(b,v)=>m(b,v),getPublicKey:b=>y(b),utils:{randomPrivateKey:()=>e.randomBytes(e.nByteLength)},GuBytes:f}}const Bo=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949");BigInt(0);const nw=BigInt(1),kc=BigInt(2),ow=BigInt(3),aw=BigInt(5);BigInt(8);function cw(t){const e=BigInt(10),s=BigInt(20),r=BigInt(40),i=BigInt(80),n=Bo,o=t*t%n*t%n,a=Ut(o,kc,n)*o%n,c=Ut(a,nw,n)*t%n,l=Ut(c,aw,n)*c%n,u=Ut(l,e,n)*l%n,h=Ut(u,s,n)*u%n,d=Ut(h,r,n)*h%n,p=Ut(d,i,n)*d%n,w=Ut(p,i,n)*d%n,m=Ut(w,e,n)*l%n;return{pow_p_5_8:Ut(m,kc,n)*t%n,b2:o}}function lw(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}const jo=iw({P:Bo,a:BigInt(486662),montgomeryBits:255,nByteLength:32,Gu:BigInt(9),powPminus2:t=>{const e=Bo,{pow_p_5_8:s,b2:r}=cw(t);return ht(Ut(s,ow,e)*r,e)},adjustScalarBytes:lw,randomBytes:Gr});function Oc(t){t.lowS!==void 0&&Lr("lowS",t.lowS),t.prehash!==void 0&&Lr("prehash",t.prehash)}function uw(t){const e=Wu(t);Jr(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:s,Fp:r,a:i}=e;if(s){if(!r.eql(i,r.ZERO))throw new Error("invalid endomorphism, can only be defined for Koblitz curves that have a=0");if(typeof s!="object"||typeof s.beta!="bigint"||typeof s.splitScalar!="function")throw new Error("invalid endomorphism, expected beta: bigint and splitScalar: function")}return Object.freeze({...e})}const{bytesToNumberBE:hw,hexToBytes:dw}=Wm;class pw extends Error{constructor(e=""){super(e)}}const ns={Err:pw,_tlv:{encode:(t,e)=>{const{Err:s}=ns;if(t<0||t>256)throw new s("tlv.encode: wrong tag");if(e.length&1)throw new s("tlv.encode: unpadded data");const r=e.length/2,i=Sr(r);if(i.length/2&128)throw new s("tlv.encode: long form length too big");const n=r>127?Sr(i.length/2|128):"";return Sr(t)+n+i+e},decode(t,e){const{Err:s}=ns;let r=0;if(t<0||t>256)throw new s("tlv.encode: wrong tag");if(e.length<2||e[r++]!==t)throw new s("tlv.decode: wrong tlv");const i=e[r++],n=!!(i&128);let o=0;if(!n)o=i;else{const c=i&127;if(!c)throw new s("tlv.decode(long): indefinite length not supported");if(c>4)throw new s("tlv.decode(long): byte length is too big");const l=e.subarray(r,r+c);if(l.length!==c)throw new s("tlv.decode: length bytes not complete");if(l[0]===0)throw new s("tlv.decode(long): zero leftmost byte");for(const u of l)o=o<<8|u;if(r+=c,o<128)throw new s("tlv.decode(long): not minimal encoding")}const a=e.subarray(r,r+o);if(a.length!==o)throw new s("tlv.decode: wrong value length");return{v:a,l:e.subarray(r+o)}}},_int:{encode(t){const{Err:e}=ns;if(t{const b=f.toAffine();return Pi(Uint8Array.from([4]),s.toBytes(b.x),s.toBytes(b.y))}),n=e.fromBytes||(m=>{const f=m.subarray(1),y=s.fromBytes(f.subarray(0,s.BYTES)),b=s.fromBytes(f.subarray(s.BYTES,2*s.BYTES));return{x:y,y:b}});function o(m){const{a:f,b:y}=e,b=s.sqr(m),v=s.mul(b,m);return s.add(s.add(v,s.mul(m,f)),y)}if(!s.eql(s.sqr(e.Gy),o(e.Gx)))throw new Error("bad generator point: equation left != right");function a(m){return Dn(m,qe,e.n)}function c(m){const{allowedPrivateKeyLengths:f,nByteLength:y,wrapPrivateKey:b,n:v}=e;if(f&&typeof m!="bigint"){if(Js(m)&&(m=Mr(m)),typeof m!="string"||!f.includes(m.length))throw new Error("invalid private key");m=m.padStart(y*2,"0")}let C;try{C=typeof m=="bigint"?m:Ws(wt("private key",m,y))}catch{throw new Error("invalid private key, expected hex or "+y+" bytes, got "+typeof m)}return b&&(C=ht(C,v)),as("private key",C,qe,v),C}function l(m){if(!(m instanceof d))throw new Error("ProjectivePoint expected")}const u=Do((m,f)=>{const{px:y,py:b,pz:v}=m;if(s.eql(v,s.ONE))return{x:y,y:b};const C=m.is0();f==null&&(f=C?s.ONE:s.inv(v));const S=s.mul(y,f),A=s.mul(b,f),_=s.mul(v,f);if(C)return{x:s.ZERO,y:s.ZERO};if(!s.eql(_,s.ONE))throw new Error("invZ was invalid");return{x:S,y:A}}),h=Do(m=>{if(m.is0()){if(e.allowInfinityPoint&&!s.is0(m.py))return;throw new Error("bad point: ZERO")}const{x:f,y}=m.toAffine();if(!s.isValid(f)||!s.isValid(y))throw new Error("bad point: x or y not FE");const b=s.sqr(y),v=o(f);if(!s.eql(b,v))throw new Error("bad point: equation left != right");if(!m.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class d{constructor(f,y,b){if(this.px=f,this.py=y,this.pz=b,f==null||!s.isValid(f))throw new Error("x required");if(y==null||!s.isValid(y))throw new Error("y required");if(b==null||!s.isValid(b))throw new Error("z required");Object.freeze(this)}static fromAffine(f){const{x:y,y:b}=f||{};if(!f||!s.isValid(y)||!s.isValid(b))throw new Error("invalid affine point");if(f instanceof d)throw new Error("projective point not allowed");const v=C=>s.eql(C,s.ZERO);return v(y)&&v(b)?d.ZERO:new d(y,b,s.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(f){const y=s.invertBatch(f.map(b=>b.pz));return f.map((b,v)=>b.toAffine(y[v])).map(d.fromAffine)}static fromHex(f){const y=d.fromAffine(n(wt("pointHex",f)));return y.assertValidity(),y}static fromPrivateKey(f){return d.BASE.multiply(c(f))}static msm(f,y){return sw(d,r,f,y)}_setWindowSize(f){w.setWindowSize(this,f)}assertValidity(){h(this)}hasEvenY(){const{y:f}=this.toAffine();if(s.isOdd)return!s.isOdd(f);throw new Error("Field doesn't support isOdd")}equals(f){l(f);const{px:y,py:b,pz:v}=this,{px:C,py:S,pz:A}=f,_=s.eql(s.mul(y,A),s.mul(C,v)),U=s.eql(s.mul(b,A),s.mul(S,v));return _&&U}negate(){return new d(this.px,s.neg(this.py),this.pz)}double(){const{a:f,b:y}=e,b=s.mul(y,Tc),{px:v,py:C,pz:S}=this;let A=s.ZERO,_=s.ZERO,U=s.ZERO,E=s.mul(v,v),$=s.mul(C,C),I=s.mul(S,S),L=s.mul(v,C);return L=s.add(L,L),U=s.mul(v,S),U=s.add(U,U),A=s.mul(f,U),_=s.mul(b,I),_=s.add(A,_),A=s.sub($,_),_=s.add($,_),_=s.mul(A,_),A=s.mul(L,A),U=s.mul(b,U),I=s.mul(f,I),L=s.sub(E,I),L=s.mul(f,L),L=s.add(L,U),U=s.add(E,E),E=s.add(U,E),E=s.add(E,I),E=s.mul(E,L),_=s.add(_,E),I=s.mul(C,S),I=s.add(I,I),E=s.mul(I,L),A=s.sub(A,E),U=s.mul(I,$),U=s.add(U,U),U=s.add(U,U),new d(A,_,U)}add(f){l(f);const{px:y,py:b,pz:v}=this,{px:C,py:S,pz:A}=f;let _=s.ZERO,U=s.ZERO,E=s.ZERO;const $=e.a,I=s.mul(e.b,Tc);let L=s.mul(y,C),H=s.mul(b,S),N=s.mul(v,A),T=s.add(y,b),k=s.add(C,S);T=s.mul(T,k),k=s.add(L,H),T=s.sub(T,k),k=s.add(y,v);let B=s.add(C,A);return k=s.mul(k,B),B=s.add(L,N),k=s.sub(k,B),B=s.add(b,v),_=s.add(S,A),B=s.mul(B,_),_=s.add(H,N),B=s.sub(B,_),E=s.mul($,k),_=s.mul(I,N),E=s.add(_,E),_=s.sub(H,E),E=s.add(H,E),U=s.mul(_,E),H=s.add(L,L),H=s.add(H,L),N=s.mul($,N),k=s.mul(I,k),H=s.add(H,N),N=s.sub(L,N),N=s.mul($,N),k=s.add(k,N),L=s.mul(H,k),U=s.add(U,L),L=s.mul(B,k),_=s.mul(T,_),_=s.sub(_,L),L=s.mul(T,H),E=s.mul(B,E),E=s.add(E,L),new d(_,U,E)}subtract(f){return this.add(f.negate())}is0(){return this.equals(d.ZERO)}wNAF(f){return w.wNAFCached(this,f,d.normalizeZ)}multiplyUnsafe(f){const{endo:y,n:b}=e;as("scalar",f,os,b);const v=d.ZERO;if(f===os)return v;if(this.is0()||f===qe)return this;if(!y||w.hasPrecomputes(this))return w.wNAFCachedUnsafe(this,f,d.normalizeZ);let{k1neg:C,k1:S,k2neg:A,k2:_}=y.splitScalar(f),U=v,E=v,$=this;for(;S>os||_>os;)S&qe&&(U=U.add($)),_&qe&&(E=E.add($)),$=$.double(),S>>=qe,_>>=qe;return C&&(U=U.negate()),A&&(E=E.negate()),E=new d(s.mul(E.px,y.beta),E.py,E.pz),U.add(E)}multiply(f){const{endo:y,n:b}=e;as("scalar",f,qe,b);let v,C;if(y){const{k1neg:S,k1:A,k2neg:_,k2:U}=y.splitScalar(f);let{p:E,f:$}=this.wNAF(A),{p:I,f:L}=this.wNAF(U);E=w.constTimeNegate(S,E),I=w.constTimeNegate(_,I),I=new d(s.mul(I.px,y.beta),I.py,I.pz),v=E.add(I),C=$.add(L)}else{const{p:S,f:A}=this.wNAF(f);v=S,C=A}return d.normalizeZ([v,C])[0]}multiplyAndAddUnsafe(f,y,b){const v=d.BASE,C=(A,_)=>_===os||_===qe||!A.equals(v)?A.multiplyUnsafe(_):A.multiply(_),S=C(this,y).add(C(f,b));return S.is0()?void 0:S}toAffine(f){return u(this,f)}isTorsionFree(){const{h:f,isTorsionFree:y}=e;if(f===qe)return!0;if(y)return y(d,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:f,clearCofactor:y}=e;return f===qe?this:y?y(d,this):this.multiplyUnsafe(e.h)}toRawBytes(f=!0){return Lr("isCompressed",f),this.assertValidity(),i(d,this,f)}toHex(f=!0){return Lr("isCompressed",f),Mr(this.toRawBytes(f))}}d.BASE=new d(e.Gx,e.Gy,s.ONE),d.ZERO=new d(s.ZERO,s.ONE,s.ZERO);const p=e.nBitLength,w=tw(d,e.endo?Math.ceil(p/2):p);return{CURVE:e,ProjectivePoint:d,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:a}}function gw(t){const e=Wu(t);return Jr(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function mw(t){const e=gw(t),{Fp:s,n:r}=e,i=s.BYTES+1,n=2*s.BYTES+1;function o(N){return ht(N,r)}function a(N){return Mo(N,r)}const{ProjectivePoint:c,normPrivateKeyToScalar:l,weierstrassEquation:u,isWithinCurveOrder:h}=fw({...e,toBytes(N,T,k){const B=T.toAffine(),q=s.toBytes(B.x),x=Pi;return Lr("isCompressed",k),k?x(Uint8Array.from([T.hasEvenY()?2:3]),q):x(Uint8Array.from([4]),q,s.toBytes(B.y))},fromBytes(N){const T=N.length,k=N[0],B=N.subarray(1);if(T===i&&(k===2||k===3)){const q=Ws(B);if(!Dn(q,qe,s.ORDER))throw new Error("Point is not on curve");const x=u(q);let G;try{G=s.sqrt(x)}catch(se){const Ee=se instanceof Error?": "+se.message:"";throw new Error("Point is not on curve"+Ee)}const Q=(G&qe)===qe;return(k&1)===1!==Q&&(G=s.neg(G)),{x:q,y:G}}else if(T===n&&k===4){const q=s.fromBytes(B.subarray(0,s.BYTES)),x=s.fromBytes(B.subarray(s.BYTES,2*s.BYTES));return{x:q,y:x}}else{const q=i,x=n;throw new Error("invalid Point, expected length of "+q+", or uncompressed "+x+", got "+T)}}}),d=N=>Mr(jr(N,e.nByteLength));function p(N){const T=r>>qe;return N>T}function w(N){return p(N)?o(-N):N}const m=(N,T,k)=>Ws(N.slice(T,k));class f{constructor(T,k,B){this.r=T,this.s=k,this.recovery=B,this.assertValidity()}static fromCompact(T){const k=e.nByteLength;return T=wt("compactSignature",T,k*2),new f(m(T,0,k),m(T,k,2*k))}static fromDER(T){const{r:k,s:B}=ns.toSig(wt("DER",T));return new f(k,B)}assertValidity(){as("r",this.r,qe,r),as("s",this.s,qe,r)}addRecoveryBit(T){return new f(this.r,this.s,T)}recoverPublicKey(T){const{r:k,s:B,recovery:q}=this,x=A(wt("msgHash",T));if(q==null||![0,1,2,3].includes(q))throw new Error("recovery id invalid");const G=q===2||q===3?k+e.n:k;if(G>=s.ORDER)throw new Error("recovery id 2 or 3 invalid");const Q=(q&1)===0?"02":"03",se=c.fromHex(Q+d(G)),Ee=a(G),de=o(-x*Ee),Oe=o(B*Ee),Le=c.BASE.multiplyAndAddUnsafe(se,de,Oe);if(!Le)throw new Error("point at infinify");return Le.assertValidity(),Le}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new f(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return Br(this.toDERHex())}toDERHex(){return ns.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Br(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}const y={isValidPrivateKey(N){try{return l(N),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{const N=qu(e.n);return Zm(e.randomBytes(N),e.n)},precompute(N=8,T=c.BASE){return T._setWindowSize(N),T.multiply(BigInt(3)),T}};function b(N,T=!0){return c.fromPrivateKey(N).toRawBytes(T)}function v(N){const T=Js(N),k=typeof N=="string",B=(T||k)&&N.length;return T?B===i||B===n:k?B===2*i||B===2*n:N instanceof c}function C(N,T,k=!0){if(v(N))throw new Error("first arg must be private key");if(!v(T))throw new Error("second arg must be public key");return c.fromHex(T).multiply(l(N)).toRawBytes(k)}const S=e.bits2int||function(N){if(N.length>8192)throw new Error("input is too large");const T=Ws(N),k=N.length*8-e.nBitLength;return k>0?T>>BigInt(k):T},A=e.bits2int_modN||function(N){return o(S(N))},_=ma(e.nBitLength);function U(N){return as("num < 2^"+e.nBitLength,N,os,_),jr(N,e.nByteLength)}function E(N,T,k=$){if(["recovered","canonical"].some($e=>$e in k))throw new Error("sign() legacy options not supported");const{hash:B,randomBytes:q}=e;let{lowS:x,prehash:G,extraEntropy:Q}=k;x==null&&(x=!0),N=wt("msgHash",N),Oc(k),G&&(N=wt("prehashed msgHash",B(N)));const se=A(N),Ee=l(T),de=[U(Ee),U(se)];if(Q!=null&&Q!==!1){const $e=Q===!0?q(s.BYTES):Q;de.push(wt("extraEntropy",$e))}const Oe=Pi(...de),Le=se;function Xe($e){const Re=S($e);if(!h(Re))return;const Os=a(Re),Xt=c.BASE.multiply(Re).toAffine(),jt=o(Xt.x);if(jt===os)return;const Zt=o(Os*o(Le+jt*Ee));if(Zt===os)return;let ir=(Xt.x===jt?0:2)|Number(Xt.y&qe),Hi=Zt;return x&&p(Zt)&&(Hi=w(Zt),ir^=1),new f(jt,Hi,ir)}return{seed:Oe,k2sig:Xe}}const $={lowS:e.lowS,prehash:!1},I={lowS:e.lowS,prehash:!1};function L(N,T,k=$){const{seed:B,k2sig:q}=E(N,T,k),x=e;return Du(x.hash.outputLen,x.nByteLength,x.hmac)(B,q)}c.BASE._setWindowSize(8);function H(N,T,k,B=I){const q=N;T=wt("msgHash",T),k=wt("publicKey",k);const{lowS:x,prehash:G,format:Q}=B;if(Oc(B),"strict"in B)throw new Error("options.strict was renamed to lowS");if(Q!==void 0&&Q!=="compact"&&Q!=="der")throw new Error("format must be compact or der");const se=typeof q=="string"||Js(q),Ee=!se&&!Q&&typeof q=="object"&&q!==null&&typeof q.r=="bigint"&&typeof q.s=="bigint";if(!se&&!Ee)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let de,Oe;try{if(Ee&&(de=new f(q.r,q.s)),se){try{Q!=="compact"&&(de=f.fromDER(q))}catch(Zt){if(!(Zt instanceof ns.Err))throw Zt}!de&&Q!=="der"&&(de=f.fromCompact(q))}Oe=c.fromHex(k)}catch{return!1}if(!de||x&&de.hasHighS())return!1;G&&(T=e.hash(T));const{r:Le,s:Xe}=de,$e=A(T),Re=a(Xe),Os=o($e*Re),Xt=o(Le*Re),jt=c.BASE.multiplyAndAddUnsafe(Oe,Os,Xt)?.toAffine();return jt?o(jt.x)===Le:!1}return{CURVE:e,getPublicKey:b,getSharedSecret:C,sign:L,verify:H,ProjectivePoint:c,Signature:f,utils:y}}function ww(t){return{hash:t,hmac:(e,...s)=>xn(t,e,Eg(...s)),randomBytes:Gr}}function yw(t,e){const s=r=>mw({...t,...ww(r)});return{...s(e),create:s}}const Hu=Bu(BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff")),bw=Hu.create(BigInt("-3")),vw=BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Ew=yw({a:bw,b:vw,Fp:Hu,n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"),h:BigInt(1),lowS:!1},Mi),Vu="base10",st="base16",Mt="base64pad",bs="base64url",ji="utf8",Ku=0,cs=1,qi=2,Cw=0,xc=1,yi=12,wa=32;function Iw(){const t=jo.utils.randomPrivateKey(),e=jo.getPublicKey(t);return{privateKey:dt(t,st),publicKey:dt(e,st)}}function qo(){const t=Gr(wa);return dt(t,st)}function Nw(t,e){const s=jo.getSharedSecret(kt(t,st),kt(e,st)),r=Pm(Mi,s,void 0,void 0,wa);return dt(r,st)}function dn(t){const e=Mi(kt(t,st));return dt(e,st)}function Kt(t){const e=Mi(kt(t,ji));return dt(e,st)}function Gu(t){return kt(`${t}`,Vu)}function Ys(t){return Number(dt(t,Vu))}function Ju(t){return t.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Yu(t){const e=t.replace(/-/g,"+").replace(/_/g,"/"),s=(4-e.length%4)%4;return e+"=".repeat(s)}function Aw(t){const e=Gu(typeof t.type<"u"?t.type:Ku);if(Ys(e)===cs&&typeof t.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");const s=typeof t.senderPublicKey<"u"?kt(t.senderPublicKey,st):void 0,r=typeof t.iv<"u"?kt(t.iv,st):Gr(yi),i=kt(t.symKey,st),n=$u(i,r).encrypt(kt(t.message,ji)),o=Xu({type:e,sealed:n,iv:r,senderPublicKey:s});return t.encoding===bs?Ju(o):o}function _w(t){const e=kt(t.symKey,st),{sealed:s,iv:r}=ki({encoded:t.encoded,encoding:t.encoding}),i=$u(e,r).decrypt(s);if(i===null)throw new Error("Failed to decrypt");return dt(i,ji)}function Sw(t,e){const s=Gu(qi),r=Gr(yi),i=kt(t,ji),n=Xu({type:s,sealed:i,iv:r});return e===bs?Ju(n):n}function Pw(t,e){const{sealed:s}=ki({encoded:t,encoding:e});return dt(s,ji)}function Xu(t){if(Ys(t.type)===qi)return dt(pi([t.type,t.sealed]),Mt);if(Ys(t.type)===cs){if(typeof t.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");return dt(pi([t.type,t.senderPublicKey,t.iv,t.sealed]),Mt)}return dt(pi([t.type,t.iv,t.sealed]),Mt)}function ki(t){const e=(t.encoding||Mt)===bs?Yu(t.encoded):t.encoded,s=kt(e,Mt),r=s.slice(Cw,xc),i=xc;if(Ys(r)===cs){const c=i+wa,l=c+yi,u=s.slice(i,c),h=s.slice(c,l),d=s.slice(l);return{type:r,sealed:d,iv:h,senderPublicKey:u}}if(Ys(r)===qi){const c=s.slice(i),l=Gr(yi);return{type:r,sealed:c,iv:l}}const n=i+yi,o=s.slice(i,n),a=s.slice(n);return{type:r,sealed:a,iv:o}}function kw(t,e){const s=ki({encoded:t,encoding:e?.encoding});return Zu({type:Ys(s.type),senderPublicKey:typeof s.senderPublicKey<"u"?dt(s.senderPublicKey,st):void 0,receiverPublicKey:e?.receiverPublicKey})}function Zu(t){const e=t?.type||Ku;if(e===cs){if(typeof t?.senderPublicKey>"u")throw new Error("missing sender public key");if(typeof t?.receiverPublicKey>"u")throw new Error("missing receiver public key")}return{type:e,senderPublicKey:t?.senderPublicKey,receiverPublicKey:t?.receiverPublicKey}}function $c(t){return t.type===cs&&typeof t.senderPublicKey=="string"&&typeof t.receiverPublicKey=="string"}function Rc(t){return t.type===qi}function Ow(t){const e=Buffer.from(t.x,"base64"),s=Buffer.from(t.y,"base64");return pi([new Uint8Array([4]),e,s])}function Tw(t,e){const[s,r,i]=t.split("."),n=Buffer.from(Yu(i),"base64");if(n.length!==64)throw new Error("Invalid signature length");const o=n.slice(0,32),a=n.slice(32,64),c=`${s}.${r}`,l=Mi(c),u=Ow(e);if(!Ew.verify(pi([o,a]),l,u))throw new Error("Invalid signature");return Co(t).payload}const xw="irn";function Nn(t){return t?.relay||{protocol:xw}}function ui(t){const e=Gh[t];if(typeof e>"u")throw new Error(`Relay Protocol not supported: ${t}`);return e}function $w(t,e="-"){const s={},r="relay"+e;return Object.keys(t).forEach(i=>{if(i.startsWith(r)){const n=i.replace(r,""),o=t[i];s[n]=o}}),s}function Uc(t){if(!t.includes("wc:")){const l=vu(t);l!=null&&l.includes("wc:")&&(t=l)}t=t.includes("wc://")?t.replace("wc://",""):t,t=t.includes("wc:")?t.replace("wc:",""):t;const e=t.indexOf(":"),s=t.indexOf("?")!==-1?t.indexOf("?"):void 0,r=t.substring(0,e),i=t.substring(e+1,s).split("@"),n=typeof s<"u"?t.substring(s):"",o=new URLSearchParams(n),a={};o.forEach((l,u)=>{a[u]=l});const c=typeof a.methods=="string"?a.methods.split(","):void 0;return{protocol:r,topic:Rw(i[0]),version:parseInt(i[1],10),symKey:a.symKey,relay:$w(a),methods:c,expiryTimestamp:a.expiryTimestamp?parseInt(a.expiryTimestamp,10):void 0}}function Rw(t){return t.startsWith("//")?t.substring(2):t}function Uw(t,e="-"){const s="relay",r={};return Object.keys(t).forEach(i=>{const n=i,o=s+e+n;t[n]&&(r[o]=t[n])}),r}function Dc(t){const e=new URLSearchParams,s=Uw(t.relay);Object.keys(s).sort().forEach(i=>{e.set(i,s[i])}),e.set("symKey",t.symKey),t.expiryTimestamp&&e.set("expiryTimestamp",t.expiryTimestamp.toString()),t.methods&&e.set("methods",t.methods.join(","));const r=e.toString();return`${t.protocol}:${t.topic}@${t.version}?${r}`}function en(t,e,s){return`${t}?wc_ev=${s}&topic=${e}`}var Dw=Object.defineProperty,Lw=Object.defineProperties,Mw=Object.getOwnPropertyDescriptors,Lc=Object.getOwnPropertySymbols,Bw=Object.prototype.hasOwnProperty,jw=Object.prototype.propertyIsEnumerable,Mc=(t,e,s)=>e in t?Dw(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,qw=(t,e)=>{for(var s in e||(e={}))Bw.call(e,s)&&Mc(t,s,e[s]);if(Lc)for(var s of Lc(e))jw.call(e,s)&&Mc(t,s,e[s]);return t},Fw=(t,e)=>Lw(t,Mw(e));function Yr(t){const e=[];return t.forEach(s=>{const[r,i]=s.split(":");e.push(`${r}:${i}`)}),e}function zw(t){const e=[];return Object.values(t).forEach(s=>{e.push(...Yr(s.accounts))}),e}function Ww(t,e){const s=[];return Object.values(t).forEach(r=>{Yr(r.accounts).includes(e)&&s.push(...r.methods)}),s}function Hw(t,e){const s=[];return Object.values(t).forEach(r=>{Yr(r.accounts).includes(e)&&s.push(...r.events)}),s}function Ln(t){return t.includes(":")}function Pr(t){return Ln(t)?t.split(":")[0]:t}function Bc(t){var e,s,r;const i={};if(!_s(t))return i;for(const[n,o]of Object.entries(t)){const a=Ln(n)?[n]:o.chains,c=o.methods||[],l=o.events||[],u=Pr(n);i[u]=Fw(qw({},i[u]),{chains:Jt(a,(e=i[u])==null?void 0:e.chains),methods:Jt(c,(s=i[u])==null?void 0:s.methods),events:Jt(l,(r=i[u])==null?void 0:r.events)})}return i}function Vw(t){const e={};return t?.forEach(s=>{var r;const[i,n]=s.split(":");e[i]||(e[i]={accounts:[],chains:[],events:[],methods:[]}),e[i].accounts.push(s),(r=e[i].chains)==null||r.push(`${i}:${n}`)}),e}function jc(t,e){e=e.map(r=>r.replace("did:pkh:",""));const s=Vw(e);for(const[r,i]of Object.entries(s))i.methods?i.methods=Jt(i.methods,t):i.methods=t,i.events=["chainChanged","accountsChanged"];return s}function Kw(t,e){var s,r,i,n,o,a;const c=Bc(t),l=Bc(e),u={},h=Object.keys(c).concat(Object.keys(l));for(const d of h)u[d]={chains:Jt((s=c[d])==null?void 0:s.chains,(r=l[d])==null?void 0:r.chains),methods:Jt((i=c[d])==null?void 0:i.methods,(n=l[d])==null?void 0:n.methods),events:Jt((o=c[d])==null?void 0:o.events,(a=l[d])==null?void 0:a.events)};return u}const Gw={INVALID_METHOD:{message:"Invalid method.",code:1001},INVALID_EVENT:{message:"Invalid event.",code:1002},INVALID_UPDATE_REQUEST:{message:"Invalid update request.",code:1003},INVALID_EXTEND_REQUEST:{message:"Invalid extend request.",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:"Invalid session settle request.",code:1005},UNAUTHORIZED_METHOD:{message:"Unauthorized method.",code:3001},UNAUTHORIZED_EVENT:{message:"Unauthorized event.",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:"Unauthorized update request.",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:"Unauthorized extend request.",code:3004},USER_REJECTED:{message:"User rejected.",code:5e3},USER_REJECTED_CHAINS:{message:"User rejected chains.",code:5001},USER_REJECTED_METHODS:{message:"User rejected methods.",code:5002},USER_REJECTED_EVENTS:{message:"User rejected events.",code:5003},UNSUPPORTED_CHAINS:{message:"Unsupported chains.",code:5100},UNSUPPORTED_METHODS:{message:"Unsupported methods.",code:5101},UNSUPPORTED_EVENTS:{message:"Unsupported events.",code:5102},UNSUPPORTED_ACCOUNTS:{message:"Unsupported accounts.",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:"Unsupported namespace key.",code:5104},USER_DISCONNECTED:{message:"User disconnected.",code:6e3},SESSION_SETTLEMENT_FAILED:{message:"Session settlement failed.",code:7e3},WC_METHOD_UNSUPPORTED:{message:"Unsupported wc_ method.",code:10001}},Jw={NOT_INITIALIZED:{message:"Not initialized.",code:1},NO_MATCHING_KEY:{message:"No matching key.",code:2},RESTORE_WILL_OVERRIDE:{message:"Restore will override.",code:3},RESUBSCRIBED:{message:"Resubscribed.",code:4},MISSING_OR_INVALID:{message:"Missing or invalid.",code:5},EXPIRED:{message:"Expired.",code:6},UNKNOWN_TYPE:{message:"Unknown type.",code:7},MISMATCHED_TOPIC:{message:"Mismatched topic.",code:8},NON_CONFORMING_NAMESPACES:{message:"Non conforming namespaces.",code:9}};function R(t,e){const{message:s,code:r}=Jw[t];return{message:e?`${s} ${e}`:s,code:r}}function we(t,e){const{message:s,code:r}=Gw[t];return{message:e?`${s} ${e}`:s,code:r}}function As(t,e){return!!Array.isArray(t)}function _s(t){return Object.getPrototypeOf(t)===Object.prototype&&Object.keys(t).length}function Je(t){return typeof t>"u"}function xe(t,e){return e&&Je(t)?!0:typeof t=="string"&&!!t.trim().length}function ya(t,e){return e&&Je(t)?!0:typeof t=="number"&&!isNaN(t)}function Yw(t,e){const{requiredNamespaces:s}=e,r=Object.keys(t.namespaces),i=Object.keys(s);let n=!0;return Fs(i,r)?(r.forEach(o=>{const{accounts:a,methods:c,events:l}=t.namespaces[o],u=Yr(a),h=s[o];(!Fs(gu(o,h),u)||!Fs(h.methods,c)||!Fs(h.events,l))&&(n=!1)}),n):!1}function An(t){return xe(t,!1)&&t.includes(":")?t.split(":").length===2:!1}function Xw(t){if(xe(t,!1)&&t.includes(":")){const e=t.split(":");if(e.length===3){const s=e[0]+":"+e[1];return!!e[2]&&An(s)}}return!1}function Zw(t){function e(s){try{return typeof new URL(s)<"u"}catch{return!1}}try{if(xe(t,!1)){if(e(t))return!0;const s=vu(t);return e(s)}}catch{}return!1}function Qw(t){var e;return(e=t?.proposer)==null?void 0:e.publicKey}function ey(t){return t?.topic}function ty(t,e){let s=null;return xe(t?.publicKey,!1)||(s=R("MISSING_OR_INVALID",`${e} controller public key should be a string`)),s}function qc(t){let e=!0;return As(t)?t.length&&(e=t.every(s=>xe(s,!1))):e=!1,e}function sy(t,e,s){let r=null;return As(e)&&e.length?e.forEach(i=>{r||An(i)||(r=we("UNSUPPORTED_CHAINS",`${s}, chain ${i} should be a string and conform to "namespace:chainId" format`))}):An(t)||(r=we("UNSUPPORTED_CHAINS",`${s}, chains must be defined as "namespace:chainId" e.g. "eip155:1": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: ["eip155:1", "eip155:5"] }`)),r}function ry(t,e,s){let r=null;return Object.entries(t).forEach(([i,n])=>{if(r)return;const o=sy(i,gu(i,n),`${e} ${s}`);o&&(r=o)}),r}function iy(t,e){let s=null;return As(t)?t.forEach(r=>{s||Xw(r)||(s=we("UNSUPPORTED_ACCOUNTS",`${e}, account ${r} should be a string and conform to "namespace:chainId:address" format`))}):s=we("UNSUPPORTED_ACCOUNTS",`${e}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),s}function ny(t,e){let s=null;return Object.values(t).forEach(r=>{if(s)return;const i=iy(r?.accounts,`${e} namespace`);i&&(s=i)}),s}function oy(t,e){let s=null;return qc(t?.methods)?qc(t?.events)||(s=we("UNSUPPORTED_EVENTS",`${e}, events should be an array of strings or empty array for no events`)):s=we("UNSUPPORTED_METHODS",`${e}, methods should be an array of strings or empty array for no methods`),s}function Qu(t,e){let s=null;return Object.values(t).forEach(r=>{if(s)return;const i=oy(r,`${e}, namespace`);i&&(s=i)}),s}function ay(t,e,s){let r=null;if(t&&_s(t)){const i=Qu(t,e);i&&(r=i);const n=ry(t,e,s);n&&(r=n)}else r=R("MISSING_OR_INVALID",`${e}, ${s} should be an object with data`);return r}function oo(t,e){let s=null;if(t&&_s(t)){const r=Qu(t,e);r&&(s=r);const i=ny(t,e);i&&(s=i)}else s=R("MISSING_OR_INVALID",`${e}, namespaces should be an object with data`);return s}function eh(t){return xe(t.protocol,!0)}function cy(t,e){let s=!1;return t?t&&As(t)&&t.length&&t.forEach(r=>{s=eh(r)}):s=!0,s}function ly(t){return typeof t=="number"}function ut(t){return typeof t<"u"&&typeof t!==null}function uy(t){return!(!t||typeof t!="object"||!t.code||!ya(t.code,!1)||!t.message||!xe(t.message,!1))}function hy(t){return!(Je(t)||!xe(t.method,!1))}function dy(t){return!(Je(t)||Je(t.result)&&Je(t.error)||!ya(t.id,!1)||!xe(t.jsonrpc,!1))}function py(t){return!(Je(t)||!xe(t.name,!1))}function Fc(t,e){return!(!An(e)||!zw(t).includes(e))}function fy(t,e,s){return xe(s,!1)?Ww(t,e).includes(s):!1}function gy(t,e,s){return xe(s,!1)?Hw(t,e).includes(s):!1}function zc(t,e,s){let r=null;const i=my(t),n=wy(e),o=Object.keys(i),a=Object.keys(n),c=Wc(Object.keys(t)),l=Wc(Object.keys(e)),u=c.filter(h=>!l.includes(h));return u.length&&(r=R("NON_CONFORMING_NAMESPACES",`${s} namespaces keys don't satisfy requiredNamespaces.
- Required: ${u.toString()}
- Received: ${Object.keys(e).toString()}`)),Fs(o,a)||(r=R("NON_CONFORMING_NAMESPACES",`${s} namespaces chains don't satisfy required namespaces.
- Required: ${o.toString()}
- Approved: ${a.toString()}`)),Object.keys(e).forEach(h=>{if(!h.includes(":")||r)return;const d=Yr(e[h].accounts);d.includes(h)||(r=R("NON_CONFORMING_NAMESPACES",`${s} namespaces accounts don't satisfy namespace accounts for ${h}
- Required: ${h}
- Approved: ${d.toString()}`))}),o.forEach(h=>{r||(Fs(i[h].methods,n[h].methods)?Fs(i[h].events,n[h].events)||(r=R("NON_CONFORMING_NAMESPACES",`${s} namespaces events don't satisfy namespace events for ${h}`)):r=R("NON_CONFORMING_NAMESPACES",`${s} namespaces methods don't satisfy namespace methods for ${h}`))}),r}function my(t){const e={};return Object.keys(t).forEach(s=>{var r;s.includes(":")?e[s]=t[s]:(r=t[s].chains)==null||r.forEach(i=>{e[i]={methods:t[s].methods,events:t[s].events}})}),e}function Wc(t){return[...new Set(t.map(e=>e.includes(":")?e.split(":")[0]:e))]}function wy(t){const e={};return Object.keys(t).forEach(s=>{s.includes(":")?e[s]=t[s]:Yr(t[s].accounts)?.forEach(i=>{e[i]={accounts:t[s].accounts.filter(n=>n.includes(`${i}:`)),methods:t[s].methods,events:t[s].events}})}),e}function yy(t,e){return ya(t,!1)&&t<=e.max&&t>=e.min}function Hc(){const t=Di();return new Promise(e=>{switch(t){case bt.browser:e(by());break;case bt.reactNative:e(vy());break;case bt.node:e(Ey());break;default:e(!0)}})}function by(){return Kr()&&navigator?.onLine}async function vy(){return ks()&&typeof global<"u"&&global!=null&&global.NetInfo?(await(global==null?void 0:global.NetInfo.fetch()))?.isConnected:!0}function Ey(){return!0}function Cy(t){switch(Di()){case bt.browser:Iy(t);break;case bt.reactNative:Ny(t);break}}function Iy(t){!ks()&&Kr()&&(window.addEventListener("online",()=>t(!0)),window.addEventListener("offline",()=>t(!1)))}function Ny(t){ks()&&typeof global<"u"&&global!=null&&global.NetInfo&&global?.NetInfo.addEventListener(e=>t(e?.isConnected))}function Ay(){var t;return Kr()&&ls.getDocument()?((t=ls.getDocument())==null?void 0:t.visibilityState)==="visible":!0}const ao={};class ti{static get(e){return ao[e]}static set(e,s){ao[e]=s}static delete(e){delete ao[e]}}var _y={};const th="wc",sh=2,Fo="core",Yt=`${th}@2:${Fo}:`,Sy={logger:"error"},Py={database:":memory:"},ky="crypto",Vc="client_ed25519_seed",Oy=D.ONE_DAY,Ty="keychain",xy="0.3",$y="messages",Ry="0.3",Kc=D.SIX_HOURS,Uy="publisher",rh="irn",Dy="error",ih="wss://relay.walletconnect.org",Ly="relayer",Fe={message:"relayer_message",message_ack:"relayer_message_ack",connect:"relayer_connect",disconnect:"relayer_disconnect",error:"relayer_error",connection_stalled:"relayer_connection_stalled",transport_closed:"relayer_transport_closed",publish:"relayer_publish"},My="_subscription",At={payload:"payload",connect:"connect",disconnect:"disconnect",error:"error"},By=.1,zo="2.21.0",Ae={link_mode:"link_mode",relay:"relay"},pn={inbound:"inbound",outbound:"outbound"},jy="0.3",qy="WALLETCONNECT_CLIENT_ID",Gc="WALLETCONNECT_LINK_MODE_APPS",gt={created:"subscription_created",deleted:"subscription_deleted",expired:"subscription_expired",disabled:"subscription_disabled",sync:"subscription_sync",resubscribed:"subscription_resubscribed"},Fy="subscription",zy="0.3",Wy="pairing",Hy="0.3",si={wc_pairingDelete:{req:{ttl:D.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:D.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:D.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:D.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:D.ONE_DAY,prompt:!1,tag:0},res:{ttl:D.ONE_DAY,prompt:!1,tag:0}}},Bs={create:"pairing_create",expire:"pairing_expire",delete:"pairing_delete",ping:"pairing_ping"},xt={created:"history_created",updated:"history_updated",deleted:"history_deleted",sync:"history_sync"},Vy="history",Ky="0.3",Gy="expirer",Pt={created:"expirer_created",deleted:"expirer_deleted",expired:"expirer_expired",sync:"expirer_sync"},Jy="0.3",Yy="verify-api",Xy="https://verify.walletconnect.com",nh="https://verify.walletconnect.org",bi=nh,Zy=`${bi}/v3`,Qy=[Xy,nh],eb="echo",tb="https://echo.walletconnect.com",Wt={pairing_started:"pairing_started",pairing_uri_validation_success:"pairing_uri_validation_success",pairing_uri_not_expired:"pairing_uri_not_expired",store_new_pairing:"store_new_pairing",subscribing_pairing_topic:"subscribing_pairing_topic",subscribe_pairing_topic_success:"subscribe_pairing_topic_success",existing_pairing:"existing_pairing",pairing_not_expired:"pairing_not_expired",emit_inactive_pairing:"emit_inactive_pairing",emit_session_proposal:"emit_session_proposal",subscribing_to_pairing_topic:"subscribing_to_pairing_topic"},is={no_wss_connection:"no_wss_connection",no_internet_connection:"no_internet_connection",malformed_pairing_uri:"malformed_pairing_uri",active_pairing_already_exists:"active_pairing_already_exists",subscribe_pairing_topic_failure:"subscribe_pairing_topic_failure",pairing_expired:"pairing_expired",proposal_expired:"proposal_expired",proposal_listener_not_found:"proposal_listener_not_found"},$t={session_approve_started:"session_approve_started",proposal_not_expired:"proposal_not_expired",session_namespaces_validation_success:"session_namespaces_validation_success",create_session_topic:"create_session_topic",subscribing_session_topic:"subscribing_session_topic",subscribe_session_topic_success:"subscribe_session_topic_success",publishing_session_approve:"publishing_session_approve",session_approve_publish_success:"session_approve_publish_success",store_session:"store_session",publishing_session_settle:"publishing_session_settle",session_settle_publish_success:"session_settle_publish_success"},xs={no_internet_connection:"no_internet_connection",no_wss_connection:"no_wss_connection",proposal_expired:"proposal_expired",subscribe_session_topic_failure:"subscribe_session_topic_failure",session_approve_publish_failure:"session_approve_publish_failure",session_settle_publish_failure:"session_settle_publish_failure",session_approve_namespace_validation_failure:"session_approve_namespace_validation_failure",proposal_not_found:"proposal_not_found"},$s={authenticated_session_approve_started:"authenticated_session_approve_started",create_authenticated_session_topic:"create_authenticated_session_topic",cacaos_verified:"cacaos_verified",store_authenticated_session:"store_authenticated_session",subscribing_authenticated_session_topic:"subscribing_authenticated_session_topic",subscribe_authenticated_session_topic_success:"subscribe_authenticated_session_topic_success",publishing_authenticated_session_approve:"publishing_authenticated_session_approve"},ri={no_internet_connection:"no_internet_connection",invalid_cacao:"invalid_cacao",subscribe_authenticated_session_topic_failure:"subscribe_authenticated_session_topic_failure",authenticated_session_approve_publish_failure:"authenticated_session_approve_publish_failure",authenticated_session_pending_request_not_found:"authenticated_session_pending_request_not_found"},sb=.1,rb="event-client",ib=86400,nb="https://pulse.walletconnect.org/batch";function ob(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var s=new Uint8Array(256),r=0;r>>0,C=new Uint8Array(v);y!==b;){for(var S=w[y],A=0,_=v-1;(S!==0||A>>0,C[_]=S%a>>>0,S=S/a>>>0;if(S!==0)throw new Error("Non-zero carry");f=A,y++}for(var U=v-f;U!==v&&C[U]===0;)U++;for(var E=c.repeat(m);U>>0,v=new Uint8Array(b);w[m];){var C=s[w.charCodeAt(m)];if(C===255)return;for(var S=0,A=b-1;(C!==0||S>>0,v[A]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error("Non-zero carry");y=S,m++}if(w[m]!==" "){for(var _=b-y;_!==b&&v[_]===0;)_++;for(var U=new Uint8Array(f+(b-_)),E=f;_!==b;)U[E++]=v[_++];return U}}}function p(w){var m=d(w);if(m)return m;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:d,decode:p}}var ab=ob,cb=ab;const oh=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")},lb=t=>new TextEncoder().encode(t),ub=t=>new TextDecoder().decode(t);class hb{constructor(e,s,r){this.name=e,this.prefix=s,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class db{constructor(e,s,r){if(this.name=e,this.prefix=s,s.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=s.codePointAt(0),this.baseDecode=r}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return ah(this,e)}}class pb{constructor(e){this.decoders=e}or(e){return ah(this,e)}decode(e){const s=e[0],r=this.decoders[s];if(r)return r.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const ah=(t,e)=>new pb({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}});class fb{constructor(e,s,r,i){this.name=e,this.prefix=s,this.baseEncode=r,this.baseDecode=i,this.encoder=new hb(e,s,r),this.decoder=new db(e,s,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const Mn=({name:t,prefix:e,encode:s,decode:r})=>new fb(t,e,s,r),Fi=({prefix:t,name:e,alphabet:s})=>{const{encode:r,decode:i}=cb(s,e);return Mn({prefix:t,name:e,encode:r,decode:n=>oh(i(n))})},gb=(t,e,s,r)=>{const i={};for(let u=0;u=8&&(a-=8,o[l++]=255&c>>a)}if(a>=s||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},mb=(t,e,s)=>{const r=e[e.length-1]==="=",i=(1<s;)o-=s,n+=e[i&a>>o];if(o&&(n+=e[i&a<Mn({prefix:e,name:t,encode(i){return mb(i,r,s)},decode(i){return gb(i,r,s,t)}}),wb=Mn({prefix:"\0",name:"identity",encode:t=>ub(t),decode:t=>lb(t)});var yb=Object.freeze({__proto__:null,identity:wb});const bb=Ye({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var vb=Object.freeze({__proto__:null,base2:bb});const Eb=Ye({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Cb=Object.freeze({__proto__:null,base8:Eb});const Ib=Fi({prefix:"9",name:"base10",alphabet:"0123456789"});var Nb=Object.freeze({__proto__:null,base10:Ib});const Ab=Ye({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),_b=Ye({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Sb=Object.freeze({__proto__:null,base16:Ab,base16upper:_b});const Pb=Ye({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),kb=Ye({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ob=Ye({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Tb=Ye({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),xb=Ye({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),$b=Ye({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Rb=Ye({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Ub=Ye({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Db=Ye({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Lb=Object.freeze({__proto__:null,base32:Pb,base32upper:kb,base32pad:Ob,base32padupper:Tb,base32hex:xb,base32hexupper:$b,base32hexpad:Rb,base32hexpadupper:Ub,base32z:Db});const Mb=Fi({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Bb=Fi({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var jb=Object.freeze({__proto__:null,base36:Mb,base36upper:Bb});const qb=Fi({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Fb=Fi({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var zb=Object.freeze({__proto__:null,base58btc:qb,base58flickr:Fb});const Wb=Ye({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Hb=Ye({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Vb=Ye({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Kb=Ye({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Gb=Object.freeze({__proto__:null,base64:Wb,base64pad:Hb,base64url:Vb,base64urlpad:Kb});const ch=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),Jb=ch.reduce((t,e,s)=>(t[s]=e,t),[]),Yb=ch.reduce((t,e,s)=>(t[e.codePointAt(0)]=s,t),[]);function Xb(t){return t.reduce((e,s)=>(e+=Jb[s],e),"")}function Zb(t){const e=[];for(const s of t){const r=Yb[s.codePointAt(0)];if(r===void 0)throw new Error(`Non-base256emoji character: ${s}`);e.push(r)}return new Uint8Array(e)}const Qb=Mn({prefix:"🚀",name:"base256emoji",encode:Xb,decode:Zb});var ev=Object.freeze({__proto__:null,base256emoji:Qb}),tv=lh,Jc=128,sv=-128,rv=Math.pow(2,31);function lh(t,e,s){e=e||[],s=s||0;for(var r=s;t>=rv;)e[s++]=t&255|Jc,t/=128;for(;t&sv;)e[s++]=t&255|Jc,t>>>=7;return e[s]=t|0,lh.bytes=s-r+1,e}var iv=Wo,nv=128,Yc=127;function Wo(t,r){var s=0,r=r||0,i=0,n=r,o,a=t.length;do{if(n>=a)throw Wo.bytes=0,new RangeError("Could not decode varint");o=t[n++],s+=i<28?(o&Yc)<=nv);return Wo.bytes=n-r,s}var ov=Math.pow(2,7),av=Math.pow(2,14),cv=Math.pow(2,21),lv=Math.pow(2,28),uv=Math.pow(2,35),hv=Math.pow(2,42),dv=Math.pow(2,49),pv=Math.pow(2,56),fv=Math.pow(2,63),gv=function(t){return t(uh.encode(t,e,s),e),Zc=t=>uh.encodingLength(t),Ho=(t,e)=>{const s=e.byteLength,r=Zc(t),i=r+Zc(s),n=new Uint8Array(i+s);return Xc(t,n,0),Xc(s,n,r),n.set(e,i),new wv(t,s,e,n)};class wv{constructor(e,s,r,i){this.code=e,this.size=s,this.digest=r,this.bytes=i}}const hh=({name:t,code:e,encode:s})=>new yv(t,e,s);class yv{constructor(e,s,r){this.name=e,this.code=s,this.encode=r}digest(e){if(e instanceof Uint8Array){const s=this.encode(e);return s instanceof Uint8Array?Ho(this.code,s):s.then(r=>Ho(this.code,r))}else throw Error("Unknown type, must be binary type")}}const dh=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),bv=hh({name:"sha2-256",code:18,encode:dh("SHA-256")}),vv=hh({name:"sha2-512",code:19,encode:dh("SHA-512")});var Ev=Object.freeze({__proto__:null,sha256:bv,sha512:vv});const ph=0,Cv="identity",fh=oh,Iv=t=>Ho(ph,fh(t)),Nv={code:ph,name:Cv,encode:fh,digest:Iv};var Av=Object.freeze({__proto__:null,identity:Nv});new TextEncoder,new TextDecoder;const Qc={...yb,...vb,...Cb,...Nb,...Sb,...Lb,...jb,...zb,...Gb,...ev};({...Ev,...Av});function _v(t=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(t):new Uint8Array(t)}function gh(t,e,s,r){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:s},decoder:{decode:r}}}const el=gh("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),co=gh("ascii","a",t=>{let e="a";for(let s=0;s{t=t.substring(1);const e=_v(t.length);for(let s=0;se in t?kv(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ft=(t,e,s)=>Ov(t,typeof e!="symbol"?e+"":e,s);class Tv{constructor(e,s){this.core=e,this.logger=s,Ft(this,"keychain",new Map),Ft(this,"name",Ty),Ft(this,"version",xy),Ft(this,"initialized",!1),Ft(this,"storagePrefix",Yt),Ft(this,"init",async()=>{if(!this.initialized){const r=await this.getKeyChain();typeof r<"u"&&(this.keychain=r),this.initialized=!0}}),Ft(this,"has",r=>(this.isInitialized(),this.keychain.has(r))),Ft(this,"set",async(r,i)=>{this.isInitialized(),this.keychain.set(r,i),await this.persist()}),Ft(this,"get",r=>{this.isInitialized();const i=this.keychain.get(r);if(typeof i>"u"){const{message:n}=R("NO_MATCHING_KEY",`${this.name}: ${r}`);throw new Error(n)}return i}),Ft(this,"del",async r=>{this.isInitialized(),this.keychain.delete(r),await this.persist()}),this.core=e,this.logger=rt(s,this.name)}get context(){return Et(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,Oo(e))}async getKeyChain(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?To(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){const{message:e}=R("NOT_INITIALIZED",this.name);throw new Error(e)}}}var xv=Object.defineProperty,$v=(t,e,s)=>e in t?xv(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ke=(t,e,s)=>$v(t,typeof e!="symbol"?e+"":e,s);class Rv{constructor(e,s,r){this.core=e,this.logger=s,Ke(this,"name",ky),Ke(this,"keychain"),Ke(this,"randomSessionIdentifier",qo()),Ke(this,"initialized",!1),Ke(this,"init",async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)}),Ke(this,"hasKeys",i=>(this.isInitialized(),this.keychain.has(i))),Ke(this,"getClientId",async()=>{this.isInitialized();const i=await this.getClientSeed(),n=ka(i);return Zh(n.publicKey)}),Ke(this,"generateKeyPair",()=>{this.isInitialized();const i=Iw();return this.setPrivateKey(i.publicKey,i.privateKey)}),Ke(this,"signJWT",async i=>{this.isInitialized();const n=await this.getClientSeed(),o=ka(n),a=this.randomSessionIdentifier;return await Qh(a,i,Oy,o)}),Ke(this,"generateSharedKey",(i,n,o)=>{this.isInitialized();const a=this.getPrivateKey(i),c=Nw(a,n);return this.setSymKey(c,o)}),Ke(this,"setSymKey",async(i,n)=>{this.isInitialized();const o=n||dn(i);return await this.keychain.set(o,i),o}),Ke(this,"deleteKeyPair",async i=>{this.isInitialized(),await this.keychain.del(i)}),Ke(this,"deleteSymKey",async i=>{this.isInitialized(),await this.keychain.del(i)}),Ke(this,"encode",async(i,n,o)=>{this.isInitialized();const a=Zu(o),c=na(n);if(Rc(a))return Sw(c,o?.encoding);if($c(a)){const d=a.senderPublicKey,p=a.receiverPublicKey;i=await this.generateSharedKey(d,p)}const l=this.getSymKey(i),{type:u,senderPublicKey:h}=a;return Aw({type:u,symKey:l,message:c,senderPublicKey:h,encoding:o?.encoding})}),Ke(this,"decode",async(i,n,o)=>{this.isInitialized();const a=kw(n,o);if(Rc(a)){const c=Pw(n,o?.encoding);return bn(c)}if($c(a)){const c=a.receiverPublicKey,l=a.senderPublicKey;i=await this.generateSharedKey(c,l)}try{const c=this.getSymKey(i),l=_w({symKey:c,encoded:n,encoding:o?.encoding});return bn(l)}catch(c){this.logger.error(`Failed to decode message from topic: '${i}', clientId: '${await this.getClientId()}'`),this.logger.error(c)}}),Ke(this,"getPayloadType",(i,n=Mt)=>{const o=ki({encoded:i,encoding:n});return Ys(o.type)}),Ke(this,"getPayloadSenderPublicKey",(i,n=Mt)=>{const o=ki({encoded:i,encoding:n});return o.senderPublicKey?dt(o.senderPublicKey,st):void 0}),this.core=e,this.logger=rt(s,this.name),this.keychain=r||new Tv(this.core,this.logger)}get context(){return Et(this.logger)}async setPrivateKey(e,s){return await this.keychain.set(e,s),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e="";try{e=this.keychain.get(Vc)}catch{e=qo(),await this.keychain.set(Vc,e)}return Pv(e,"base16")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){const{message:e}=R("NOT_INITIALIZED",this.name);throw new Error(e)}}}var Uv=Object.defineProperty,Dv=Object.defineProperties,Lv=Object.getOwnPropertyDescriptors,tl=Object.getOwnPropertySymbols,Mv=Object.prototype.hasOwnProperty,Bv=Object.prototype.propertyIsEnumerable,Vo=(t,e,s)=>e in t?Uv(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,jv=(t,e)=>{for(var s in e||(e={}))Mv.call(e,s)&&Vo(t,s,e[s]);if(tl)for(var s of tl(e))Bv.call(e,s)&&Vo(t,s,e[s]);return t},qv=(t,e)=>Dv(t,Lv(e)),ft=(t,e,s)=>Vo(t,typeof e!="symbol"?e+"":e,s);class Fv extends Up{constructor(e,s){super(e,s),this.logger=e,this.core=s,ft(this,"messages",new Map),ft(this,"messagesWithoutClientAck",new Map),ft(this,"name",$y),ft(this,"version",Ry),ft(this,"initialized",!1),ft(this,"storagePrefix",Yt),ft(this,"init",async()=>{if(!this.initialized){this.logger.trace("Initialized");try{const r=await this.getRelayerMessages();typeof r<"u"&&(this.messages=r);const i=await this.getRelayerMessagesWithoutClientAck();typeof i<"u"&&(this.messagesWithoutClientAck=i),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",size:this.messages.size})}catch(r){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(r)}finally{this.initialized=!0}}}),ft(this,"set",async(r,i,n)=>{this.isInitialized();const o=Kt(i);let a=this.messages.get(r);if(typeof a>"u"&&(a={}),typeof a[o]<"u")return o;if(a[o]=i,this.messages.set(r,a),n===pn.inbound){const c=this.messagesWithoutClientAck.get(r)||{};this.messagesWithoutClientAck.set(r,qv(jv({},c),{[o]:i}))}return await this.persist(),o}),ft(this,"get",r=>{this.isInitialized();let i=this.messages.get(r);return typeof i>"u"&&(i={}),i}),ft(this,"getWithoutAck",r=>{this.isInitialized();const i={};for(const n of r){const o=this.messagesWithoutClientAck.get(n)||{};i[n]=Object.values(o)}return i}),ft(this,"has",(r,i)=>{this.isInitialized();const n=this.get(r),o=Kt(i);return typeof n[o]<"u"}),ft(this,"ack",async(r,i)=>{this.isInitialized();const n=this.messagesWithoutClientAck.get(r);if(typeof n>"u")return;const o=Kt(i);delete n[o],Object.keys(n).length===0?this.messagesWithoutClientAck.delete(r):this.messagesWithoutClientAck.set(r,n),await this.persist()}),ft(this,"del",async r=>{this.isInitialized(),this.messages.delete(r),this.messagesWithoutClientAck.delete(r),await this.persist()}),this.logger=rt(e,this.name),this.core=s}get context(){return Et(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get storageKeyWithoutClientAck(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name+"_withoutClientAck"}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,Oo(e))}async setRelayerMessagesWithoutClientAck(e){await this.core.storage.setItem(this.storageKeyWithoutClientAck,Oo(e))}async getRelayerMessages(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?To(e):void 0}async getRelayerMessagesWithoutClientAck(){const e=await this.core.storage.getItem(this.storageKeyWithoutClientAck);return typeof e<"u"?To(e):void 0}async persist(){await this.setRelayerMessages(this.messages),await this.setRelayerMessagesWithoutClientAck(this.messagesWithoutClientAck)}isInitialized(){if(!this.initialized){const{message:e}=R("NOT_INITIALIZED",this.name);throw new Error(e)}}}var zv=Object.defineProperty,Wv=Object.defineProperties,Hv=Object.getOwnPropertyDescriptors,sl=Object.getOwnPropertySymbols,Vv=Object.prototype.hasOwnProperty,Kv=Object.prototype.propertyIsEnumerable,Ko=(t,e,s)=>e in t?zv(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,tn=(t,e)=>{for(var s in e||(e={}))Vv.call(e,s)&&Ko(t,s,e[s]);if(sl)for(var s of sl(e))Kv.call(e,s)&&Ko(t,s,e[s]);return t},lo=(t,e)=>Wv(t,Hv(e)),Rt=(t,e,s)=>Ko(t,typeof e!="symbol"?e+"":e,s);class Gv extends Dp{constructor(e,s){super(e,s),this.relayer=e,this.logger=s,Rt(this,"events",new Zs.EventEmitter),Rt(this,"name",Uy),Rt(this,"queue",new Map),Rt(this,"publishTimeout",D.toMiliseconds(D.ONE_MINUTE)),Rt(this,"initialPublishTimeout",D.toMiliseconds(D.ONE_SECOND*15)),Rt(this,"needsTransportRestart",!1),Rt(this,"publish",async(r,i,n)=>{var o;this.logger.debug("Publishing Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:r,message:i,opts:n}});const a=n?.ttl||Kc,c=Nn(n),l=n?.prompt||!1,u=n?.tag||0,h=n?.id||_r().toString(),d={topic:r,message:i,opts:{ttl:a,relay:c,prompt:l,tag:u,id:h,attestation:n?.attestation,tvf:n?.tvf}},p=`Failed to publish payload, please try again. id:${h} tag:${u}`;try{const w=new Promise(async m=>{const f=({id:b})=>{d.opts.id===b&&(this.removeRequestFromQueue(b),this.relayer.events.removeListener(Fe.publish,f),m(d))};this.relayer.events.on(Fe.publish,f);const y=Cs(new Promise((b,v)=>{this.rpcPublish({topic:r,message:i,ttl:a,prompt:l,tag:u,id:h,attestation:n?.attestation,tvf:n?.tvf}).then(b).catch(C=>{this.logger.warn(C,C?.message),v(C)})}),this.initialPublishTimeout,`Failed initial publish, retrying.... id:${h} tag:${u}`);try{await y,this.events.removeListener(Fe.publish,f)}catch(b){this.queue.set(h,lo(tn({},d),{attempt:1})),this.logger.warn(b,b?.message)}});this.logger.trace({type:"method",method:"publish",params:{id:h,topic:r,message:i,opts:n}}),await Cs(w,this.publishTimeout,p)}catch(w){if(this.logger.debug("Failed to Publish Payload"),this.logger.error(w),(o=n?.internal)!=null&&o.throwOnFailedPublish)throw w}finally{this.queue.delete(h)}}),Rt(this,"on",(r,i)=>{this.events.on(r,i)}),Rt(this,"once",(r,i)=>{this.events.once(r,i)}),Rt(this,"off",(r,i)=>{this.events.off(r,i)}),Rt(this,"removeListener",(r,i)=>{this.events.removeListener(r,i)}),this.relayer=e,this.logger=rt(s,this.name),this.registerEventListeners()}get context(){return Et(this.logger)}async rpcPublish(e){var s,r,i,n;const{topic:o,message:a,ttl:c=Kc,prompt:l,tag:u,id:h,attestation:d,tvf:p}=e,w={method:ui(Nn().protocol).publish,params:tn({topic:o,message:a,ttl:c,prompt:l,tag:u,attestation:d},p),id:h};Je((s=w.params)==null?void 0:s.prompt)&&((r=w.params)==null||delete r.prompt),Je((i=w.params)==null?void 0:i.tag)&&((n=w.params)==null||delete n.tag),this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"message",direction:"outgoing",request:w});const m=await this.relayer.request(w);return this.relayer.events.emit(Fe.publish,e),this.logger.debug("Successfully Published Payload"),m}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async(e,s)=>{const r=e.attempt+1;this.queue.set(s,lo(tn({},e),{attempt:r}));const{topic:i,message:n,opts:o,attestation:a}=e;this.logger.warn({},`Publisher: queue->publishing: ${e.opts.id}, tag: ${e.opts.tag}, attempt: ${r}`),await this.rpcPublish(lo(tn({},e),{topic:i,message:n,ttl:o.ttl,prompt:o.prompt,tag:o.tag,id:o.id,attestation:a,tvf:o.tvf})),this.logger.warn({},`Publisher: queue->published: ${e.opts.id}`)})}registerEventListeners(){this.relayer.core.heartbeat.on(Wr.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(Fe.connection_stalled);return}this.checkQueue()}),this.relayer.on(Fe.message_ack,e=>{this.removeRequestFromQueue(e.id.toString())})}}var Jv=Object.defineProperty,Yv=(t,e,s)=>e in t?Jv(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,lr=(t,e,s)=>Yv(t,typeof e!="symbol"?e+"":e,s);class Xv{constructor(){lr(this,"map",new Map),lr(this,"set",(e,s)=>{const r=this.get(e);this.exists(e,s)||this.map.set(e,[...r,s])}),lr(this,"get",e=>this.map.get(e)||[]),lr(this,"exists",(e,s)=>this.get(e).includes(s)),lr(this,"delete",(e,s)=>{if(typeof s>"u"){this.map.delete(e);return}if(!this.map.has(e))return;const r=this.get(e);if(!this.exists(e,s))return;const i=r.filter(n=>n!==s);if(!i.length){this.map.delete(e);return}this.map.set(e,i)}),lr(this,"clear",()=>{this.map.clear()})}get topics(){return Array.from(this.map.keys())}}var Zv=Object.defineProperty,Qv=Object.defineProperties,e0=Object.getOwnPropertyDescriptors,rl=Object.getOwnPropertySymbols,t0=Object.prototype.hasOwnProperty,s0=Object.prototype.propertyIsEnumerable,Go=(t,e,s)=>e in t?Zv(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,ii=(t,e)=>{for(var s in e||(e={}))t0.call(e,s)&&Go(t,s,e[s]);if(rl)for(var s of rl(e))s0.call(e,s)&&Go(t,s,e[s]);return t},uo=(t,e)=>Qv(t,e0(e)),ye=(t,e,s)=>Go(t,typeof e!="symbol"?e+"":e,s);class r0 extends Bp{constructor(e,s){super(e,s),this.relayer=e,this.logger=s,ye(this,"subscriptions",new Map),ye(this,"topicMap",new Xv),ye(this,"events",new Zs.EventEmitter),ye(this,"name",Fy),ye(this,"version",zy),ye(this,"pending",new Map),ye(this,"cached",[]),ye(this,"initialized",!1),ye(this,"storagePrefix",Yt),ye(this,"subscribeTimeout",D.toMiliseconds(D.ONE_MINUTE)),ye(this,"initialSubscribeTimeout",D.toMiliseconds(D.ONE_SECOND*15)),ye(this,"clientId"),ye(this,"batchSubscribeTopicsLimit",500),ye(this,"init",async()=>{this.initialized||(this.logger.trace("Initialized"),this.registerEventListeners(),await this.restore()),this.initialized=!0}),ye(this,"subscribe",async(r,i)=>{this.isInitialized(),this.logger.debug("Subscribing Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:r,opts:i}});try{const n=Nn(i),o={topic:r,relay:n,transportType:i?.transportType};this.pending.set(r,o);const a=await this.rpcSubscribe(r,n,i);return typeof a=="string"&&(this.onSubscribe(a,o),this.logger.debug("Successfully Subscribed Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:r,opts:i}})),a}catch(n){throw this.logger.debug("Failed to Subscribe Topic"),this.logger.error(n),n}}),ye(this,"unsubscribe",async(r,i)=>{this.isInitialized(),typeof i?.id<"u"?await this.unsubscribeById(r,i.id,i):await this.unsubscribeByTopic(r,i)}),ye(this,"isSubscribed",r=>new Promise(i=>{i(this.topicMap.topics.includes(r))})),ye(this,"isKnownTopic",r=>new Promise(i=>{i(this.topicMap.topics.includes(r)||this.pending.has(r)||this.cached.some(n=>n.topic===r))})),ye(this,"on",(r,i)=>{this.events.on(r,i)}),ye(this,"once",(r,i)=>{this.events.once(r,i)}),ye(this,"off",(r,i)=>{this.events.off(r,i)}),ye(this,"removeListener",(r,i)=>{this.events.removeListener(r,i)}),ye(this,"start",async()=>{await this.onConnect()}),ye(this,"stop",async()=>{await this.onDisconnect()}),ye(this,"restart",async()=>{await this.restore(),await this.onRestart()}),ye(this,"checkPending",async()=>{if(this.pending.size===0&&(!this.initialized||!this.relayer.connected))return;const r=[];this.pending.forEach(i=>{r.push(i)}),await this.batchSubscribe(r)}),ye(this,"registerEventListeners",()=>{this.relayer.core.heartbeat.on(Wr.pulse,async()=>{await this.checkPending()}),this.events.on(gt.created,async r=>{const i=gt.created;this.logger.info(`Emitting ${i}`),this.logger.debug({type:"event",event:i,data:r}),await this.persist()}),this.events.on(gt.deleted,async r=>{const i=gt.deleted;this.logger.info(`Emitting ${i}`),this.logger.debug({type:"event",event:i,data:r}),await this.persist()})}),this.relayer=e,this.logger=rt(s,this.name),this.clientId=""}get context(){return Et(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.relayer.core.customStoragePrefix+"//"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}get hasAnyTopics(){return this.topicMap.topics.length>0||this.pending.size>0||this.cached.length>0||this.subscriptions.size>0}hasSubscription(e,s){let r=!1;try{r=this.getSubscription(e).topic===s}catch{}return r}reset(){this.cached=[],this.initialized=!0}onDisable(){this.values.length>0&&(this.cached=this.values),this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,s){const r=this.topicMap.get(e);await Promise.all(r.map(async i=>await this.unsubscribeById(e,i,s)))}async unsubscribeById(e,s,r){this.logger.debug("Unsubscribing Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:s,opts:r}});try{const i=Nn(r);await this.restartToComplete({topic:e,id:s,relay:i}),await this.rpcUnsubscribe(e,s,i);const n=we("USER_DISCONNECTED",`${this.name}, ${e}`);await this.onUnsubscribe(e,s,n),this.logger.debug("Successfully Unsubscribed Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:s,opts:r}})}catch(i){throw this.logger.debug("Failed to Unsubscribe Topic"),this.logger.error(i),i}}async rpcSubscribe(e,s,r){var i;(!r||r?.transportType===Ae.relay)&&await this.restartToComplete({topic:e,id:e,relay:s});const n={method:ui(s.protocol).subscribe,params:{topic:e}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:n});const o=(i=r?.internal)==null?void 0:i.throwOnFailedPublish;try{const a=await this.getSubscriptionId(e);if(r?.transportType===Ae.link_mode)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(n).catch(u=>this.logger.warn(u))},D.toMiliseconds(D.ONE_SECOND)),a;const c=new Promise(async u=>{const h=d=>{d.topic===e&&(this.events.removeListener(gt.created,h),u(d.id))};this.events.on(gt.created,h);try{const d=await Cs(new Promise((p,w)=>{this.relayer.request(n).catch(m=>{this.logger.warn(m,m?.message),w(m)}).then(p)}),this.initialSubscribeTimeout,`Subscribing to ${e} failed, please try again`);this.events.removeListener(gt.created,h),u(d)}catch{}}),l=await Cs(c,this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!l&&o)throw new Error(`Subscribing to ${e} failed, please try again`);return l?a:null}catch(a){if(this.logger.debug("Outgoing Relay Subscribe Payload stalled"),this.relayer.events.emit(Fe.connection_stalled),o)throw a}return null}async rpcBatchSubscribe(e){if(!e.length)return;const s=e[0].relay,r={method:ui(s.protocol).batchSubscribe,params:{topics:e.map(i=>i.topic)}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:r});try{await await Cs(new Promise(i=>{this.relayer.request(r).catch(n=>this.logger.warn(n)).then(i)}),this.subscribeTimeout,"rpcBatchSubscribe failed, please try again")}catch{this.relayer.events.emit(Fe.connection_stalled)}}async rpcBatchFetchMessages(e){if(!e.length)return;const s=e[0].relay,r={method:ui(s.protocol).batchFetchMessages,params:{topics:e.map(n=>n.topic)}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:r});let i;try{i=await await Cs(new Promise((n,o)=>{this.relayer.request(r).catch(a=>{this.logger.warn(a),o(a)}).then(n)}),this.subscribeTimeout,"rpcBatchFetchMessages failed, please try again")}catch{this.relayer.events.emit(Fe.connection_stalled)}return i}rpcUnsubscribe(e,s,r){const i={method:ui(r.protocol).unsubscribe,params:{topic:e,id:s}};return this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:i}),this.relayer.request(i)}onSubscribe(e,s){this.setSubscription(e,uo(ii({},s),{id:e})),this.pending.delete(s.topic)}onBatchSubscribe(e){e.length&&e.forEach(s=>{this.setSubscription(s.id,ii({},s)),this.pending.delete(s.topic)})}async onUnsubscribe(e,s,r){this.events.removeAllListeners(s),this.hasSubscription(s,e)&&this.deleteSubscription(s,r),await this.relayer.messages.del(e)}async setRelayerSubscriptions(e){await this.relayer.core.storage.setItem(this.storageKey,e)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(e,s){this.logger.debug("Setting subscription"),this.logger.trace({type:"method",method:"setSubscription",id:e,subscription:s}),this.addSubscription(e,s)}addSubscription(e,s){this.subscriptions.set(e,ii({},s)),this.topicMap.set(s.topic,e),this.events.emit(gt.created,s)}getSubscription(e){this.logger.debug("Getting subscription"),this.logger.trace({type:"method",method:"getSubscription",id:e});const s=this.subscriptions.get(e);if(!s){const{message:r}=R("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(r)}return s}deleteSubscription(e,s){this.logger.debug("Deleting subscription"),this.logger.trace({type:"method",method:"deleteSubscription",id:e,reason:s});const r=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(r.topic,e),this.events.emit(gt.deleted,uo(ii({},r),{reason:s}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(gt.sync)}async onRestart(){if(this.cached.length){const e=[...this.cached],s=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let r=0;r"u"||!e.length)return;if(this.subscriptions.size){const{message:s}=R("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(s),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),new Error(s)}this.cached=e,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:"method",method:"restore",subscriptions:this.values})}catch(e){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e)}}async batchSubscribe(e){e.length&&(await this.rpcBatchSubscribe(e),this.onBatchSubscribe(await Promise.all(e.map(async s=>uo(ii({},s),{id:await this.getSubscriptionId(s.topic)})))))}async batchFetchMessages(e){if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);const s=await this.rpcBatchFetchMessages(e);s&&s.messages&&(await ug(D.toMiliseconds(D.ONE_SECOND)),await this.relayer.handleBatchMessageEvents(s.messages))}async onConnect(){await this.restart(),this.reset()}onDisconnect(){this.onDisable()}isInitialized(){if(!this.initialized){const{message:e}=R("NOT_INITIALIZED",this.name);throw new Error(e)}}async restartToComplete(e){!this.relayer.connected&&!this.relayer.connecting&&(this.cached.push(e),await this.relayer.transportOpen())}async getClientId(){return this.clientId||(this.clientId=await this.relayer.core.crypto.getClientId()),this.clientId}async getSubscriptionId(e){return Kt(e+await this.getClientId())}}var i0=Object.defineProperty,il=Object.getOwnPropertySymbols,n0=Object.prototype.hasOwnProperty,o0=Object.prototype.propertyIsEnumerable,Jo=(t,e,s)=>e in t?i0(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,nl=(t,e)=>{for(var s in e||(e={}))n0.call(e,s)&&Jo(t,s,e[s]);if(il)for(var s of il(e))o0.call(e,s)&&Jo(t,s,e[s]);return t},le=(t,e,s)=>Jo(t,typeof e!="symbol"?e+"":e,s);class a0 extends Lp{constructor(e){super(e),le(this,"protocol","wc"),le(this,"version",2),le(this,"core"),le(this,"logger"),le(this,"events",new Zs.EventEmitter),le(this,"provider"),le(this,"messages"),le(this,"subscriber"),le(this,"publisher"),le(this,"name",Ly),le(this,"transportExplicitlyClosed",!1),le(this,"initialized",!1),le(this,"connectionAttemptInProgress",!1),le(this,"relayUrl"),le(this,"projectId"),le(this,"packageName"),le(this,"bundleId"),le(this,"hasExperiencedNetworkDisruption",!1),le(this,"pingTimeout"),le(this,"heartBeatTimeout",D.toMiliseconds(D.THIRTY_SECONDS+D.FIVE_SECONDS)),le(this,"reconnectTimeout"),le(this,"connectPromise"),le(this,"reconnectInProgress",!1),le(this,"requestsInFlight",[]),le(this,"connectTimeout",D.toMiliseconds(D.ONE_SECOND*15)),le(this,"request",async s=>{var r,i;this.logger.debug("Publishing Request Payload");const n=s.id||_r().toString();await this.toEstablishConnection();try{this.logger.trace({id:n,method:s.method,topic:(r=s.params)==null?void 0:r.topic},"relayer.request - publishing...");const o=`${n}:${((i=s.params)==null?void 0:i.tag)||""}`;this.requestsInFlight.push(o);const a=await this.provider.request(s);return this.requestsInFlight=this.requestsInFlight.filter(c=>c!==o),a}catch(o){throw this.logger.debug(`Failed to Publish Request: ${n}`),o}}),le(this,"resetPingTimeout",()=>{Cn()&&(clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(()=>{var s,r,i,n;try{this.logger.debug({},"pingTimeout: Connection stalled, terminating..."),(n=(i=(r=(s=this.provider)==null?void 0:s.connection)==null?void 0:r.socket)==null?void 0:i.terminate)==null||n.call(i)}catch(o){this.logger.warn(o,o?.message)}},this.heartBeatTimeout))}),le(this,"onPayloadHandler",s=>{this.onProviderPayload(s),this.resetPingTimeout()}),le(this,"onConnectHandler",()=>{this.logger.warn({},"Relayer connected 🛜"),this.startPingTimeout(),this.events.emit(Fe.connect)}),le(this,"onDisconnectHandler",()=>{this.logger.warn({},"Relayer disconnected 🛑"),this.requestsInFlight=[],this.onProviderDisconnect()}),le(this,"onProviderErrorHandler",s=>{this.logger.fatal(`Fatal socket error: ${s.message}`),this.events.emit(Fe.error,s),this.logger.fatal("Fatal socket error received, closing transport"),this.transportClose()}),le(this,"registerProviderListeners",()=>{this.provider.on(At.payload,this.onPayloadHandler),this.provider.on(At.connect,this.onConnectHandler),this.provider.on(At.disconnect,this.onDisconnectHandler),this.provider.on(At.error,this.onProviderErrorHandler)}),this.core=e.core,this.logger=typeof e.logger<"u"&&typeof e.logger!="string"?rt(e.logger,this.name):oa($i({level:e.logger||Dy})),this.messages=new Fv(this.logger,e.core),this.subscriber=new r0(this,this.logger),this.publisher=new Gv(this,this.logger),this.relayUrl=e?.relayUrl||ih,this.projectId=e.projectId,Gf()?this.packageName=rc():Jf()&&(this.bundleId=rc()),this.provider={}}async init(){if(this.logger.trace("Initialized"),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),this.initialized=!0,this.subscriber.hasAnyTopics)try{await this.transportOpen()}catch(e){this.logger.warn(e,e?.message)}}get context(){return Et(this.logger)}get connected(){var e,s,r;return((r=(s=(e=this.provider)==null?void 0:e.connection)==null?void 0:s.socket)==null?void 0:r.readyState)===1||!1}get connecting(){var e,s,r;return((r=(s=(e=this.provider)==null?void 0:e.connection)==null?void 0:s.socket)==null?void 0:r.readyState)===0||this.connectPromise!==void 0||!1}async publish(e,s,r){this.isInitialized(),await this.publisher.publish(e,s,r),await this.recordMessageEvent({topic:e,message:s,publishedAt:Date.now(),transportType:Ae.relay},pn.outbound)}async subscribe(e,s){var r,i,n;this.isInitialized(),(!(s!=null&&s.transportType)||s?.transportType==="relay")&&await this.toEstablishConnection();const o=typeof((r=s?.internal)==null?void 0:r.throwOnFailedPublish)>"u"?!0:(i=s?.internal)==null?void 0:i.throwOnFailedPublish;let a=((n=this.subscriber.topicMap.get(e))==null?void 0:n[0])||"",c;const l=u=>{u.topic===e&&(this.subscriber.off(gt.created,l),c())};return await Promise.all([new Promise(u=>{c=u,this.subscriber.on(gt.created,l)}),new Promise(async(u,h)=>{a=await this.subscriber.subscribe(e,nl({internal:{throwOnFailedPublish:o}},s)).catch(d=>{o&&h(d)})||a,u()})]),a}async unsubscribe(e,s){this.isInitialized(),await this.subscriber.unsubscribe(e,s)}on(e,s){this.events.on(e,s)}once(e,s){this.events.once(e,s)}off(e,s){this.events.off(e,s)}removeListener(e,s){this.events.removeListener(e,s)}async transportDisconnect(){this.provider.disconnect&&(this.hasExperiencedNetworkDisruption||this.connected)?await Cs(this.provider.disconnect(),2e3,"provider.disconnect()").catch(()=>this.onProviderDisconnect()):this.onProviderDisconnect()}async transportClose(){this.transportExplicitlyClosed=!0,await this.transportDisconnect()}async transportOpen(e){if(!this.subscriber.hasAnyTopics){this.logger.warn("Starting WS connection skipped because the client has no topics to work with.");return}if(this.connectPromise?(this.logger.debug({},"Waiting for existing connection attempt to resolve..."),await this.connectPromise,this.logger.debug({},"Existing connection attempt resolved")):(this.connectPromise=new Promise(async(s,r)=>{await this.connect(e).then(s).catch(r).finally(()=>{this.connectPromise=void 0})}),await this.connectPromise),!this.connected)throw new Error(`Couldn't establish socket connection to the relay server: ${this.relayUrl}`)}async restartTransport(e){this.logger.debug({},"Restarting transport..."),!this.connectionAttemptInProgress&&(this.relayUrl=e||this.relayUrl,await this.confirmOnlineStateOrThrow(),await this.transportClose(),await this.transportOpen())}async confirmOnlineStateOrThrow(){if(!await Hc())throw new Error("No internet connection detected. Please restart your network and try again.")}async handleBatchMessageEvents(e){if(e?.length===0){this.logger.trace("Batch message events is empty. Ignoring...");return}const s=e.sort((r,i)=>r.publishedAt-i.publishedAt);this.logger.debug(`Batch of ${s.length} message events sorted`);for(const r of s)try{await this.onMessageEvent(r)}catch(i){this.logger.warn(i,"Error while processing batch message event: "+i?.message)}this.logger.trace(`Batch of ${s.length} message events processed`)}async onLinkMessageEvent(e,s){const{topic:r}=e;if(!s.sessionExists){const i=De(D.FIVE_MINUTES),n={topic:r,expiry:i,relay:{protocol:"irn"},active:!1};await this.core.pairing.pairings.set(r,n)}this.events.emit(Fe.message,e),await this.recordMessageEvent(e,pn.inbound)}async connect(e){await this.confirmOnlineStateOrThrow(),e&&e!==this.relayUrl&&(this.relayUrl=e,await this.transportDisconnect()),this.connectionAttemptInProgress=!0,this.transportExplicitlyClosed=!1;let s=1;for(;s<6;){try{if(this.transportExplicitlyClosed)break;this.logger.debug({},`Connecting to ${this.relayUrl}, attempt: ${s}...`),await this.createProvider(),await new Promise(async(r,i)=>{const n=()=>{i(new Error("Connection interrupted while trying to subscribe"))};this.provider.once(At.disconnect,n),await Cs(new Promise((o,a)=>{this.provider.connect().then(o).catch(a)}),this.connectTimeout,`Socket stalled when trying to connect to ${this.relayUrl}`).catch(o=>{i(o)}).finally(()=>{this.provider.off(At.disconnect,n),clearTimeout(this.reconnectTimeout)}),await new Promise(async(o,a)=>{const c=()=>{a(new Error("Connection interrupted while trying to subscribe"))};this.provider.once(At.disconnect,c),await this.subscriber.start().then(o).catch(a).finally(()=>{this.provider.off(At.disconnect,c)})}),this.hasExperiencedNetworkDisruption=!1,r()})}catch(r){await this.subscriber.stop();const i=r;this.logger.warn({},i.message),this.hasExperiencedNetworkDisruption=!0}finally{this.connectionAttemptInProgress=!1}if(this.connected){this.logger.debug({},`Connected to ${this.relayUrl} successfully on attempt: ${s}`);break}await new Promise(r=>setTimeout(r,D.toMiliseconds(s*1))),s++}}startPingTimeout(){var e,s,r,i,n;if(Cn())try{(s=(e=this.provider)==null?void 0:e.connection)!=null&&s.socket&&((n=(i=(r=this.provider)==null?void 0:r.connection)==null?void 0:i.socket)==null||n.on("ping",()=>{this.resetPingTimeout()})),this.resetPingTimeout()}catch(o){this.logger.warn(o,o?.message)}}async createProvider(){this.provider.connection&&this.unregisterProviderListeners();const e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new Ot(new Xh(eg({sdkVersion:zo,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0,bundleId:this.bundleId,packageName:this.packageName}))),this.registerProviderListeners()}async recordMessageEvent(e,s){const{topic:r,message:i}=e;await this.messages.set(r,i,s)}async shouldIgnoreMessageEvent(e){const{topic:s,message:r}=e;if(!r||r.length===0)return this.logger.warn(`Ignoring invalid/empty message: ${r}`),!0;if(!await this.subscriber.isKnownTopic(s))return this.logger.warn(`Ignoring message for unknown topic ${s}`),!0;const i=this.messages.has(s,r);return i&&this.logger.warn(`Ignoring duplicate message: ${r}`),i}async onProviderPayload(e){if(this.logger.debug("Incoming Relay Payload"),this.logger.trace({type:"payload",direction:"incoming",payload:e}),aa(e)){if(!e.method.endsWith(My))return;const s=e.params,{topic:r,message:i,publishedAt:n,attestation:o}=s.data,a={topic:r,message:i,publishedAt:n,transportType:Ae.relay,attestation:o};this.logger.debug("Emitting Relayer Payload"),this.logger.trace(nl({type:"event",event:s.id},a)),this.events.emit(s.id,a),await this.acknowledgePayload(e),await this.onMessageEvent(a)}else ca(e)&&this.events.emit(Fe.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(await this.recordMessageEvent(e,pn.inbound),this.events.emit(Fe.message,e))}async acknowledgePayload(e){const s=kn(e.id,!0);await this.provider.connection.send(s)}unregisterProviderListeners(){this.provider.off(At.payload,this.onPayloadHandler),this.provider.off(At.connect,this.onConnectHandler),this.provider.off(At.disconnect,this.onDisconnectHandler),this.provider.off(At.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await Hc();Cy(async s=>{e!==s&&(e=s,s?await this.transportOpen().catch(r=>this.logger.error(r,r?.message)):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))}),this.core.heartbeat.on(Wr.pulse,async()=>{if(!this.transportExplicitlyClosed&&!this.connected&&Ay())try{await this.confirmOnlineStateOrThrow(),await this.transportOpen()}catch(s){this.logger.warn(s,s?.message)}})}async onProviderDisconnect(){clearTimeout(this.pingTimeout),this.events.emit(Fe.disconnect),this.connectionAttemptInProgress=!1,!this.reconnectInProgress&&(this.reconnectInProgress=!0,await this.subscriber.stop(),this.subscriber.hasAnyTopics&&(this.transportExplicitlyClosed||(this.reconnectTimeout=setTimeout(async()=>{await this.transportOpen().catch(e=>this.logger.error(e,e?.message)),this.reconnectTimeout=void 0,this.reconnectInProgress=!1},D.toMiliseconds(By)))))}isInitialized(){if(!this.initialized){const{message:e}=R("NOT_INITIALIZED",this.name);throw new Error(e)}}async toEstablishConnection(){if(await this.confirmOnlineStateOrThrow(),!this.connected){if(this.connectPromise){await this.connectPromise;return}await this.connect()}}}function c0(){}function ol(t){if(!t||typeof t!="object")return!1;const e=Object.getPrototypeOf(t);return e===null||e===Object.prototype||Object.getPrototypeOf(e)===null?Object.prototype.toString.call(t)==="[object Object]":!1}function al(t){return Object.getOwnPropertySymbols(t).filter(e=>Object.prototype.propertyIsEnumerable.call(t,e))}function cl(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const l0="[object RegExp]",u0="[object String]",h0="[object Number]",d0="[object Boolean]",ll="[object Arguments]",p0="[object Symbol]",f0="[object Date]",g0="[object Map]",m0="[object Set]",w0="[object Array]",y0="[object Function]",b0="[object ArrayBuffer]",ho="[object Object]",v0="[object Error]",E0="[object DataView]",C0="[object Uint8Array]",I0="[object Uint8ClampedArray]",N0="[object Uint16Array]",A0="[object Uint32Array]",_0="[object BigUint64Array]",S0="[object Int8Array]",P0="[object Int16Array]",k0="[object Int32Array]",O0="[object BigInt64Array]",T0="[object Float32Array]",x0="[object Float64Array]";function $0(t,e){return t===e||Number.isNaN(t)&&Number.isNaN(e)}function R0(t,e,s){return hi(t,e,void 0,void 0,void 0,void 0,s)}function hi(t,e,s,r,i,n,o){const a=o(t,e,s,r,i,n);if(a!==void 0)return a;if(typeof t==typeof e)switch(typeof t){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return t===e;case"number":return t===e||Object.is(t,e);case"function":return t===e;case"object":return vi(t,e,n,o)}return vi(t,e,n,o)}function vi(t,e,s,r){if(Object.is(t,e))return!0;let i=cl(t),n=cl(e);if(i===ll&&(i=ho),n===ll&&(n=ho),i!==n)return!1;switch(i){case u0:return t.toString()===e.toString();case h0:{const c=t.valueOf(),l=e.valueOf();return $0(c,l)}case d0:case f0:case p0:return Object.is(t.valueOf(),e.valueOf());case l0:return t.source===e.source&&t.flags===e.flags;case y0:return t===e}s=s??new Map;const o=s.get(t),a=s.get(e);if(o!=null&&a!=null)return o===e;s.set(t,e),s.set(e,t);try{switch(i){case g0:{if(t.size!==e.size)return!1;for(const[c,l]of t.entries())if(!e.has(c)||!hi(l,e.get(c),c,t,e,s,r))return!1;return!0}case m0:{if(t.size!==e.size)return!1;const c=Array.from(t.values()),l=Array.from(e.values());for(let u=0;uhi(h,p,void 0,t,e,s,r));if(d===-1)return!1;l.splice(d,1)}return!0}case w0:case C0:case I0:case N0:case A0:case _0:case S0:case P0:case k0:case O0:case T0:case x0:{if(typeof Buffer<"u"&&Buffer.isBuffer(t)!==Buffer.isBuffer(e)||t.length!==e.length)return!1;for(let c=0;ce in t?D0(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,hl=(t,e)=>{for(var s in e||(e={}))L0.call(e,s)&&Yo(t,s,e[s]);if(ul)for(var s of ul(e))M0.call(e,s)&&Yo(t,s,e[s]);return t},at=(t,e,s)=>Yo(t,typeof e!="symbol"?e+"":e,s);class sr extends Mp{constructor(e,s,r,i=Yt,n=void 0){super(e,s,r,i),this.core=e,this.logger=s,this.name=r,at(this,"map",new Map),at(this,"version",jy),at(this,"cached",[]),at(this,"initialized",!1),at(this,"getKey"),at(this,"storagePrefix",Yt),at(this,"recentlyDeleted",[]),at(this,"recentlyDeletedLimit",200),at(this,"init",async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(o=>{this.getKey&&o!==null&&!Je(o)?this.map.set(this.getKey(o),o):Qw(o)?this.map.set(o.id,o):ey(o)&&this.map.set(o.topic,o)}),this.cached=[],this.initialized=!0)}),at(this,"set",async(o,a)=>{this.isInitialized(),this.map.has(o)?await this.update(o,a):(this.logger.debug("Setting value"),this.logger.trace({type:"method",method:"set",key:o,value:a}),this.map.set(o,a),await this.persist())}),at(this,"get",o=>(this.isInitialized(),this.logger.debug("Getting value"),this.logger.trace({type:"method",method:"get",key:o}),this.getData(o))),at(this,"getAll",o=>(this.isInitialized(),o?this.values.filter(a=>Object.keys(o).every(c=>U0(a[c],o[c]))):this.values)),at(this,"update",async(o,a)=>{this.isInitialized(),this.logger.debug("Updating value"),this.logger.trace({type:"method",method:"update",key:o,update:a});const c=hl(hl({},this.getData(o)),a);this.map.set(o,c),await this.persist()}),at(this,"delete",async(o,a)=>{this.isInitialized(),this.map.has(o)&&(this.logger.debug("Deleting value"),this.logger.trace({type:"method",method:"delete",key:o,reason:a}),this.map.delete(o),this.addToRecentlyDeleted(o),await this.persist())}),this.logger=rt(s,this.name),this.storagePrefix=i,this.getKey=n}get context(){return Et(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}addToRecentlyDeleted(e){this.recentlyDeleted.push(e),this.recentlyDeleted.length>=this.recentlyDeletedLimit&&this.recentlyDeleted.splice(0,this.recentlyDeletedLimit/2)}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){const s=this.map.get(e);if(!s){if(this.recentlyDeleted.includes(e)){const{message:i}=R("MISSING_OR_INVALID",`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(i),new Error(i)}const{message:r}=R("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(r),new Error(r)}return s}async persist(){await this.setDataStore(this.values)}async restore(){try{const e=await this.getDataStore();if(typeof e>"u"||!e.length)return;if(this.map.size){const{message:s}=R("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(s),new Error(s)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:"method",method:"restore",value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){const{message:e}=R("NOT_INITIALIZED",this.name);throw new Error(e)}}}var B0=Object.defineProperty,j0=(t,e,s)=>e in t?B0(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,ie=(t,e,s)=>j0(t,typeof e!="symbol"?e+"":e,s);class q0{constructor(e,s){this.core=e,this.logger=s,ie(this,"name",Wy),ie(this,"version",Hy),ie(this,"events",new la),ie(this,"pairings"),ie(this,"initialized",!1),ie(this,"storagePrefix",Yt),ie(this,"ignoredPayloadTypes",[cs]),ie(this,"registeredMethods",[]),ie(this,"init",async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace("Initialized"))}),ie(this,"register",({methods:r})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...r])]}),ie(this,"create",async r=>{this.isInitialized();const i=qo(),n=await this.core.crypto.setSymKey(i),o=De(D.FIVE_MINUTES),a={protocol:rh},c={topic:n,expiry:o,relay:a,active:!1,methods:r?.methods},l=Dc({protocol:this.core.protocol,version:this.core.version,topic:n,symKey:i,relay:a,expiryTimestamp:o,methods:r?.methods});return this.events.emit(Bs.create,c),this.core.expirer.set(n,o),await this.pairings.set(n,c),await this.core.relayer.subscribe(n,{transportType:r?.transportType}),{topic:n,uri:l}}),ie(this,"pair",async r=>{this.isInitialized();const i=this.core.eventClient.createEvent({properties:{topic:r?.uri,trace:[Wt.pairing_started]}});this.isValidPair(r,i);const{topic:n,symKey:o,relay:a,expiryTimestamp:c,methods:l}=Uc(r.uri);i.props.properties.topic=n,i.addTrace(Wt.pairing_uri_validation_success),i.addTrace(Wt.pairing_uri_not_expired);let u;if(this.pairings.keys.includes(n)){if(u=this.pairings.get(n),i.addTrace(Wt.existing_pairing),u.active)throw i.setError(is.active_pairing_already_exists),new Error(`Pairing already exists: ${n}. Please try again with a new connection URI.`);i.addTrace(Wt.pairing_not_expired)}const h=c||De(D.FIVE_MINUTES),d={topic:n,relay:a,expiry:h,active:!1,methods:l};this.core.expirer.set(n,h),await this.pairings.set(n,d),i.addTrace(Wt.store_new_pairing),r.activatePairing&&await this.activate({topic:n}),this.events.emit(Bs.create,d),i.addTrace(Wt.emit_inactive_pairing),this.core.crypto.keychain.has(n)||await this.core.crypto.setSymKey(o,n),i.addTrace(Wt.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{i.setError(is.no_internet_connection)}try{await this.core.relayer.subscribe(n,{relay:a})}catch(p){throw i.setError(is.subscribe_pairing_topic_failure),p}return i.addTrace(Wt.subscribe_pairing_topic_success),d}),ie(this,"activate",async({topic:r})=>{this.isInitialized();const i=De(D.FIVE_MINUTES);this.core.expirer.set(r,i),await this.pairings.update(r,{active:!0,expiry:i})}),ie(this,"ping",async r=>{this.isInitialized(),await this.isValidPing(r),this.logger.warn("ping() is deprecated and will be removed in the next major release.");const{topic:i}=r;if(this.pairings.keys.includes(i)){const n=await this.sendRequest(i,"wc_pairingPing",{}),{done:o,resolve:a,reject:c}=Ds();this.events.once(pe("pairing_ping",n),({error:l})=>{l?c(l):a()}),await o()}}),ie(this,"updateExpiry",async({topic:r,expiry:i})=>{this.isInitialized(),await this.pairings.update(r,{expiry:i})}),ie(this,"updateMetadata",async({topic:r,metadata:i})=>{this.isInitialized(),await this.pairings.update(r,{peerMetadata:i})}),ie(this,"getPairings",()=>(this.isInitialized(),this.pairings.values)),ie(this,"disconnect",async r=>{this.isInitialized(),await this.isValidDisconnect(r);const{topic:i}=r;this.pairings.keys.includes(i)&&(await this.sendRequest(i,"wc_pairingDelete",we("USER_DISCONNECTED")),await this.deletePairing(i))}),ie(this,"formatUriFromPairing",r=>{this.isInitialized();const{topic:i,relay:n,expiry:o,methods:a}=r,c=this.core.crypto.keychain.get(i);return Dc({protocol:this.core.protocol,version:this.core.version,topic:i,symKey:c,relay:n,expiryTimestamp:o,methods:a})}),ie(this,"sendRequest",async(r,i,n)=>{const o=qs(i,n),a=await this.core.crypto.encode(r,o),c=si[i].req;return this.core.history.set(r,o),this.core.relayer.publish(r,a,c),o.id}),ie(this,"sendResult",async(r,i,n)=>{const o=kn(r,n),a=await this.core.crypto.encode(i,o),c=(await this.core.history.get(i,r)).request.method,l=si[c].res;await this.core.relayer.publish(i,a,l),await this.core.history.resolve(o)}),ie(this,"sendError",async(r,i,n)=>{const o=Gl(r,n),a=await this.core.crypto.encode(i,o),c=(await this.core.history.get(i,r)).request.method,l=si[c]?si[c].res:si.unregistered_method.res;await this.core.relayer.publish(i,a,l),await this.core.history.resolve(o)}),ie(this,"deletePairing",async(r,i)=>{await this.core.relayer.unsubscribe(r),await Promise.all([this.pairings.delete(r,we("USER_DISCONNECTED")),this.core.crypto.deleteSymKey(r),i?Promise.resolve():this.core.expirer.del(r)])}),ie(this,"cleanup",async()=>{const r=this.pairings.getAll().filter(i=>ys(i.expiry));await Promise.all(r.map(i=>this.deletePairing(i.topic)))}),ie(this,"onRelayEventRequest",async r=>{const{topic:i,payload:n}=r;switch(n.method){case"wc_pairingPing":return await this.onPairingPingRequest(i,n);case"wc_pairingDelete":return await this.onPairingDeleteRequest(i,n);default:return await this.onUnknownRpcMethodRequest(i,n)}}),ie(this,"onRelayEventResponse",async r=>{const{topic:i,payload:n}=r,o=(await this.core.history.get(i,n.id)).request.method;switch(o){case"wc_pairingPing":return this.onPairingPingResponse(i,n);default:return this.onUnknownRpcMethodResponse(o)}}),ie(this,"onPairingPingRequest",async(r,i)=>{const{id:n}=i;try{this.isValidPing({topic:r}),await this.sendResult(n,r,!0),this.events.emit(Bs.ping,{id:n,topic:r})}catch(o){await this.sendError(n,r,o),this.logger.error(o)}}),ie(this,"onPairingPingResponse",(r,i)=>{const{id:n}=i;setTimeout(()=>{rs(i)?this.events.emit(pe("pairing_ping",n),{}):Ht(i)&&this.events.emit(pe("pairing_ping",n),{error:i.error})},500)}),ie(this,"onPairingDeleteRequest",async(r,i)=>{const{id:n}=i;try{this.isValidDisconnect({topic:r}),await this.deletePairing(r),this.events.emit(Bs.delete,{id:n,topic:r})}catch(o){await this.sendError(n,r,o),this.logger.error(o)}}),ie(this,"onUnknownRpcMethodRequest",async(r,i)=>{const{id:n,method:o}=i;try{if(this.registeredMethods.includes(o))return;const a=we("WC_METHOD_UNSUPPORTED",o);await this.sendError(n,r,a),this.logger.error(a)}catch(a){await this.sendError(n,r,a),this.logger.error(a)}}),ie(this,"onUnknownRpcMethodResponse",r=>{this.registeredMethods.includes(r)||this.logger.error(we("WC_METHOD_UNSUPPORTED",r))}),ie(this,"isValidPair",(r,i)=>{var n;if(!ut(r)){const{message:a}=R("MISSING_OR_INVALID",`pair() params: ${r}`);throw i.setError(is.malformed_pairing_uri),new Error(a)}if(!Zw(r.uri)){const{message:a}=R("MISSING_OR_INVALID",`pair() uri: ${r.uri}`);throw i.setError(is.malformed_pairing_uri),new Error(a)}const o=Uc(r?.uri);if(!((n=o?.relay)!=null&&n.protocol)){const{message:a}=R("MISSING_OR_INVALID","pair() uri#relay-protocol");throw i.setError(is.malformed_pairing_uri),new Error(a)}if(!(o!=null&&o.symKey)){const{message:a}=R("MISSING_OR_INVALID","pair() uri#symKey");throw i.setError(is.malformed_pairing_uri),new Error(a)}if(o!=null&&o.expiryTimestamp&&D.toMiliseconds(o?.expiryTimestamp){if(!ut(r)){const{message:n}=R("MISSING_OR_INVALID",`ping() params: ${r}`);throw new Error(n)}const{topic:i}=r;await this.isValidPairingTopic(i)}),ie(this,"isValidDisconnect",async r=>{if(!ut(r)){const{message:n}=R("MISSING_OR_INVALID",`disconnect() params: ${r}`);throw new Error(n)}const{topic:i}=r;await this.isValidPairingTopic(i)}),ie(this,"isValidPairingTopic",async r=>{if(!xe(r,!1)){const{message:i}=R("MISSING_OR_INVALID",`pairing topic should be a string: ${r}`);throw new Error(i)}if(!this.pairings.keys.includes(r)){const{message:i}=R("NO_MATCHING_KEY",`pairing topic doesn't exist: ${r}`);throw new Error(i)}if(ys(this.pairings.get(r).expiry)){await this.deletePairing(r);const{message:i}=R("EXPIRED",`pairing topic: ${r}`);throw new Error(i)}}),this.core=e,this.logger=rt(s,this.name),this.pairings=new sr(this.core,this.logger,this.name,this.storagePrefix)}get context(){return Et(this.logger)}isInitialized(){if(!this.initialized){const{message:e}=R("NOT_INITIALIZED",this.name);throw new Error(e)}}registerRelayerEvents(){this.core.relayer.on(Fe.message,async e=>{const{topic:s,message:r,transportType:i}=e;if(this.pairings.keys.includes(s)&&i!==Ae.link_mode&&!this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(r)))try{const n=await this.core.crypto.decode(s,r);aa(n)?(this.core.history.set(s,n),await this.onRelayEventRequest({topic:s,payload:n})):ca(n)&&(await this.core.history.resolve(n),await this.onRelayEventResponse({topic:s,payload:n}),this.core.history.delete(s,n.id)),await this.core.relayer.messages.ack(s,r)}catch(n){this.logger.error(n)}})}registerExpirerEvents(){this.core.expirer.on(Pt.expired,async e=>{const{topic:s}=bu(e.target);s&&this.pairings.keys.includes(s)&&(await this.deletePairing(s,!0),this.events.emit(Bs.expire,{topic:s}))})}}var F0=Object.defineProperty,z0=(t,e,s)=>e in t?F0(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ge=(t,e,s)=>z0(t,typeof e!="symbol"?e+"":e,s);class W0 extends Rp{constructor(e,s){super(e,s),this.core=e,this.logger=s,Ge(this,"records",new Map),Ge(this,"events",new Zs.EventEmitter),Ge(this,"name",Vy),Ge(this,"version",Ky),Ge(this,"cached",[]),Ge(this,"initialized",!1),Ge(this,"storagePrefix",Yt),Ge(this,"init",async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(r=>this.records.set(r.id,r)),this.cached=[],this.registerEventListeners(),this.initialized=!0)}),Ge(this,"set",(r,i,n)=>{if(this.isInitialized(),this.logger.debug("Setting JSON-RPC request history record"),this.logger.trace({type:"method",method:"set",topic:r,request:i,chainId:n}),this.records.has(i.id))return;const o={id:i.id,topic:r,request:{method:i.method,params:i.params||null},chainId:n,expiry:De(D.THIRTY_DAYS)};this.records.set(o.id,o),this.persist(),this.events.emit(xt.created,o)}),Ge(this,"resolve",async r=>{if(this.isInitialized(),this.logger.debug("Updating JSON-RPC response history record"),this.logger.trace({type:"method",method:"update",response:r}),!this.records.has(r.id))return;const i=await this.getRecord(r.id);typeof i.response>"u"&&(i.response=Ht(r)?{error:r.error}:{result:r.result},this.records.set(i.id,i),this.persist(),this.events.emit(xt.updated,i))}),Ge(this,"get",async(r,i)=>(this.isInitialized(),this.logger.debug("Getting record"),this.logger.trace({type:"method",method:"get",topic:r,id:i}),await this.getRecord(i))),Ge(this,"delete",(r,i)=>{this.isInitialized(),this.logger.debug("Deleting record"),this.logger.trace({type:"method",method:"delete",id:i}),this.values.forEach(n=>{if(n.topic===r){if(typeof i<"u"&&n.id!==i)return;this.records.delete(n.id),this.events.emit(xt.deleted,n)}}),this.persist()}),Ge(this,"exists",async(r,i)=>(this.isInitialized(),this.records.has(i)?(await this.getRecord(i)).topic===r:!1)),Ge(this,"on",(r,i)=>{this.events.on(r,i)}),Ge(this,"once",(r,i)=>{this.events.once(r,i)}),Ge(this,"off",(r,i)=>{this.events.off(r,i)}),Ge(this,"removeListener",(r,i)=>{this.events.removeListener(r,i)}),this.logger=rt(s,this.name)}get context(){return Et(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){const e=[];return this.values.forEach(s=>{if(typeof s.response<"u")return;const r={topic:s.topic,request:qs(s.request.method,s.request.params,s.id),chainId:s.chainId};return e.push(r)}),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();const s=this.records.get(e);if(!s){const{message:r}=R("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(r)}return s}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(xt.sync)}async restore(){try{const e=await this.getJsonRpcRecords();if(typeof e>"u"||!e.length)return;if(this.records.size){const{message:s}=R("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(s),new Error(s)}this.cached=e,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",records:this.values})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}}registerEventListeners(){this.events.on(xt.created,e=>{const s=xt.created;this.logger.info(`Emitting ${s}`),this.logger.debug({type:"event",event:s,record:e})}),this.events.on(xt.updated,e=>{const s=xt.updated;this.logger.info(`Emitting ${s}`),this.logger.debug({type:"event",event:s,record:e})}),this.events.on(xt.deleted,e=>{const s=xt.deleted;this.logger.info(`Emitting ${s}`),this.logger.debug({type:"event",event:s,record:e})}),this.core.heartbeat.on(Wr.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(s=>{D.toMiliseconds(s.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${s.id}`),this.records.delete(s.id),this.events.emit(xt.deleted,s,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){const{message:e}=R("NOT_INITIALIZED",this.name);throw new Error(e)}}}var H0=Object.defineProperty,V0=(t,e,s)=>e in t?H0(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ze=(t,e,s)=>V0(t,typeof e!="symbol"?e+"":e,s);class K0 extends jp{constructor(e,s){super(e,s),this.core=e,this.logger=s,Ze(this,"expirations",new Map),Ze(this,"events",new Zs.EventEmitter),Ze(this,"name",Gy),Ze(this,"version",Jy),Ze(this,"cached",[]),Ze(this,"initialized",!1),Ze(this,"storagePrefix",Yt),Ze(this,"init",async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(r=>this.expirations.set(r.target,r)),this.cached=[],this.registerEventListeners(),this.initialized=!0)}),Ze(this,"has",r=>{try{const i=this.formatTarget(r);return typeof this.getExpiration(i)<"u"}catch{return!1}}),Ze(this,"set",(r,i)=>{this.isInitialized();const n=this.formatTarget(r),o={target:n,expiry:i};this.expirations.set(n,o),this.checkExpiry(n,o),this.events.emit(Pt.created,{target:n,expiration:o})}),Ze(this,"get",r=>{this.isInitialized();const i=this.formatTarget(r);return this.getExpiration(i)}),Ze(this,"del",r=>{if(this.isInitialized(),this.has(r)){const i=this.formatTarget(r),n=this.getExpiration(i);this.expirations.delete(i),this.events.emit(Pt.deleted,{target:i,expiration:n})}}),Ze(this,"on",(r,i)=>{this.events.on(r,i)}),Ze(this,"once",(r,i)=>{this.events.once(r,i)}),Ze(this,"off",(r,i)=>{this.events.off(r,i)}),Ze(this,"removeListener",(r,i)=>{this.events.removeListener(r,i)}),this.logger=rt(s,this.name)}get context(){return Et(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if(typeof e=="string")return tg(e);if(typeof e=="number")return sg(e);const{message:s}=R("UNKNOWN_TYPE",`Target type: ${typeof e}`);throw new Error(s)}async setExpirations(e){await this.core.storage.setItem(this.storageKey,e)}async getExpirations(){return await this.core.storage.getItem(this.storageKey)}async persist(){await this.setExpirations(this.values),this.events.emit(Pt.sync)}async restore(){try{const e=await this.getExpirations();if(typeof e>"u"||!e.length)return;if(this.expirations.size){const{message:s}=R("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(s),new Error(s)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:"method",method:"restore",expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){const s=this.expirations.get(e);if(!s){const{message:r}=R("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.warn(r),new Error(r)}return s}checkExpiry(e,s){const{expiry:r}=s;D.toMiliseconds(r)-Date.now()<=0&&this.expire(e,s)}expire(e,s){this.expirations.delete(e),this.events.emit(Pt.expired,{target:e,expiration:s})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,s)=>this.checkExpiry(s,e))}registerEventListeners(){this.core.heartbeat.on(Wr.pulse,()=>this.checkExpirations()),this.events.on(Pt.created,e=>{const s=Pt.created;this.logger.info(`Emitting ${s}`),this.logger.debug({type:"event",event:s,data:e}),this.persist()}),this.events.on(Pt.expired,e=>{const s=Pt.expired;this.logger.info(`Emitting ${s}`),this.logger.debug({type:"event",event:s,data:e}),this.persist()}),this.events.on(Pt.deleted,e=>{const s=Pt.deleted;this.logger.info(`Emitting ${s}`),this.logger.debug({type:"event",event:s,data:e}),this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=R("NOT_INITIALIZED",this.name);throw new Error(e)}}}var G0=Object.defineProperty,J0=(t,e,s)=>e in t?G0(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Te=(t,e,s)=>J0(t,typeof e!="symbol"?e+"":e,s);class Y0 extends qp{constructor(e,s,r){super(e,s,r),this.core=e,this.logger=s,this.store=r,Te(this,"name",Yy),Te(this,"abortController"),Te(this,"isDevEnv"),Te(this,"verifyUrlV3",Zy),Te(this,"storagePrefix",Yt),Te(this,"version",sh),Te(this,"publicKey"),Te(this,"fetchPromise"),Te(this,"init",async()=>{var i;this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&D.toMiliseconds((i=this.publicKey)==null?void 0:i.expiresAt){if(!Kr()||this.isDevEnv)return;const n=window.location.origin,{id:o,decryptedId:a}=i,c=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${n}&id=${o}&decryptedId=${a}`;try{const l=ls.getDocument(),u=this.startAbortTimer(D.ONE_SECOND*5),h=await new Promise((d,p)=>{const w=()=>{window.removeEventListener("message",f),l.body.removeChild(m),p("attestation aborted")};this.abortController.signal.addEventListener("abort",w);const m=l.createElement("iframe");m.src=c,m.style.display="none",m.addEventListener("error",w,{signal:this.abortController.signal});const f=y=>{if(y.data&&typeof y.data=="string")try{const b=JSON.parse(y.data);if(b.type==="verify_attestation"){if(Co(b.attestation).payload.id!==o)return;clearInterval(u),l.body.removeChild(m),this.abortController.signal.removeEventListener("abort",w),window.removeEventListener("message",f),d(b.attestation===null?"":b.attestation)}}catch(b){this.logger.warn(b)}};l.body.appendChild(m),window.addEventListener("message",f,{signal:this.abortController.signal})});return this.logger.debug("jwt attestation",h),h}catch(l){this.logger.warn(l)}return""}),Te(this,"resolve",async i=>{if(this.isDevEnv)return"";const{attestationId:n,hash:o,encryptedId:a}=i;if(n===""){this.logger.debug("resolve: attestationId is empty, skipping");return}if(n){if(Co(n).payload.id!==a)return;const l=await this.isValidJwtAttestation(n);if(l){if(!l.isVerified){this.logger.warn("resolve: jwt attestation: origin url not verified");return}return l}}if(!o)return;const c=this.getVerifyUrl(i?.verifyUrl);return this.fetchAttestation(o,c)}),Te(this,"fetchAttestation",async(i,n)=>{this.logger.debug(`resolving attestation: ${i} from url: ${n}`);const o=this.startAbortTimer(D.ONE_SECOND*5),a=await fetch(`${n}/attestation/${i}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(o),a.status===200?await a.json():void 0}),Te(this,"getVerifyUrl",i=>{let n=i||bi;return Qy.includes(n)||(this.logger.info(`verify url: ${n}, not included in trusted list, assigning default: ${bi}`),n=bi),n}),Te(this,"fetchPublicKey",async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);const i=this.startAbortTimer(D.FIVE_SECONDS),n=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(i),await n.json()}catch(i){this.logger.warn(i)}}),Te(this,"persistPublicKey",async i=>{this.logger.debug("persisting public key to local storage",i),await this.store.setItem(this.storeKey,i),this.publicKey=i}),Te(this,"removePublicKey",async()=>{this.logger.debug("removing verify v2 public key from storage"),await this.store.removeItem(this.storeKey),this.publicKey=void 0}),Te(this,"isValidJwtAttestation",async i=>{const n=await this.getPublicKey();try{if(n)return this.validateAttestation(i,n)}catch(a){this.logger.error(a),this.logger.warn("error validating attestation")}const o=await this.fetchAndPersistPublicKey();try{if(o)return this.validateAttestation(i,o)}catch(a){this.logger.error(a),this.logger.warn("error validating attestation")}}),Te(this,"getPublicKey",async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey()),Te(this,"fetchAndPersistPublicKey",async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise(async n=>{const o=await this.fetchPublicKey();o&&(await this.persistPublicKey(o),n(o))});const i=await this.fetchPromise;return this.fetchPromise=void 0,i}),Te(this,"validateAttestation",(i,n)=>{const o=Tw(i,n.publicKey),a={hasExpired:D.toMiliseconds(o.exp)this.abortController.abort(),D.toMiliseconds(e))}}var X0=Object.defineProperty,Z0=(t,e,s)=>e in t?X0(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,dl=(t,e,s)=>Z0(t,typeof e!="symbol"?e+"":e,s);class Q0 extends Fp{constructor(e,s){super(e,s),this.projectId=e,this.logger=s,dl(this,"context",eb),dl(this,"registerDeviceToken",async r=>{const{clientId:i,token:n,notificationType:o,enableEncrypted:a=!1}=r,c=`${tb}/${this.projectId}/clients`;await fetch(c,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:i,type:o,token:n,always_raw:a})})}),this.logger=rt(s,this.context)}}var eE=Object.defineProperty,pl=Object.getOwnPropertySymbols,tE=Object.prototype.hasOwnProperty,sE=Object.prototype.propertyIsEnumerable,Xo=(t,e,s)=>e in t?eE(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,ni=(t,e)=>{for(var s in e||(e={}))tE.call(e,s)&&Xo(t,s,e[s]);if(pl)for(var s of pl(e))sE.call(e,s)&&Xo(t,s,e[s]);return t},Me=(t,e,s)=>Xo(t,typeof e!="symbol"?e+"":e,s);class rE extends zp{constructor(e,s,r=!0){super(e,s,r),this.core=e,this.logger=s,Me(this,"context",rb),Me(this,"storagePrefix",Yt),Me(this,"storageVersion",sb),Me(this,"events",new Map),Me(this,"shouldPersist",!1),Me(this,"init",async()=>{if(!ha())try{const i={eventId:nc(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:"INIT",type:"",properties:{client_id:await this.core.crypto.getClientId(),user_agent:wu(this.core.relayer.protocol,this.core.relayer.version,zo)}}};await this.sendEvent([i])}catch(i){this.logger.warn(i)}}),Me(this,"createEvent",i=>{const{event:n="ERROR",type:o="",properties:{topic:a,trace:c}}=i,l=nc(),u=this.core.projectId||"",h=Date.now(),d=ni({eventId:l,timestamp:h,props:{event:n,type:o,properties:{topic:a,trace:c}},bundleId:u,domain:this.getAppDomain()},this.setMethods(l));return this.telemetryEnabled&&(this.events.set(l,d),this.shouldPersist=!0),d}),Me(this,"getEvent",i=>{const{eventId:n,topic:o}=i;if(n)return this.events.get(n);const a=Array.from(this.events.values()).find(c=>c.props.properties.topic===o);if(a)return ni(ni({},a),this.setMethods(a.eventId))}),Me(this,"deleteEvent",i=>{const{eventId:n}=i;this.events.delete(n),this.shouldPersist=!0}),Me(this,"setEventListeners",()=>{this.core.heartbeat.on(Wr.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(i=>{D.fromMiliseconds(Date.now())-D.fromMiliseconds(i.timestamp)>ib&&(this.events.delete(i.eventId),this.shouldPersist=!0)})})}),Me(this,"setMethods",i=>({addTrace:n=>this.addTrace(i,n),setError:n=>this.setError(i,n)})),Me(this,"addTrace",(i,n)=>{const o=this.events.get(i);o&&(o.props.properties.trace.push(n),this.events.set(i,o),this.shouldPersist=!0)}),Me(this,"setError",(i,n)=>{const o=this.events.get(i);o&&(o.props.type=n,o.timestamp=Date.now(),this.events.set(i,o),this.shouldPersist=!0)}),Me(this,"persist",async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1}),Me(this,"restore",async()=>{try{const i=await this.core.storage.getItem(this.storageKey)||[];if(!i.length)return;i.forEach(n=>{this.events.set(n.eventId,ni(ni({},n),this.setMethods(n.eventId)))})}catch(i){this.logger.warn(i)}}),Me(this,"submit",async()=>{if(!this.telemetryEnabled||this.events.size===0)return;const i=[];for(const[n,o]of this.events)o.props.type&&i.push(o);if(i.length!==0)try{if((await this.sendEvent(i)).ok)for(const n of i)this.events.delete(n.eventId),this.shouldPersist=!0}catch(n){this.logger.warn(n)}}),Me(this,"sendEvent",async i=>{const n=this.getAppDomain()?"":"&sp=desktop";return await fetch(`${nb}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${zo}${n}`,{method:"POST",body:JSON.stringify(i)})}),Me(this,"getAppDomain",()=>mu().url),this.logger=rt(s,this.context),this.telemetryEnabled=r,r?this.restore().then(async()=>{await this.submit(),this.setEventListeners()}):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+"//"+this.context}}var iE=Object.defineProperty,fl=Object.getOwnPropertySymbols,nE=Object.prototype.hasOwnProperty,oE=Object.prototype.propertyIsEnumerable,Zo=(t,e,s)=>e in t?iE(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,gl=(t,e)=>{for(var s in e||(e={}))nE.call(e,s)&&Zo(t,s,e[s]);if(fl)for(var s of fl(e))oE.call(e,s)&&Zo(t,s,e[s]);return t},Ie=(t,e,s)=>Zo(t,typeof e!="symbol"?e+"":e,s);let aE=class mh extends Op{constructor(e){var s;super(e),Ie(this,"protocol",th),Ie(this,"version",sh),Ie(this,"name",Fo),Ie(this,"relayUrl"),Ie(this,"projectId"),Ie(this,"customStoragePrefix"),Ie(this,"events",new Zs.EventEmitter),Ie(this,"logger"),Ie(this,"heartbeat"),Ie(this,"relayer"),Ie(this,"crypto"),Ie(this,"storage"),Ie(this,"history"),Ie(this,"expirer"),Ie(this,"pairing"),Ie(this,"verify"),Ie(this,"echoClient"),Ie(this,"linkModeSupportedApps"),Ie(this,"eventClient"),Ie(this,"initialized",!1),Ie(this,"logChunkController"),Ie(this,"on",(a,c)=>this.events.on(a,c)),Ie(this,"once",(a,c)=>this.events.once(a,c)),Ie(this,"off",(a,c)=>this.events.off(a,c)),Ie(this,"removeListener",(a,c)=>this.events.removeListener(a,c)),Ie(this,"dispatchEnvelope",({topic:a,message:c,sessionExists:l})=>{if(!a||!c)return;const u={topic:a,message:c,publishedAt:Date.now(),transportType:Ae.link_mode};this.relayer.onLinkMessageEvent(u,{sessionExists:l})});const r=this.getGlobalCore(e?.customStoragePrefix);if(r)try{return this.customStoragePrefix=r.customStoragePrefix,this.logger=r.logger,this.heartbeat=r.heartbeat,this.crypto=r.crypto,this.history=r.history,this.expirer=r.expirer,this.storage=r.storage,this.relayer=r.relayer,this.pairing=r.pairing,this.verify=r.verify,this.echoClient=r.echoClient,this.linkModeSupportedApps=r.linkModeSupportedApps,this.eventClient=r.eventClient,this.initialized=r.initialized,this.logChunkController=r.logChunkController,r}catch(a){console.warn("Failed to copy global core",a)}this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||ih,this.customStoragePrefix=e!=null&&e.customStoragePrefix?`:${e.customStoragePrefix}`:"";const i=$i({level:typeof e?.logger=="string"&&e.logger?e.logger:Sy.logger,name:Fo}),{logger:n,chunkLoggerController:o}=Kl({opts:i,maxSizeInBytes:e?.maxLogBlobSizeInBytes,loggerOverride:e?.logger});this.logChunkController=o,(s=this.logChunkController)!=null&&s.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{var a,c;(a=this.logChunkController)!=null&&a.downloadLogsBlobInBrowser&&((c=this.logChunkController)==null||c.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()}))}),this.logger=rt(n,this.name),this.heartbeat=new Yh,this.crypto=new Rv(this,this.logger,e?.keychain),this.history=new W0(this,this.logger),this.expirer=new K0(this,this.logger),this.storage=e!=null&&e.storage?e.storage:new Sp(gl(gl({},Py),e?.storageOptions)),this.relayer=new a0({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new q0(this,this.logger),this.verify=new Y0(this,this.logger,this.storage),this.echoClient=new Q0(this.projectId||"",this.logger),this.linkModeSupportedApps=[],this.eventClient=new rE(this,this.logger,e?.telemetryEnabled),this.setGlobalCore(this)}static async init(e){const s=new mh(e);await s.initialize();const r=await s.crypto.getClientId();return await s.storage.setItem(qy,r),s}get context(){return Et(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){var e;return(e=this.logChunkController)==null?void 0:e.logsToBlob({clientId:await this.crypto.getClientId()})}async addLinkModeSupportedApp(e){this.linkModeSupportedApps.includes(e)||(this.linkModeSupportedApps.push(e),await this.storage.setItem(Gc,this.linkModeSupportedApps))}async initialize(){this.logger.trace("Initialized");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.linkModeSupportedApps=await this.storage.getItem(Gc)||[],this.initialized=!0,this.logger.info("Core Initialization Success")}catch(e){throw this.logger.warn(`Core Initialization Failure at epoch ${Date.now()}`,e),this.logger.error(e.message),e}}getGlobalCore(e=""){try{if(this.isGlobalCoreDisabled())return;const s=`_walletConnectCore_${e}`,r=`${s}_count`;return globalThis[r]=(globalThis[r]||0)+1,globalThis[r]>1&&console.warn(`WalletConnect Core is already initialized. This is probably a mistake and can lead to unexpected behavior. Init() was called ${globalThis[r]} times.`),globalThis[s]}catch(s){console.warn("Failed to get global WalletConnect core",s);return}}setGlobalCore(e){var s;try{if(this.isGlobalCoreDisabled())return;const r=`_walletConnectCore_${((s=e.opts)==null?void 0:s.customStoragePrefix)||""}`;globalThis[r]=e}catch(r){console.warn("Failed to set global WalletConnect core",r)}}isGlobalCoreDisabled(){try{return typeof process<"u"&&_y.DISABLE_GLOBAL_CORE==="true"}catch{return!0}}};const cE=aE,wh="wc",yh=2,bh="client",ba=`${wh}@${yh}:${bh}:`,po={name:bh,logger:"error"},ml="WALLETCONNECT_DEEPLINK_CHOICE",lE="proposal",wl="Proposal expired",uE="session",ur=D.SEVEN_DAYS,hE="engine",Be={wc_sessionPropose:{req:{ttl:D.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:D.FIVE_MINUTES,prompt:!1,tag:1101},reject:{ttl:D.FIVE_MINUTES,prompt:!1,tag:1120},autoReject:{ttl:D.FIVE_MINUTES,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:D.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:D.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:D.ONE_DAY,prompt:!1,tag:1104},res:{ttl:D.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:D.ONE_DAY,prompt:!1,tag:1106},res:{ttl:D.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:D.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:D.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:D.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:D.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:D.ONE_DAY,prompt:!1,tag:1112},res:{ttl:D.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:D.ONE_DAY,prompt:!1,tag:1114},res:{ttl:D.ONE_DAY,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:D.ONE_HOUR,prompt:!0,tag:1116},res:{ttl:D.ONE_HOUR,prompt:!1,tag:1117},reject:{ttl:D.FIVE_MINUTES,prompt:!1,tag:1118},autoReject:{ttl:D.FIVE_MINUTES,prompt:!1,tag:1119}}},fo={min:D.FIVE_MINUTES,max:D.SEVEN_DAYS},zt={idle:"IDLE",active:"ACTIVE"},yl={eth_sendTransaction:{key:""},eth_sendRawTransaction:{key:""},wallet_sendCalls:{key:""},solana_signTransaction:{key:"signature"},solana_signAllTransactions:{key:"transactions"},solana_signAndSendTransaction:{key:"signature"}},dE="request",pE=["wc_sessionPropose","wc_sessionRequest","wc_authRequest","wc_sessionAuthenticate"],fE="wc",gE="auth",mE="authKeys",wE="pairingTopics",yE="requests",Bn=`${fE}@${1.5}:${gE}:`,fn=`${Bn}:PUB_KEY`;var bE=Object.defineProperty,vE=Object.defineProperties,EE=Object.getOwnPropertyDescriptors,bl=Object.getOwnPropertySymbols,CE=Object.prototype.hasOwnProperty,IE=Object.prototype.propertyIsEnumerable,Qo=(t,e,s)=>e in t?bE(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,be=(t,e)=>{for(var s in e||(e={}))CE.call(e,s)&&Qo(t,s,e[s]);if(bl)for(var s of bl(e))IE.call(e,s)&&Qo(t,s,e[s]);return t},tt=(t,e)=>vE(t,EE(e)),P=(t,e,s)=>Qo(t,typeof e!="symbol"?e+"":e,s);class NE extends Kp{constructor(e){super(e),P(this,"name",hE),P(this,"events",new la),P(this,"initialized",!1),P(this,"requestQueue",{state:zt.idle,queue:[]}),P(this,"sessionRequestQueue",{state:zt.idle,queue:[]}),P(this,"requestQueueDelay",D.ONE_SECOND),P(this,"expectedPairingMethodMap",new Map),P(this,"recentlyDeletedMap",new Map),P(this,"recentlyDeletedLimit",200),P(this,"relayMessageCache",[]),P(this,"pendingSessions",new Map),P(this,"init",async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),await this.registerLinkModeListeners(),this.client.core.pairing.register({methods:Object.keys(Be)}),this.initialized=!0,setTimeout(async()=>{await this.processPendingMessageEvents(),this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},D.toMiliseconds(this.requestQueueDelay)))}),P(this,"connect",async s=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();const r=tt(be({},s),{requiredNamespaces:s.requiredNamespaces||{},optionalNamespaces:s.optionalNamespaces||{}});await this.isValidConnect(r),r.optionalNamespaces=Kw(r.requiredNamespaces,r.optionalNamespaces),r.requiredNamespaces={};const{pairingTopic:i,requiredNamespaces:n,optionalNamespaces:o,sessionProperties:a,scopedProperties:c,relays:l}=r;let u=i,h,d=!1;try{if(u){const A=this.client.core.pairing.pairings.get(u);this.client.logger.warn("connect() with existing pairing topic is deprecated and will be removed in the next major release."),d=A.active}}catch(A){throw this.client.logger.error(`connect() -> pairing.get(${u}) failed`),A}if(!u||!d){const{topic:A,uri:_}=await this.client.core.pairing.create();u=A,h=_}if(!u){const{message:A}=R("NO_MATCHING_KEY",`connect() pairing topic: ${u}`);throw new Error(A)}const p=await this.client.core.crypto.generateKeyPair(),w=Be.wc_sessionPropose.req.ttl||D.FIVE_MINUTES,m=De(w),f=tt(be(be({requiredNamespaces:n,optionalNamespaces:o,relays:l??[{protocol:rh}],proposer:{publicKey:p,metadata:this.client.metadata},expiryTimestamp:m,pairingTopic:u},a&&{sessionProperties:a}),c&&{scopedProperties:c}),{id:us()}),y=pe("session_connect",f.id),{reject:b,resolve:v,done:C}=Ds(w,wl),S=({id:A})=>{A===f.id&&(this.client.events.off("proposal_expire",S),this.pendingSessions.delete(f.id),this.events.emit(y,{error:{message:wl,code:0}}))};return this.client.events.on("proposal_expire",S),this.events.once(y,({error:A,session:_})=>{this.client.events.off("proposal_expire",S),A?b(A):_&&v(_)}),await this.sendRequest({topic:u,method:"wc_sessionPropose",params:f,throwOnFailedPublish:!0,clientRpcId:f.id}),await this.setProposal(f.id,f),{uri:h,approval:C}}),P(this,"pair",async s=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(s)}catch(r){throw this.client.logger.error("pair() failed"),r}}),P(this,"approve",async s=>{var r,i,n;const o=this.client.core.eventClient.createEvent({properties:{topic:(r=s?.id)==null?void 0:r.toString(),trace:[$t.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(E){throw o.setError(xs.no_internet_connection),E}try{await this.isValidProposalId(s?.id)}catch(E){throw this.client.logger.error(`approve() -> proposal.get(${s?.id}) failed`),o.setError(xs.proposal_not_found),E}try{await this.isValidApprove(s)}catch(E){throw this.client.logger.error("approve() -> isValidApprove() failed"),o.setError(xs.session_approve_namespace_validation_failure),E}const{id:a,relayProtocol:c,namespaces:l,sessionProperties:u,scopedProperties:h,sessionConfig:d}=s,p=this.client.proposal.get(a);this.client.core.eventClient.deleteEvent({eventId:o.eventId});const{pairingTopic:w,proposer:m,requiredNamespaces:f,optionalNamespaces:y}=p;let b=(i=this.client.core.eventClient)==null?void 0:i.getEvent({topic:w});b||(b=(n=this.client.core.eventClient)==null?void 0:n.createEvent({type:$t.session_approve_started,properties:{topic:w,trace:[$t.session_approve_started,$t.session_namespaces_validation_success]}}));const v=await this.client.core.crypto.generateKeyPair(),C=m.publicKey,S=await this.client.core.crypto.generateSharedKey(v,C),A=be(be(be({relay:{protocol:c??"irn"},namespaces:l,controller:{publicKey:v,metadata:this.client.metadata},expiry:De(ur)},u&&{sessionProperties:u}),h&&{scopedProperties:h}),d&&{sessionConfig:d}),_=Ae.relay;b.addTrace($t.subscribing_session_topic);try{await this.client.core.relayer.subscribe(S,{transportType:_})}catch(E){throw b.setError(xs.subscribe_session_topic_failure),E}b.addTrace($t.subscribe_session_topic_success);const U=tt(be({},A),{topic:S,requiredNamespaces:f,optionalNamespaces:y,pairingTopic:w,acknowledged:!1,self:A.controller,peer:{publicKey:m.publicKey,metadata:m.metadata},controller:v,transportType:Ae.relay});await this.client.session.set(S,U),b.addTrace($t.store_session);try{b.addTrace($t.publishing_session_settle),await this.sendRequest({topic:S,method:"wc_sessionSettle",params:A,throwOnFailedPublish:!0}).catch(E=>{throw b?.setError(xs.session_settle_publish_failure),E}),b.addTrace($t.session_settle_publish_success),b.addTrace($t.publishing_session_approve),await this.sendResult({id:a,topic:w,result:{relay:{protocol:c??"irn"},responderPublicKey:v},throwOnFailedPublish:!0}).catch(E=>{throw b?.setError(xs.session_approve_publish_failure),E}),b.addTrace($t.session_approve_publish_success)}catch(E){throw this.client.logger.error(E),this.client.session.delete(S,we("USER_DISCONNECTED")),await this.client.core.relayer.unsubscribe(S),E}return this.client.core.eventClient.deleteEvent({eventId:b.eventId}),await this.client.core.pairing.updateMetadata({topic:w,metadata:m.metadata}),await this.client.proposal.delete(a,we("USER_DISCONNECTED")),await this.client.core.pairing.activate({topic:w}),await this.setExpiry(S,De(ur)),{topic:S,acknowledged:()=>Promise.resolve(this.client.session.get(S))}}),P(this,"reject",async s=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(s)}catch(o){throw this.client.logger.error("reject() -> isValidReject() failed"),o}const{id:r,reason:i}=s;let n;try{n=this.client.proposal.get(r).pairingTopic}catch(o){throw this.client.logger.error(`reject() -> proposal.get(${r}) failed`),o}n&&(await this.sendError({id:r,topic:n,error:i,rpcOpts:Be.wc_sessionPropose.reject}),await this.client.proposal.delete(r,we("USER_DISCONNECTED")))}),P(this,"update",async s=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(s)}catch(h){throw this.client.logger.error("update() -> isValidUpdate() failed"),h}const{topic:r,namespaces:i}=s,{done:n,resolve:o,reject:a}=Ds(),c=us(),l=_r().toString(),u=this.client.session.get(r).namespaces;return this.events.once(pe("session_update",c),({error:h})=>{h?a(h):o()}),await this.client.session.update(r,{namespaces:i}),await this.sendRequest({topic:r,method:"wc_sessionUpdate",params:{namespaces:i},throwOnFailedPublish:!0,clientRpcId:c,relayRpcId:l}).catch(h=>{this.client.logger.error(h),this.client.session.update(r,{namespaces:u}),a(h)}),{acknowledged:n}}),P(this,"extend",async s=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(s)}catch(c){throw this.client.logger.error("extend() -> isValidExtend() failed"),c}const{topic:r}=s,i=us(),{done:n,resolve:o,reject:a}=Ds();return this.events.once(pe("session_extend",i),({error:c})=>{c?a(c):o()}),await this.setExpiry(r,De(ur)),this.sendRequest({topic:r,method:"wc_sessionExtend",params:{},clientRpcId:i,throwOnFailedPublish:!0}).catch(c=>{a(c)}),{acknowledged:n}}),P(this,"request",async s=>{this.isInitialized();try{await this.isValidRequest(s)}catch(y){throw this.client.logger.error("request() -> isValidRequest() failed"),y}const{chainId:r,request:i,topic:n,expiry:o=Be.wc_sessionRequest.req.ttl}=s,a=this.client.session.get(n);a?.transportType===Ae.relay&&await this.confirmOnlineStateOrThrow();const c=us(),l=_r().toString(),{done:u,resolve:h,reject:d}=Ds(o,"Request expired. Please try again.");this.events.once(pe("session_request",c),({error:y,result:b})=>{y?d(y):h(b)});const p="wc_sessionRequest",w=this.getAppLinkIfEnabled(a.peer.metadata,a.transportType);if(w)return await this.sendRequest({clientRpcId:c,relayRpcId:l,topic:n,method:p,params:{request:tt(be({},i),{expiryTimestamp:De(o)}),chainId:r},expiry:o,throwOnFailedPublish:!0,appLink:w}).catch(y=>d(y)),this.client.events.emit("session_request_sent",{topic:n,request:i,chainId:r,id:c}),await u();const m={request:tt(be({},i),{expiryTimestamp:De(o)}),chainId:r},f=this.shouldSetTVF(p,m);return await Promise.all([new Promise(async y=>{await this.sendRequest(be({clientRpcId:c,relayRpcId:l,topic:n,method:p,params:m,expiry:o,throwOnFailedPublish:!0},f&&{tvf:this.getTVFParams(c,m)})).catch(b=>d(b)),this.client.events.emit("session_request_sent",{topic:n,request:i,chainId:r,id:c}),y()}),new Promise(async y=>{var b;if(!((b=a.sessionConfig)!=null&&b.disableDeepLink)){const v=await og(this.client.core.storage,ml);await rg({id:c,topic:n,wcDeepLink:v})}y()}),u()]).then(y=>y[2])}),P(this,"respond",async s=>{this.isInitialized(),await this.isValidRespond(s);const{topic:r,response:i}=s,{id:n}=i,o=this.client.session.get(r);o.transportType===Ae.relay&&await this.confirmOnlineStateOrThrow();const a=this.getAppLinkIfEnabled(o.peer.metadata,o.transportType);rs(i)?await this.sendResult({id:n,topic:r,result:i.result,throwOnFailedPublish:!0,appLink:a}):Ht(i)&&await this.sendError({id:n,topic:r,error:i.error,appLink:a}),this.cleanupAfterResponse(s)}),P(this,"ping",async s=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(s)}catch(i){throw this.client.logger.error("ping() -> isValidPing() failed"),i}const{topic:r}=s;if(this.client.session.keys.includes(r)){const i=us(),n=_r().toString(),{done:o,resolve:a,reject:c}=Ds();this.events.once(pe("session_ping",i),({error:l})=>{l?c(l):a()}),await Promise.all([this.sendRequest({topic:r,method:"wc_sessionPing",params:{},throwOnFailedPublish:!0,clientRpcId:i,relayRpcId:n}),o()])}else this.client.core.pairing.pairings.keys.includes(r)&&(this.client.logger.warn("ping() on pairing topic is deprecated and will be removed in the next major release."),await this.client.core.pairing.ping({topic:r}))}),P(this,"emit",async s=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(s);const{topic:r,event:i,chainId:n}=s,o=_r().toString(),a=us();await this.sendRequest({topic:r,method:"wc_sessionEvent",params:{event:i,chainId:n},throwOnFailedPublish:!0,relayRpcId:o,clientRpcId:a})}),P(this,"disconnect",async s=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(s);const{topic:r}=s;if(this.client.session.keys.includes(r))await this.sendRequest({topic:r,method:"wc_sessionDelete",params:we("USER_DISCONNECTED"),throwOnFailedPublish:!0}),await this.deleteSession({topic:r,emitEvent:!1});else if(this.client.core.pairing.pairings.keys.includes(r))await this.client.core.pairing.disconnect({topic:r});else{const{message:i}=R("MISMATCHED_TOPIC",`Session or pairing topic not found: ${r}`);throw new Error(i)}}),P(this,"find",s=>(this.isInitialized(),this.client.session.getAll().filter(r=>Yw(r,s)))),P(this,"getPendingSessionRequests",()=>this.client.pendingRequest.getAll()),P(this,"authenticate",async(s,r)=>{var i;this.isInitialized(),this.isValidAuthenticate(s);const n=r&&this.client.core.linkModeSupportedApps.includes(r)&&((i=this.client.metadata.redirect)==null?void 0:i.linkMode),o=n?Ae.link_mode:Ae.relay;o===Ae.relay&&await this.confirmOnlineStateOrThrow();const{chains:a,statement:c="",uri:l,domain:u,nonce:h,type:d,exp:p,nbf:w,methods:m=[],expiry:f}=s,y=[...s.resources||[]],{topic:b,uri:v}=await this.client.core.pairing.create({methods:["wc_sessionAuthenticate"],transportType:o});this.client.logger.info({message:"Generated new pairing",pairing:{topic:b,uri:v}});const C=await this.client.core.crypto.generateKeyPair(),S=dn(C);if(await Promise.all([this.client.auth.authKeys.set(fn,{responseTopic:S,publicKey:C}),this.client.auth.pairingTopics.set(S,{topic:S,pairingTopic:b})]),await this.client.core.relayer.subscribe(S,{transportType:o}),this.client.logger.info(`sending request to new pairing topic: ${b}`),m.length>0){const{namespace:x}=Or(a[0]);let G=Zg(x,"request",m);hn(y)&&(G=em(G,y.pop())),y.push(G)}const A=f&&f>Be.wc_sessionAuthenticate.req.ttl?f:Be.wc_sessionAuthenticate.req.ttl,_={authPayload:{type:d??"caip122",chains:a,statement:c,aud:l,domain:u,version:"1",nonce:h,iat:new Date().toISOString(),exp:p,nbf:w,resources:y},requester:{publicKey:C,metadata:this.client.metadata},expiryTimestamp:De(A)},U={eip155:{chains:a,methods:[...new Set(["personal_sign",...m])],events:["chainChanged","accountsChanged"]}},E={requiredNamespaces:{},optionalNamespaces:U,relays:[{protocol:"irn"}],pairingTopic:b,proposer:{publicKey:C,metadata:this.client.metadata},expiryTimestamp:De(Be.wc_sessionPropose.req.ttl),id:us()},{done:$,resolve:I,reject:L}=Ds(A,"Request expired"),H=us(),N=pe("session_connect",E.id),T=pe("session_request",H),k=async({error:x,session:G})=>{this.events.off(T,B),x?L(x):G&&I({session:G})},B=async x=>{var G,Q,se;if(await this.deletePendingAuthRequest(H,{message:"fulfilled",code:0}),x.error){const Re=we("WC_METHOD_UNSUPPORTED","wc_sessionAuthenticate");return x.error.code===Re.code?void 0:(this.events.off(N,k),L(x.error.message))}await this.deleteProposal(E.id),this.events.off(N,k);const{cacaos:Ee,responder:de}=x.result,Oe=[],Le=[];for(const Re of Ee){await pc({cacao:Re,projectId:this.client.core.projectId})||(this.client.logger.error(Re,"Signature verification failed"),L(we("SESSION_SETTLEMENT_FAILED","Signature verification failed")));const{p:Os}=Re,Xt=hn(Os.resources),jt=[xo(Os.iss)],Zt=In(Os.iss);if(Xt){const ir=fc(Xt),Hi=gc(Xt);Oe.push(...ir),jt.push(...Hi)}for(const ir of jt)Le.push(`${ir}:${Zt}`)}const Xe=await this.client.core.crypto.generateSharedKey(C,de.publicKey);let $e;Oe.length>0&&($e={topic:Xe,acknowledged:!0,self:{publicKey:C,metadata:this.client.metadata},peer:de,controller:de.publicKey,expiry:De(ur),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:b,namespaces:jc([...new Set(Oe)],[...new Set(Le)]),transportType:o},await this.client.core.relayer.subscribe(Xe,{transportType:o}),await this.client.session.set(Xe,$e),b&&await this.client.core.pairing.updateMetadata({topic:b,metadata:de.metadata}),$e=this.client.session.get(Xe)),(G=this.client.metadata.redirect)!=null&&G.linkMode&&(Q=de.metadata.redirect)!=null&&Q.linkMode&&(se=de.metadata.redirect)!=null&&se.universal&&r&&(this.client.core.addLinkModeSupportedApp(de.metadata.redirect.universal),this.client.session.update(Xe,{transportType:Ae.link_mode})),I({auths:Ee,session:$e})};this.events.once(N,k),this.events.once(T,B);let q;try{if(n){const x=qs("wc_sessionAuthenticate",_,H);this.client.core.history.set(b,x);const G=await this.client.core.crypto.encode("",x,{type:qi,encoding:bs});q=en(r,b,G)}else await Promise.all([this.sendRequest({topic:b,method:"wc_sessionAuthenticate",params:_,expiry:s.expiry,throwOnFailedPublish:!0,clientRpcId:H}),this.sendRequest({topic:b,method:"wc_sessionPropose",params:E,expiry:Be.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:E.id})])}catch(x){throw this.events.off(N,k),this.events.off(T,B),x}return await this.setProposal(E.id,E),await this.setAuthRequest(H,{request:tt(be({},_),{verifyContext:{}}),pairingTopic:b,transportType:o}),{uri:q??v,response:$}}),P(this,"approveSessionAuthenticate",async s=>{const{id:r,auths:i}=s,n=this.client.core.eventClient.createEvent({properties:{topic:r.toString(),trace:[$s.authenticated_session_approve_started]}});try{this.isInitialized()}catch(f){throw n.setError(ri.no_internet_connection),f}const o=this.getPendingAuthRequest(r);if(!o)throw n.setError(ri.authenticated_session_pending_request_not_found),new Error(`Could not find pending auth request with id ${r}`);const a=o.transportType||Ae.relay;a===Ae.relay&&await this.confirmOnlineStateOrThrow();const c=o.requester.publicKey,l=await this.client.core.crypto.generateKeyPair(),u=dn(c),h={type:cs,receiverPublicKey:c,senderPublicKey:l},d=[],p=[];for(const f of i){if(!await pc({cacao:f,projectId:this.client.core.projectId})){n.setError(ri.invalid_cacao);const S=we("SESSION_SETTLEMENT_FAILED","Signature verification failed");throw await this.sendError({id:r,topic:u,error:S,encodeOpts:h}),new Error(S.message)}n.addTrace($s.cacaos_verified);const{p:y}=f,b=hn(y.resources),v=[xo(y.iss)],C=In(y.iss);if(b){const S=fc(b),A=gc(b);d.push(...S),v.push(...A)}for(const S of v)p.push(`${S}:${C}`)}const w=await this.client.core.crypto.generateSharedKey(l,c);n.addTrace($s.create_authenticated_session_topic);let m;if(d?.length>0){m={topic:w,acknowledged:!0,self:{publicKey:l,metadata:this.client.metadata},peer:{publicKey:c,metadata:o.requester.metadata},controller:c,expiry:De(ur),authentication:i,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:o.pairingTopic,namespaces:jc([...new Set(d)],[...new Set(p)]),transportType:a},n.addTrace($s.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(w,{transportType:a})}catch(f){throw n.setError(ri.subscribe_authenticated_session_topic_failure),f}n.addTrace($s.subscribe_authenticated_session_topic_success),await this.client.session.set(w,m),n.addTrace($s.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:o.pairingTopic,metadata:o.requester.metadata})}n.addTrace($s.publishing_authenticated_session_approve);try{await this.sendResult({topic:u,id:r,result:{cacaos:i,responder:{publicKey:l,metadata:this.client.metadata}},encodeOpts:h,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(o.requester.metadata,a)})}catch(f){throw n.setError(ri.authenticated_session_approve_publish_failure),f}return await this.client.auth.requests.delete(r,{message:"fulfilled",code:0}),await this.client.core.pairing.activate({topic:o.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:n.eventId}),{session:m}}),P(this,"rejectSessionAuthenticate",async s=>{this.isInitialized();const{id:r,reason:i}=s,n=this.getPendingAuthRequest(r);if(!n)throw new Error(`Could not find pending auth request with id ${r}`);n.transportType===Ae.relay&&await this.confirmOnlineStateOrThrow();const o=n.requester.publicKey,a=await this.client.core.crypto.generateKeyPair(),c=dn(o),l={type:cs,receiverPublicKey:o,senderPublicKey:a};await this.sendError({id:r,topic:c,error:i,encodeOpts:l,rpcOpts:Be.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(n.requester.metadata,n.transportType)}),await this.client.auth.requests.delete(r,{message:"rejected",code:0}),await this.client.proposal.delete(r,we("USER_DISCONNECTED"))}),P(this,"formatAuthMessage",s=>{this.isInitialized();const{request:r,iss:i}=s;return Pu(r,i)}),P(this,"processRelayMessageCache",()=>{setTimeout(async()=>{if(this.relayMessageCache.length!==0)for(;this.relayMessageCache.length>0;)try{const s=this.relayMessageCache.shift();s&&await this.onRelayMessage(s)}catch(s){this.client.logger.error(s)}},50)}),P(this,"cleanupDuplicatePairings",async s=>{if(s.pairingTopic)try{const r=this.client.core.pairing.pairings.get(s.pairingTopic),i=this.client.core.pairing.pairings.getAll().filter(n=>{var o,a;return((o=n.peerMetadata)==null?void 0:o.url)&&((a=n.peerMetadata)==null?void 0:a.url)===s.peer.metadata.url&&n.topic&&n.topic!==r.topic});if(i.length===0)return;this.client.logger.info(`Cleaning up ${i.length} duplicate pairing(s)`),await Promise.all(i.map(n=>this.client.core.pairing.disconnect({topic:n.topic}))),this.client.logger.info("Duplicate pairings clean up finished")}catch(r){this.client.logger.error(r)}}),P(this,"deleteSession",async s=>{var r;const{topic:i,expirerHasDeleted:n=!1,emitEvent:o=!0,id:a=0}=s,{self:c}=this.client.session.get(i);await this.client.core.relayer.unsubscribe(i),await this.client.session.delete(i,we("USER_DISCONNECTED")),this.addToRecentlyDeleted(i,"session"),this.client.core.crypto.keychain.has(c.publicKey)&&await this.client.core.crypto.deleteKeyPair(c.publicKey),this.client.core.crypto.keychain.has(i)&&await this.client.core.crypto.deleteSymKey(i),n||this.client.core.expirer.del(i),this.client.core.storage.removeItem(ml).catch(l=>this.client.logger.warn(l)),this.getPendingSessionRequests().forEach(l=>{l.topic===i&&this.deletePendingSessionRequest(l.id,we("USER_DISCONNECTED"))}),i===((r=this.sessionRequestQueue.queue[0])==null?void 0:r.topic)&&(this.sessionRequestQueue.state=zt.idle),o&&this.client.events.emit("session_delete",{id:a,topic:i})}),P(this,"deleteProposal",async(s,r)=>{if(r)try{const i=this.client.proposal.get(s);this.client.core.eventClient.getEvent({topic:i.pairingTopic})?.setError(xs.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(s,we("USER_DISCONNECTED")),r?Promise.resolve():this.client.core.expirer.del(s)]),this.addToRecentlyDeleted(s,"proposal")}),P(this,"deletePendingSessionRequest",async(s,r,i=!1)=>{await Promise.all([this.client.pendingRequest.delete(s,r),i?Promise.resolve():this.client.core.expirer.del(s)]),this.addToRecentlyDeleted(s,"request"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(n=>n.id!==s),i&&(this.sessionRequestQueue.state=zt.idle,this.client.events.emit("session_request_expire",{id:s}))}),P(this,"deletePendingAuthRequest",async(s,r,i=!1)=>{await Promise.all([this.client.auth.requests.delete(s,r),i?Promise.resolve():this.client.core.expirer.del(s)])}),P(this,"setExpiry",async(s,r)=>{this.client.session.keys.includes(s)&&(this.client.core.expirer.set(s,r),await this.client.session.update(s,{expiry:r}))}),P(this,"setProposal",async(s,r)=>{this.client.core.expirer.set(s,De(Be.wc_sessionPropose.req.ttl)),await this.client.proposal.set(s,r)}),P(this,"setAuthRequest",async(s,r)=>{const{request:i,pairingTopic:n,transportType:o=Ae.relay}=r;this.client.core.expirer.set(s,i.expiryTimestamp),await this.client.auth.requests.set(s,{authPayload:i.authPayload,requester:i.requester,expiryTimestamp:i.expiryTimestamp,id:s,pairingTopic:n,verifyContext:i.verifyContext,transportType:o})}),P(this,"setPendingSessionRequest",async s=>{const{id:r,topic:i,params:n,verifyContext:o}=s,a=n.request.expiryTimestamp||De(Be.wc_sessionRequest.req.ttl);this.client.core.expirer.set(r,a),await this.client.pendingRequest.set(r,{id:r,topic:i,params:n,verifyContext:o})}),P(this,"sendRequest",async s=>{const{topic:r,method:i,params:n,expiry:o,relayRpcId:a,clientRpcId:c,throwOnFailedPublish:l,appLink:u,tvf:h}=s,d=qs(i,n,c);let p;const w=!!u;try{const y=w?bs:Mt;p=await this.client.core.crypto.encode(r,d,{encoding:y})}catch(y){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${r} failed`),y}let m;if(pE.includes(i)){const y=Kt(JSON.stringify(d)),b=Kt(p);m=await this.client.core.verify.register({id:b,decryptedId:y})}const f=Be[i].req;if(f.attestation=m,o&&(f.ttl=o),a&&(f.id=a),this.client.core.history.set(r,d),w){const y=en(u,r,p);await global.Linking.openURL(y,this.client.name)}else{const y=Be[i].req;o&&(y.ttl=o),a&&(y.id=a),y.tvf=tt(be({},h),{correlationId:d.id}),l?(y.internal=tt(be({},y.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(r,p,y)):this.client.core.relayer.publish(r,p,y).catch(b=>this.client.logger.error(b))}return d.id}),P(this,"sendResult",async s=>{const{id:r,topic:i,result:n,throwOnFailedPublish:o,encodeOpts:a,appLink:c}=s,l=kn(r,n);let u;const h=c&&typeof(global==null?void 0:global.Linking)<"u";try{const w=h?bs:Mt;u=await this.client.core.crypto.encode(i,l,tt(be({},a||{}),{encoding:w}))}catch(w){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${i} failed`),w}let d,p;try{d=await this.client.core.history.get(i,r);const w=d.request;try{this.shouldSetTVF(w.method,w.params)&&(p=this.getTVFParams(r,w.params,n))}catch(m){this.client.logger.warn("sendResult() -> getTVFParams() failed",m)}}catch(w){throw this.client.logger.error(`sendResult() -> history.get(${i}, ${r}) failed`),w}if(h){const w=en(c,i,u);await global.Linking.openURL(w,this.client.name)}else{const w=d.request.method,m=Be[w].res;m.tvf=tt(be({},p),{correlationId:r}),o?(m.internal=tt(be({},m.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(i,u,m)):this.client.core.relayer.publish(i,u,m).catch(f=>this.client.logger.error(f))}await this.client.core.history.resolve(l)}),P(this,"sendError",async s=>{const{id:r,topic:i,error:n,encodeOpts:o,rpcOpts:a,appLink:c}=s,l=Gl(r,n);let u;const h=c&&typeof(global==null?void 0:global.Linking)<"u";try{const p=h?bs:Mt;u=await this.client.core.crypto.encode(i,l,tt(be({},o||{}),{encoding:p}))}catch(p){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${i} failed`),p}let d;try{d=await this.client.core.history.get(i,r)}catch(p){throw this.client.logger.error(`sendError() -> history.get(${i}, ${r}) failed`),p}if(h){const p=en(c,i,u);await global.Linking.openURL(p,this.client.name)}else{const p=d.request.method,w=a||Be[p].res;this.client.core.relayer.publish(i,u,w)}await this.client.core.history.resolve(l)}),P(this,"cleanup",async()=>{const s=[],r=[];this.client.session.getAll().forEach(i=>{let n=!1;ys(i.expiry)&&(n=!0),this.client.core.crypto.keychain.has(i.topic)||(n=!0),n&&s.push(i.topic)}),this.client.proposal.getAll().forEach(i=>{ys(i.expiryTimestamp)&&r.push(i.id)}),await Promise.all([...s.map(i=>this.deleteSession({topic:i})),...r.map(i=>this.deleteProposal(i))])}),P(this,"onProviderMessageEvent",async s=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(s):await this.onRelayMessage(s)}),P(this,"onRelayEventRequest",async s=>{this.requestQueue.queue.push(s),await this.processRequestsQueue()}),P(this,"processRequestsQueue",async()=>{if(this.requestQueue.state===zt.active){this.client.logger.info("Request queue already active, skipping...");return}for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=zt.active;const s=this.requestQueue.queue.shift();if(s)try{await this.processRequest(s)}catch(r){this.client.logger.warn(r)}}this.requestQueue.state=zt.idle}),P(this,"processRequest",async s=>{const{topic:r,payload:i,attestation:n,transportType:o,encryptedId:a}=s,c=i.method;if(!this.shouldIgnorePairingRequest({topic:r,requestMethod:c}))switch(c){case"wc_sessionPropose":return await this.onSessionProposeRequest({topic:r,payload:i,attestation:n,encryptedId:a});case"wc_sessionSettle":return await this.onSessionSettleRequest(r,i);case"wc_sessionUpdate":return await this.onSessionUpdateRequest(r,i);case"wc_sessionExtend":return await this.onSessionExtendRequest(r,i);case"wc_sessionPing":return await this.onSessionPingRequest(r,i);case"wc_sessionDelete":return await this.onSessionDeleteRequest(r,i);case"wc_sessionRequest":return await this.onSessionRequest({topic:r,payload:i,attestation:n,encryptedId:a,transportType:o});case"wc_sessionEvent":return await this.onSessionEventRequest(r,i);case"wc_sessionAuthenticate":return await this.onSessionAuthenticateRequest({topic:r,payload:i,attestation:n,encryptedId:a,transportType:o});default:return this.client.logger.info(`Unsupported request method ${c}`)}}),P(this,"onRelayEventResponse",async s=>{const{topic:r,payload:i,transportType:n}=s,o=(await this.client.core.history.get(r,i.id)).request.method;switch(o){case"wc_sessionPropose":return this.onSessionProposeResponse(r,i,n);case"wc_sessionSettle":return this.onSessionSettleResponse(r,i);case"wc_sessionUpdate":return this.onSessionUpdateResponse(r,i);case"wc_sessionExtend":return this.onSessionExtendResponse(r,i);case"wc_sessionPing":return this.onSessionPingResponse(r,i);case"wc_sessionRequest":return this.onSessionRequestResponse(r,i);case"wc_sessionAuthenticate":return this.onSessionAuthenticateResponse(r,i);default:return this.client.logger.info(`Unsupported response method ${o}`)}}),P(this,"onRelayEventUnknownPayload",s=>{const{topic:r}=s,{message:i}=R("MISSING_OR_INVALID",`Decoded payload on topic ${r} is not identifiable as a JSON-RPC request or a response.`);throw new Error(i)}),P(this,"shouldIgnorePairingRequest",s=>{const{topic:r,requestMethod:i}=s,n=this.expectedPairingMethodMap.get(r);return!n||n.includes(i)?!1:!!(n.includes("wc_sessionAuthenticate")&&this.client.events.listenerCount("session_authenticate")>0)}),P(this,"onSessionProposeRequest",async s=>{const{topic:r,payload:i,attestation:n,encryptedId:o}=s,{params:a,id:c}=i;try{const l=this.client.core.eventClient.getEvent({topic:r});this.client.events.listenerCount("session_proposal")===0&&(console.warn("No listener for session_proposal event"),l?.setError(is.proposal_listener_not_found)),this.isValidConnect(be({},i.params));const u=a.expiryTimestamp||De(Be.wc_sessionPropose.req.ttl),h=be({id:c,pairingTopic:r,expiryTimestamp:u},a);await this.setProposal(c,h);const d=await this.getVerifyContext({attestationId:n,hash:Kt(JSON.stringify(i)),encryptedId:o,metadata:h.proposer.metadata});l?.addTrace(Wt.emit_session_proposal),this.client.events.emit("session_proposal",{id:c,params:h,verifyContext:d})}catch(l){await this.sendError({id:c,topic:r,error:l,rpcOpts:Be.wc_sessionPropose.autoReject}),this.client.logger.error(l)}}),P(this,"onSessionProposeResponse",async(s,r,i)=>{const{id:n}=r;if(rs(r)){const{result:o}=r;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",result:o});const a=this.client.proposal.get(n);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",proposal:a});const c=a.proposer.publicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",selfPublicKey:c});const l=o.responderPublicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",peerPublicKey:l});const u=await this.client.core.crypto.generateSharedKey(c,l);this.pendingSessions.set(n,{sessionTopic:u,pairingTopic:s,proposalId:n,publicKey:c});const h=await this.client.core.relayer.subscribe(u,{transportType:i});this.client.logger.trace({type:"method",method:"onSessionProposeResponse",subscriptionId:h}),await this.client.core.pairing.activate({topic:s})}else if(Ht(r)){await this.client.proposal.delete(n,we("USER_DISCONNECTED"));const o=pe("session_connect",n);if(this.events.listenerCount(o)===0)throw new Error(`emitting ${o} without any listeners, 954`);this.events.emit(o,{error:r.error})}}),P(this,"onSessionSettleRequest",async(s,r)=>{const{id:i,params:n}=r;try{this.isValidSessionSettleRequest(n);const{relay:o,controller:a,expiry:c,namespaces:l,sessionProperties:u,scopedProperties:h,sessionConfig:d}=r.params,p=[...this.pendingSessions.values()].find(f=>f.sessionTopic===s);if(!p)return this.client.logger.error(`Pending session not found for topic ${s}`);const w=this.client.proposal.get(p.proposalId),m=tt(be(be(be({topic:s,relay:o,expiry:c,namespaces:l,acknowledged:!0,pairingTopic:p.pairingTopic,requiredNamespaces:w.requiredNamespaces,optionalNamespaces:w.optionalNamespaces,controller:a.publicKey,self:{publicKey:p.publicKey,metadata:this.client.metadata},peer:{publicKey:a.publicKey,metadata:a.metadata}},u&&{sessionProperties:u}),h&&{scopedProperties:h}),d&&{sessionConfig:d}),{transportType:Ae.relay});await this.client.session.set(m.topic,m),await this.setExpiry(m.topic,m.expiry),await this.client.core.pairing.updateMetadata({topic:p.pairingTopic,metadata:m.peer.metadata}),this.client.events.emit("session_connect",{session:m}),this.events.emit(pe("session_connect",p.proposalId),{session:m}),this.pendingSessions.delete(p.proposalId),this.deleteProposal(p.proposalId,!1),this.cleanupDuplicatePairings(m),await this.sendResult({id:r.id,topic:s,result:!0,throwOnFailedPublish:!0})}catch(o){await this.sendError({id:i,topic:s,error:o}),this.client.logger.error(o)}}),P(this,"onSessionSettleResponse",async(s,r)=>{const{id:i}=r;rs(r)?(await this.client.session.update(s,{acknowledged:!0}),this.events.emit(pe("session_approve",i),{})):Ht(r)&&(await this.client.session.delete(s,we("USER_DISCONNECTED")),this.events.emit(pe("session_approve",i),{error:r.error}))}),P(this,"onSessionUpdateRequest",async(s,r)=>{const{params:i,id:n}=r;try{const o=`${s}_session_update`,a=ti.get(o);if(a&&this.isRequestOutOfSync(a,n)){this.client.logger.warn(`Discarding out of sync request - ${n}`),this.sendError({id:n,topic:s,error:we("INVALID_UPDATE_REQUEST")});return}this.isValidUpdate(be({topic:s},i));try{ti.set(o,n),await this.client.session.update(s,{namespaces:i.namespaces}),await this.sendResult({id:n,topic:s,result:!0,throwOnFailedPublish:!0})}catch(c){throw ti.delete(o),c}this.client.events.emit("session_update",{id:n,topic:s,params:i})}catch(o){await this.sendError({id:n,topic:s,error:o}),this.client.logger.error(o)}}),P(this,"isRequestOutOfSync",(s,r)=>r.toString().slice(0,-3){const{id:i}=r,n=pe("session_update",i);if(this.events.listenerCount(n)===0)throw new Error(`emitting ${n} without any listeners`);rs(r)?this.events.emit(pe("session_update",i),{}):Ht(r)&&this.events.emit(pe("session_update",i),{error:r.error})}),P(this,"onSessionExtendRequest",async(s,r)=>{const{id:i}=r;try{this.isValidExtend({topic:s}),await this.setExpiry(s,De(ur)),await this.sendResult({id:i,topic:s,result:!0,throwOnFailedPublish:!0}),this.client.events.emit("session_extend",{id:i,topic:s})}catch(n){await this.sendError({id:i,topic:s,error:n}),this.client.logger.error(n)}}),P(this,"onSessionExtendResponse",(s,r)=>{const{id:i}=r,n=pe("session_extend",i);if(this.events.listenerCount(n)===0)throw new Error(`emitting ${n} without any listeners`);rs(r)?this.events.emit(pe("session_extend",i),{}):Ht(r)&&this.events.emit(pe("session_extend",i),{error:r.error})}),P(this,"onSessionPingRequest",async(s,r)=>{const{id:i}=r;try{this.isValidPing({topic:s}),await this.sendResult({id:i,topic:s,result:!0,throwOnFailedPublish:!0}),this.client.events.emit("session_ping",{id:i,topic:s})}catch(n){await this.sendError({id:i,topic:s,error:n}),this.client.logger.error(n)}}),P(this,"onSessionPingResponse",(s,r)=>{const{id:i}=r,n=pe("session_ping",i);setTimeout(()=>{if(this.events.listenerCount(n)===0)throw new Error(`emitting ${n} without any listeners 2176`);rs(r)?this.events.emit(pe("session_ping",i),{}):Ht(r)&&this.events.emit(pe("session_ping",i),{error:r.error})},500)}),P(this,"onSessionDeleteRequest",async(s,r)=>{const{id:i}=r;try{this.isValidDisconnect({topic:s,reason:r.params}),Promise.all([new Promise(n=>{this.client.core.relayer.once(Fe.publish,async()=>{n(await this.deleteSession({topic:s,id:i}))})}),this.sendResult({id:i,topic:s,result:!0,throwOnFailedPublish:!0}),this.cleanupPendingSentRequestsForTopic({topic:s,error:we("USER_DISCONNECTED")})]).catch(n=>this.client.logger.error(n))}catch(n){this.client.logger.error(n)}}),P(this,"onSessionRequest",async s=>{var r,i,n;const{topic:o,payload:a,attestation:c,encryptedId:l,transportType:u}=s,{id:h,params:d}=a;try{await this.isValidRequest(be({topic:o},d));const p=this.client.session.get(o),w=await this.getVerifyContext({attestationId:c,hash:Kt(JSON.stringify(qs("wc_sessionRequest",d,h))),encryptedId:l,metadata:p.peer.metadata,transportType:u}),m={id:h,topic:o,params:d,verifyContext:w};await this.setPendingSessionRequest(m),u===Ae.link_mode&&(r=p.peer.metadata.redirect)!=null&&r.universal&&this.client.core.addLinkModeSupportedApp((i=p.peer.metadata.redirect)==null?void 0:i.universal),(n=this.client.signConfig)!=null&&n.disableRequestQueue?this.emitSessionRequest(m):(this.addSessionRequestToSessionRequestQueue(m),this.processSessionRequestQueue())}catch(p){await this.sendError({id:h,topic:o,error:p}),this.client.logger.error(p)}}),P(this,"onSessionRequestResponse",(s,r)=>{const{id:i}=r,n=pe("session_request",i);if(this.events.listenerCount(n)===0)throw new Error(`emitting ${n} without any listeners`);rs(r)?this.events.emit(pe("session_request",i),{result:r.result}):Ht(r)&&this.events.emit(pe("session_request",i),{error:r.error})}),P(this,"onSessionEventRequest",async(s,r)=>{const{id:i,params:n}=r;try{const o=`${s}_session_event_${n.event.name}`,a=ti.get(o);if(a&&this.isRequestOutOfSync(a,i)){this.client.logger.info(`Discarding out of sync request - ${i}`);return}this.isValidEmit(be({topic:s},n)),this.client.events.emit("session_event",{id:i,topic:s,params:n}),ti.set(o,i)}catch(o){await this.sendError({id:i,topic:s,error:o}),this.client.logger.error(o)}}),P(this,"onSessionAuthenticateResponse",(s,r)=>{const{id:i}=r;this.client.logger.trace({type:"method",method:"onSessionAuthenticateResponse",topic:s,payload:r}),rs(r)?this.events.emit(pe("session_request",i),{result:r.result}):Ht(r)&&this.events.emit(pe("session_request",i),{error:r.error})}),P(this,"onSessionAuthenticateRequest",async s=>{var r;const{topic:i,payload:n,attestation:o,encryptedId:a,transportType:c}=s;try{const{requester:l,authPayload:u,expiryTimestamp:h}=n.params,d=await this.getVerifyContext({attestationId:o,hash:Kt(JSON.stringify(n)),encryptedId:a,metadata:l.metadata,transportType:c}),p={requester:l,pairingTopic:i,id:n.id,authPayload:u,verifyContext:d,expiryTimestamp:h};await this.setAuthRequest(n.id,{request:p,pairingTopic:i,transportType:c}),c===Ae.link_mode&&(r=l.metadata.redirect)!=null&&r.universal&&this.client.core.addLinkModeSupportedApp(l.metadata.redirect.universal),this.client.events.emit("session_authenticate",{topic:i,params:n.params,id:n.id,verifyContext:d})}catch(l){this.client.logger.error(l);const u=n.params.requester.publicKey,h=await this.client.core.crypto.generateKeyPair(),d=this.getAppLinkIfEnabled(n.params.requester.metadata,c),p={type:cs,receiverPublicKey:u,senderPublicKey:h};await this.sendError({id:n.id,topic:i,error:l,encodeOpts:p,rpcOpts:Be.wc_sessionAuthenticate.autoReject,appLink:d})}}),P(this,"addSessionRequestToSessionRequestQueue",s=>{this.sessionRequestQueue.queue.push(s)}),P(this,"cleanupAfterResponse",s=>{this.deletePendingSessionRequest(s.response.id,{message:"fulfilled",code:0}),setTimeout(()=>{this.sessionRequestQueue.state=zt.idle,this.processSessionRequestQueue()},D.toMiliseconds(this.requestQueueDelay))}),P(this,"cleanupPendingSentRequestsForTopic",({topic:s,error:r})=>{const i=this.client.core.history.pending;i.length>0&&i.filter(n=>n.topic===s&&n.request.method==="wc_sessionRequest").forEach(n=>{const o=n.request.id,a=pe("session_request",o);if(this.events.listenerCount(a)===0)throw new Error(`emitting ${a} without any listeners`);this.events.emit(pe("session_request",n.request.id),{error:r})})}),P(this,"processSessionRequestQueue",()=>{if(this.sessionRequestQueue.state===zt.active){this.client.logger.info("session request queue is already active.");return}const s=this.sessionRequestQueue.queue[0];if(!s){this.client.logger.info("session request queue is empty.");return}try{this.sessionRequestQueue.state=zt.active,this.emitSessionRequest(s)}catch(r){this.client.logger.error(r)}}),P(this,"emitSessionRequest",s=>{this.client.events.emit("session_request",s)}),P(this,"onPairingCreated",s=>{if(s.methods&&this.expectedPairingMethodMap.set(s.topic,s.methods),s.active)return;const r=this.client.proposal.getAll().find(i=>i.pairingTopic===s.topic);r&&this.onSessionProposeRequest({topic:s.topic,payload:qs("wc_sessionPropose",tt(be({},r),{requiredNamespaces:r.requiredNamespaces,optionalNamespaces:r.optionalNamespaces,relays:r.relays,proposer:r.proposer,sessionProperties:r.sessionProperties,scopedProperties:r.scopedProperties}),r.id)})}),P(this,"isValidConnect",async s=>{if(!ut(s)){const{message:l}=R("MISSING_OR_INVALID",`connect() params: ${JSON.stringify(s)}`);throw new Error(l)}const{pairingTopic:r,requiredNamespaces:i,optionalNamespaces:n,sessionProperties:o,scopedProperties:a,relays:c}=s;if(Je(r)||await this.isValidPairingTopic(r),!cy(c)){const{message:l}=R("MISSING_OR_INVALID",`connect() relays: ${c}`);throw new Error(l)}if(!Je(i)&&_s(i)!==0){const l="requiredNamespaces are deprecated and are automatically assigned to optionalNamespaces";["fatal","error","silent"].includes(this.client.logger.level)?console.warn(l):this.client.logger.warn(l),this.validateNamespaces(i,"requiredNamespaces")}if(!Je(n)&&_s(n)!==0&&this.validateNamespaces(n,"optionalNamespaces"),Je(o)||this.validateSessionProps(o,"sessionProperties"),!Je(a)){this.validateSessionProps(a,"scopedProperties");const l=Object.keys(i||{}).concat(Object.keys(n||{}));if(!Object.keys(a).every(u=>l.includes(u)))throw new Error(`Scoped properties must be a subset of required/optional namespaces, received: ${JSON.stringify(a)}, required/optional namespaces: ${JSON.stringify(l)}`)}}),P(this,"validateNamespaces",(s,r)=>{const i=ay(s,"connect()",r);if(i)throw new Error(i.message)}),P(this,"isValidApprove",async s=>{if(!ut(s))throw new Error(R("MISSING_OR_INVALID",`approve() params: ${s}`).message);const{id:r,namespaces:i,relayProtocol:n,sessionProperties:o,scopedProperties:a}=s;this.checkRecentlyDeleted(r),await this.isValidProposalId(r);const c=this.client.proposal.get(r),l=oo(i,"approve()");if(l)throw new Error(l.message);const u=zc(c.requiredNamespaces,i,"approve()");if(u)throw new Error(u.message);if(!xe(n,!0)){const{message:h}=R("MISSING_OR_INVALID",`approve() relayProtocol: ${n}`);throw new Error(h)}if(Je(o)||this.validateSessionProps(o,"sessionProperties"),!Je(a)){this.validateSessionProps(a,"scopedProperties");const h=new Set(Object.keys(i));if(!Object.keys(a).every(d=>h.has(d)))throw new Error(`Scoped properties must be a subset of approved namespaces, received: ${JSON.stringify(a)}, approved namespaces: ${Array.from(h).join(", ")}`)}}),P(this,"isValidReject",async s=>{if(!ut(s)){const{message:n}=R("MISSING_OR_INVALID",`reject() params: ${s}`);throw new Error(n)}const{id:r,reason:i}=s;if(this.checkRecentlyDeleted(r),await this.isValidProposalId(r),!uy(i)){const{message:n}=R("MISSING_OR_INVALID",`reject() reason: ${JSON.stringify(i)}`);throw new Error(n)}}),P(this,"isValidSessionSettleRequest",s=>{if(!ut(s)){const{message:l}=R("MISSING_OR_INVALID",`onSessionSettleRequest() params: ${s}`);throw new Error(l)}const{relay:r,controller:i,namespaces:n,expiry:o}=s;if(!eh(r)){const{message:l}=R("MISSING_OR_INVALID","onSessionSettleRequest() relay protocol should be a string");throw new Error(l)}const a=ty(i,"onSessionSettleRequest()");if(a)throw new Error(a.message);const c=oo(n,"onSessionSettleRequest()");if(c)throw new Error(c.message);if(ys(o)){const{message:l}=R("EXPIRED","onSessionSettleRequest()");throw new Error(l)}}),P(this,"isValidUpdate",async s=>{if(!ut(s)){const{message:c}=R("MISSING_OR_INVALID",`update() params: ${s}`);throw new Error(c)}const{topic:r,namespaces:i}=s;this.checkRecentlyDeleted(r),await this.isValidSessionTopic(r);const n=this.client.session.get(r),o=oo(i,"update()");if(o)throw new Error(o.message);const a=zc(n.requiredNamespaces,i,"update()");if(a)throw new Error(a.message)}),P(this,"isValidExtend",async s=>{if(!ut(s)){const{message:i}=R("MISSING_OR_INVALID",`extend() params: ${s}`);throw new Error(i)}const{topic:r}=s;this.checkRecentlyDeleted(r),await this.isValidSessionTopic(r)}),P(this,"isValidRequest",async s=>{if(!ut(s)){const{message:c}=R("MISSING_OR_INVALID",`request() params: ${s}`);throw new Error(c)}const{topic:r,request:i,chainId:n,expiry:o}=s;this.checkRecentlyDeleted(r),await this.isValidSessionTopic(r);const{namespaces:a}=this.client.session.get(r);if(!Fc(a,n)){const{message:c}=R("MISSING_OR_INVALID",`request() chainId: ${n}`);throw new Error(c)}if(!hy(i)){const{message:c}=R("MISSING_OR_INVALID",`request() ${JSON.stringify(i)}`);throw new Error(c)}if(!fy(a,n,i.method)){const{message:c}=R("MISSING_OR_INVALID",`request() method: ${i.method}`);throw new Error(c)}if(o&&!yy(o,fo)){const{message:c}=R("MISSING_OR_INVALID",`request() expiry: ${o}. Expiry must be a number (in seconds) between ${fo.min} and ${fo.max}`);throw new Error(c)}}),P(this,"isValidRespond",async s=>{var r;if(!ut(s)){const{message:o}=R("MISSING_OR_INVALID",`respond() params: ${s}`);throw new Error(o)}const{topic:i,response:n}=s;try{await this.isValidSessionTopic(i)}catch(o){throw(r=s?.response)!=null&&r.id&&this.cleanupAfterResponse(s),o}if(!dy(n)){const{message:o}=R("MISSING_OR_INVALID",`respond() response: ${JSON.stringify(n)}`);throw new Error(o)}}),P(this,"isValidPing",async s=>{if(!ut(s)){const{message:i}=R("MISSING_OR_INVALID",`ping() params: ${s}`);throw new Error(i)}const{topic:r}=s;await this.isValidSessionOrPairingTopic(r)}),P(this,"isValidEmit",async s=>{if(!ut(s)){const{message:a}=R("MISSING_OR_INVALID",`emit() params: ${s}`);throw new Error(a)}const{topic:r,event:i,chainId:n}=s;await this.isValidSessionTopic(r);const{namespaces:o}=this.client.session.get(r);if(!Fc(o,n)){const{message:a}=R("MISSING_OR_INVALID",`emit() chainId: ${n}`);throw new Error(a)}if(!py(i)){const{message:a}=R("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(i)}`);throw new Error(a)}if(!gy(o,n,i.name)){const{message:a}=R("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(i)}`);throw new Error(a)}}),P(this,"isValidDisconnect",async s=>{if(!ut(s)){const{message:i}=R("MISSING_OR_INVALID",`disconnect() params: ${s}`);throw new Error(i)}const{topic:r}=s;await this.isValidSessionOrPairingTopic(r)}),P(this,"isValidAuthenticate",s=>{const{chains:r,uri:i,domain:n,nonce:o}=s;if(!Array.isArray(r)||r.length===0)throw new Error("chains is required and must be a non-empty array");if(!xe(i,!1))throw new Error("uri is required parameter");if(!xe(n,!1))throw new Error("domain is required parameter");if(!xe(o,!1))throw new Error("nonce is required parameter");if([...new Set(r.map(c=>Or(c).namespace))].length>1)throw new Error("Multi-namespace requests are not supported. Please request single namespace only.");const{namespace:a}=Or(r[0]);if(a!=="eip155")throw new Error("Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.")}),P(this,"getVerifyContext",async s=>{const{attestationId:r,hash:i,encryptedId:n,metadata:o,transportType:a}=s,c={verified:{verifyUrl:o.verifyUrl||bi,validation:"UNKNOWN",origin:o.url||""}};try{if(a===Ae.link_mode){const u=this.getAppLinkIfEnabled(o,a);return c.verified.validation=u&&new URL(u).origin===new URL(o.url).origin?"VALID":"INVALID",c}const l=await this.client.core.verify.resolve({attestationId:r,hash:i,encryptedId:n,verifyUrl:o.verifyUrl});l&&(c.verified.origin=l.origin,c.verified.isScam=l.isScam,c.verified.validation=l.origin===new URL(o.url).origin?"VALID":"INVALID")}catch(l){this.client.logger.warn(l)}return this.client.logger.debug(`Verify context: ${JSON.stringify(c)}`),c}),P(this,"validateSessionProps",(s,r)=>{Object.values(s).forEach((i,n)=>{if(i==null){const{message:o}=R("MISSING_OR_INVALID",`${r} must contain an existing value for each key. Received: ${i} for key ${Object.keys(s)[n]}`);throw new Error(o)}})}),P(this,"getPendingAuthRequest",s=>{const r=this.client.auth.requests.get(s);return typeof r=="object"?r:void 0}),P(this,"addToRecentlyDeleted",(s,r)=>{if(this.recentlyDeletedMap.set(s,r),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let i=0;const n=this.recentlyDeletedLimit/2;for(const o of this.recentlyDeletedMap.keys()){if(i++>=n)break;this.recentlyDeletedMap.delete(o)}}}),P(this,"checkRecentlyDeleted",s=>{const r=this.recentlyDeletedMap.get(s);if(r){const{message:i}=R("MISSING_OR_INVALID",`Record was recently deleted - ${r}: ${s}`);throw new Error(i)}}),P(this,"isLinkModeEnabled",(s,r)=>{var i,n,o,a,c,l,u,h,d;return!s||r!==Ae.link_mode?!1:((n=(i=this.client.metadata)==null?void 0:i.redirect)==null?void 0:n.linkMode)===!0&&((a=(o=this.client.metadata)==null?void 0:o.redirect)==null?void 0:a.universal)!==void 0&&((l=(c=this.client.metadata)==null?void 0:c.redirect)==null?void 0:l.universal)!==""&&((u=s?.redirect)==null?void 0:u.universal)!==void 0&&((h=s?.redirect)==null?void 0:h.universal)!==""&&((d=s?.redirect)==null?void 0:d.linkMode)===!0&&this.client.core.linkModeSupportedApps.includes(s.redirect.universal)&&typeof(global==null?void 0:global.Linking)<"u"}),P(this,"getAppLinkIfEnabled",(s,r)=>{var i;return this.isLinkModeEnabled(s,r)?(i=s?.redirect)==null?void 0:i.universal:void 0}),P(this,"handleLinkModeMessage",({url:s})=>{if(!s||!s.includes("wc_ev")||!s.includes("topic"))return;const r=ic(s,"topic")||"",i=decodeURIComponent(ic(s,"wc_ev")||""),n=this.client.session.keys.includes(r);n&&this.client.session.update(r,{transportType:Ae.link_mode}),this.client.core.dispatchEnvelope({topic:r,message:i,sessionExists:n})}),P(this,"registerLinkModeListeners",async()=>{var s;if(ha()||ks()&&(s=this.client.metadata.redirect)!=null&&s.linkMode){const r=global==null?void 0:global.Linking;if(typeof r<"u"){r.addEventListener("url",this.handleLinkModeMessage,this.client.name);const i=await r.getInitialURL();i&&setTimeout(()=>{this.handleLinkModeMessage({url:i})},50)}}}),P(this,"shouldSetTVF",(s,r)=>{if(!r||s!=="wc_sessionRequest")return!1;const{request:i}=r;return Object.keys(yl).includes(i.method)}),P(this,"getTVFParams",(s,r,i)=>{var n,o;try{const a=r.request.method,c=this.extractTxHashesFromResult(a,i);return tt(be({correlationId:s,rpcMethods:[a],chainId:r.chainId},this.isValidContractData(r.request.params)&&{contractAddresses:[(o=(n=r.request.params)==null?void 0:n[0])==null?void 0:o.to]}),{txHashes:c})}catch(a){this.client.logger.warn("Error getting TVF params",a)}return{}}),P(this,"isValidContractData",s=>{var r;if(!s)return!1;try{const i=s?.data||((r=s?.[0])==null?void 0:r.data);if(!i.startsWith("0x"))return!1;const n=i.slice(2);return/^[0-9a-fA-F]*$/.test(n)?n.length%2===0:!1}catch{}return!1}),P(this,"extractTxHashesFromResult",(s,r)=>{try{const i=yl[s];if(typeof r=="string")return[r];const n=r[i.key];if(As(n))return s==="solana_signAllTransactions"?n.map(o=>Mg(o)):n;if(typeof n=="string")return[n]}catch(i){this.client.logger.warn("Error extracting tx hashes from result",i)}return[]})}async processPendingMessageEvents(){try{const e=this.client.session.keys,s=this.client.core.relayer.messages.getWithoutAck(e);for(const[r,i]of Object.entries(s))for(const n of i)try{await this.onProviderMessageEvent({topic:r,message:n,publishedAt:Date.now()})}catch{this.client.logger.warn(`Error processing pending message event for topic: ${r}, message: ${n}`)}}catch(e){this.client.logger.warn("processPendingMessageEvents failed",e)}}isInitialized(){if(!this.initialized){const{message:e}=R("NOT_INITIALIZED",this.name);throw new Error(e)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(Fe.message,e=>{this.onProviderMessageEvent(e)})}async onRelayMessage(e){const{topic:s,message:r,attestation:i,transportType:n}=e,{publicKey:o}=this.client.auth.authKeys.keys.includes(fn)?this.client.auth.authKeys.get(fn):{publicKey:void 0};try{const a=await this.client.core.crypto.decode(s,r,{receiverPublicKey:o,encoding:n===Ae.link_mode?bs:Mt});aa(a)?(this.client.core.history.set(s,a),await this.onRelayEventRequest({topic:s,payload:a,attestation:i,transportType:n,encryptedId:Kt(r)})):ca(a)?(await this.client.core.history.resolve(a),await this.onRelayEventResponse({topic:s,payload:a,transportType:n}),this.client.core.history.delete(s,a.id)):await this.onRelayEventUnknownPayload({topic:s,payload:a,transportType:n}),await this.client.core.relayer.messages.ack(s,r)}catch(a){this.client.logger.error(a)}}registerExpirerEvents(){this.client.core.expirer.on(Pt.expired,async e=>{const{topic:s,id:r}=bu(e.target);if(r&&this.client.pendingRequest.keys.includes(r))return await this.deletePendingSessionRequest(r,R("EXPIRED"),!0);if(r&&this.client.auth.requests.keys.includes(r))return await this.deletePendingAuthRequest(r,R("EXPIRED"),!0);s?this.client.session.keys.includes(s)&&(await this.deleteSession({topic:s,expirerHasDeleted:!0}),this.client.events.emit("session_expire",{topic:s})):r&&(await this.deleteProposal(r,!0),this.client.events.emit("proposal_expire",{id:r}))})}registerPairingEvents(){this.client.core.pairing.events.on(Bs.create,e=>this.onPairingCreated(e)),this.client.core.pairing.events.on(Bs.delete,e=>{this.addToRecentlyDeleted(e.topic,"pairing")})}isValidPairingTopic(e){if(!xe(e,!1)){const{message:s}=R("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw new Error(s)}if(!this.client.core.pairing.pairings.keys.includes(e)){const{message:s}=R("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw new Error(s)}if(ys(this.client.core.pairing.pairings.get(e).expiry)){const{message:s}=R("EXPIRED",`pairing topic: ${e}`);throw new Error(s)}}async isValidSessionTopic(e){if(!xe(e,!1)){const{message:s}=R("MISSING_OR_INVALID",`session topic should be a string: ${e}`);throw new Error(s)}if(this.checkRecentlyDeleted(e),!this.client.session.keys.includes(e)){const{message:s}=R("NO_MATCHING_KEY",`session topic doesn't exist: ${e}`);throw new Error(s)}if(ys(this.client.session.get(e).expiry)){await this.deleteSession({topic:e});const{message:s}=R("EXPIRED",`session topic: ${e}`);throw new Error(s)}if(!this.client.core.crypto.keychain.has(e)){const{message:s}=R("MISSING_OR_INVALID",`session topic does not exist in keychain: ${e}`);throw await this.deleteSession({topic:e}),new Error(s)}}async isValidSessionOrPairingTopic(e){if(this.checkRecentlyDeleted(e),this.client.session.keys.includes(e))await this.isValidSessionTopic(e);else if(this.client.core.pairing.pairings.keys.includes(e))this.isValidPairingTopic(e);else if(xe(e,!1)){const{message:s}=R("NO_MATCHING_KEY",`session or pairing topic doesn't exist: ${e}`);throw new Error(s)}else{const{message:s}=R("MISSING_OR_INVALID",`session or pairing topic should be a string: ${e}`);throw new Error(s)}}async isValidProposalId(e){if(!ly(e)){const{message:s}=R("MISSING_OR_INVALID",`proposal id should be a number: ${e}`);throw new Error(s)}if(!this.client.proposal.keys.includes(e)){const{message:s}=R("NO_MATCHING_KEY",`proposal id doesn't exist: ${e}`);throw new Error(s)}if(ys(this.client.proposal.get(e).expiryTimestamp)){await this.deleteProposal(e);const{message:s}=R("EXPIRED",`proposal id: ${e}`);throw new Error(s)}}}class AE extends sr{constructor(e,s){super(e,s,lE,ba),this.core=e,this.logger=s}}let _E=class extends sr{constructor(e,s){super(e,s,uE,ba),this.core=e,this.logger=s}};class SE extends sr{constructor(e,s){super(e,s,dE,ba,r=>r.id),this.core=e,this.logger=s}}class PE extends sr{constructor(e,s){super(e,s,mE,Bn,()=>fn),this.core=e,this.logger=s}}class kE extends sr{constructor(e,s){super(e,s,wE,Bn),this.core=e,this.logger=s}}class OE extends sr{constructor(e,s){super(e,s,yE,Bn,r=>r.id),this.core=e,this.logger=s}}var TE=Object.defineProperty,xE=(t,e,s)=>e in t?TE(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,go=(t,e,s)=>xE(t,typeof e!="symbol"?e+"":e,s);class $E{constructor(e,s){this.core=e,this.logger=s,go(this,"authKeys"),go(this,"pairingTopics"),go(this,"requests"),this.authKeys=new PE(this.core,this.logger),this.pairingTopics=new kE(this.core,this.logger),this.requests=new OE(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}var RE=Object.defineProperty,UE=(t,e,s)=>e in t?RE(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,ne=(t,e,s)=>UE(t,typeof e!="symbol"?e+"":e,s);let DE=class vh extends Vp{constructor(e){super(e),ne(this,"protocol",wh),ne(this,"version",yh),ne(this,"name",po.name),ne(this,"metadata"),ne(this,"core"),ne(this,"logger"),ne(this,"events",new Zs.EventEmitter),ne(this,"engine"),ne(this,"session"),ne(this,"proposal"),ne(this,"pendingRequest"),ne(this,"auth"),ne(this,"signConfig"),ne(this,"on",(r,i)=>this.events.on(r,i)),ne(this,"once",(r,i)=>this.events.once(r,i)),ne(this,"off",(r,i)=>this.events.off(r,i)),ne(this,"removeListener",(r,i)=>this.events.removeListener(r,i)),ne(this,"removeAllListeners",r=>this.events.removeAllListeners(r)),ne(this,"connect",async r=>{try{return await this.engine.connect(r)}catch(i){throw this.logger.error(i.message),i}}),ne(this,"pair",async r=>{try{return await this.engine.pair(r)}catch(i){throw this.logger.error(i.message),i}}),ne(this,"approve",async r=>{try{return await this.engine.approve(r)}catch(i){throw this.logger.error(i.message),i}}),ne(this,"reject",async r=>{try{return await this.engine.reject(r)}catch(i){throw this.logger.error(i.message),i}}),ne(this,"update",async r=>{try{return await this.engine.update(r)}catch(i){throw this.logger.error(i.message),i}}),ne(this,"extend",async r=>{try{return await this.engine.extend(r)}catch(i){throw this.logger.error(i.message),i}}),ne(this,"request",async r=>{try{return await this.engine.request(r)}catch(i){throw this.logger.error(i.message),i}}),ne(this,"respond",async r=>{try{return await this.engine.respond(r)}catch(i){throw this.logger.error(i.message),i}}),ne(this,"ping",async r=>{try{return await this.engine.ping(r)}catch(i){throw this.logger.error(i.message),i}}),ne(this,"emit",async r=>{try{return await this.engine.emit(r)}catch(i){throw this.logger.error(i.message),i}}),ne(this,"disconnect",async r=>{try{return await this.engine.disconnect(r)}catch(i){throw this.logger.error(i.message),i}}),ne(this,"find",r=>{try{return this.engine.find(r)}catch(i){throw this.logger.error(i.message),i}}),ne(this,"getPendingSessionRequests",()=>{try{return this.engine.getPendingSessionRequests()}catch(r){throw this.logger.error(r.message),r}}),ne(this,"authenticate",async(r,i)=>{try{return await this.engine.authenticate(r,i)}catch(n){throw this.logger.error(n.message),n}}),ne(this,"formatAuthMessage",r=>{try{return this.engine.formatAuthMessage(r)}catch(i){throw this.logger.error(i.message),i}}),ne(this,"approveSessionAuthenticate",async r=>{try{return await this.engine.approveSessionAuthenticate(r)}catch(i){throw this.logger.error(i.message),i}}),ne(this,"rejectSessionAuthenticate",async r=>{try{return await this.engine.rejectSessionAuthenticate(r)}catch(i){throw this.logger.error(i.message),i}}),this.name=e?.name||po.name,this.metadata=Xf(e?.metadata),this.signConfig=e?.signConfig;const s=typeof e?.logger<"u"&&typeof e?.logger!="string"?e.logger:oa($i({level:e?.logger||po.logger}));this.core=e?.core||new cE(e),this.logger=rt(s,this.name),this.session=new _E(this.core,this.logger),this.proposal=new AE(this.core,this.logger),this.pendingRequest=new SE(this.core,this.logger),this.engine=new NE(this),this.auth=new $E(this.core,this.logger)}static async init(e){const s=new vh(e);return await s.initialize(),s}get context(){return Et(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace("Initialized");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info("SignClient Initialization Success"),setTimeout(()=>{this.engine.processRelayMessageCache()},D.toMiliseconds(D.ONE_SECOND))}catch(e){throw this.logger.info("SignClient Initialization Failure"),this.logger.error(e.message),e}}};const vl="error",LE="wss://relay.walletconnect.org",ME="wc",BE="universal_provider",sn=`${ME}@2:${BE}:`,Eh="https://rpc.walletconnect.org/v1/",Ir="generic",jE=`${Eh}bundler`,Tt={DEFAULT_CHAIN_CHANGED:"default_chain_changed"};function qE(){}function va(t){return t==null||typeof t!="object"&&typeof t!="function"}function Ea(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function FE(t){if(va(t))return t;if(Array.isArray(t)||Ea(t)||t instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer)return t.slice(0);const e=Object.getPrototypeOf(t),s=e.constructor;if(t instanceof Date||t instanceof Map||t instanceof Set)return new s(t);if(t instanceof RegExp){const r=new s(t);return r.lastIndex=t.lastIndex,r}if(t instanceof DataView)return new s(t.buffer.slice(0));if(t instanceof Error){const r=new s(t.message);return r.stack=t.stack,r.name=t.name,r.cause=t.cause,r}if(typeof File<"u"&&t instanceof File)return new s([t],t.name,{type:t.type,lastModified:t.lastModified});if(typeof t=="object"){const r=Object.create(e);return Object.assign(r,t)}return t}function El(t){return typeof t=="object"&&t!==null}function Ch(t){return Object.getOwnPropertySymbols(t).filter(e=>Object.prototype.propertyIsEnumerable.call(t,e))}function Ih(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const zE="[object RegExp]",Nh="[object String]",Ah="[object Number]",_h="[object Boolean]",Sh="[object Arguments]",WE="[object Symbol]",HE="[object Date]",VE="[object Map]",KE="[object Set]",GE="[object Array]",JE="[object ArrayBuffer]",YE="[object Object]",XE="[object DataView]",ZE="[object Uint8Array]",QE="[object Uint8ClampedArray]",eC="[object Uint16Array]",tC="[object Uint32Array]",sC="[object Int8Array]",rC="[object Int16Array]",iC="[object Int32Array]",nC="[object Float32Array]",oC="[object Float64Array]";function aC(t,e){return kr(t,void 0,t,new Map,e)}function kr(t,e,s,r=new Map,i=void 0){const n=i?.(t,e,s,r);if(n!=null)return n;if(va(t))return t;if(r.has(t))return r.get(t);if(Array.isArray(t)){const o=new Array(t.length);r.set(t,o);for(let a=0;a{if(typeof t=="object")switch(Object.prototype.toString.call(t)){case Ah:case Nh:case _h:{const o=new t.constructor(t?.valueOf());return js(o,t),o}case Sh:{const o={};return js(o,t),o.length=t.length,o[Symbol.iterator]=t[Symbol.iterator],o}default:return}})}function Cl(t){return lC(t)}function Il(t){return t!==null&&typeof t=="object"&&Ih(t)==="[object Arguments]"}function uC(t){return Ea(t)}function hC(t){if(typeof t!="object"||t==null)return!1;if(Object.getPrototypeOf(t)===null)return!0;if(Object.prototype.toString.call(t)!=="[object Object]"){const s=t[Symbol.toStringTag];return s==null||!Object.getOwnPropertyDescriptor(t,Symbol.toStringTag)?.writable?!1:t.toString()===`[object ${s}]`}let e=t;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function dC(t,...e){const s=e.slice(0,-1),r=e[e.length-1];let i=t;for(let n=0;ne in t?fC(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,rn=(t,e)=>{for(var s in e||(e={}))wC.call(e,s)&&Al(t,s,e[s]);if(Nl)for(var s of Nl(e))yC.call(e,s)&&Al(t,s,e[s]);return t},bC=(t,e)=>gC(t,mC(e));function vt(t,e,s){var r;const i=Or(t);return((r=e.rpcMap)==null?void 0:r[i.reference])||`${Eh}?chainId=${i.namespace}:${i.reference}&projectId=${s}`}function rr(t){return t.includes(":")?t.split(":")[1]:t}function Ph(t){return t.map(e=>`${e.split(":")[0]}:${e.split(":")[1]}`)}function vC(t,e){const s=Object.keys(e.namespaces).filter(i=>i.includes(t));if(!s.length)return[];const r=[];return s.forEach(i=>{const n=e.namespaces[i].accounts;r.push(...n)}),r}function nn(t={},e={}){const s=_l(t),r=_l(e);return pC(s,r)}function _l(t){var e,s,r,i,n;const o={};if(!_s(t))return o;for(const[a,c]of Object.entries(t)){const l=Ln(a)?[a]:c.chains,u=c.methods||[],h=c.events||[],d=c.rpcMap||{},p=Pr(a);o[p]=bC(rn(rn({},o[p]),c),{chains:Jt(l,(e=o[p])==null?void 0:e.chains),methods:Jt(u,(s=o[p])==null?void 0:s.methods),events:Jt(h,(r=o[p])==null?void 0:r.events)}),(_s(d)||_s(((i=o[p])==null?void 0:i.rpcMap)||{}))&&(o[p].rpcMap=rn(rn({},d),(n=o[p])==null?void 0:n.rpcMap))}return o}function Sl(t){return t.includes(":")?t.split(":")[2]:t}function Pl(t){const e={};for(const[s,r]of Object.entries(t)){const i=r.methods||[],n=r.events||[],o=r.accounts||[],a=Ln(s)?[s]:r.chains?r.chains:Ph(r.accounts);e[s]={chains:a,methods:i,events:n,accounts:o}}return e}function mo(t){return typeof t=="number"?t:t.includes("0x")?parseInt(t,16):(t=t.includes(":")?t.split(":")[1]:t,isNaN(Number(t))?t:Number(t))}const kh={},ue=t=>kh[t],wo=(t,e)=>{kh[t]=e};var EC=Object.defineProperty,CC=(t,e,s)=>e in t?EC(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,hr=(t,e,s)=>CC(t,typeof e!="symbol"?e+"":e,s);class IC{constructor(e){hr(this,"name","polkadot"),hr(this,"client"),hr(this,"httpProviders"),hr(this,"events"),hr(this,"namespace"),hr(this,"chainId"),this.namespace=e.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,s){this.httpProviders[e]||this.setHttpProvider(e,s),this.chainId=e,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getAccounts(){const e=this.namespace.accounts;return e?e.filter(s=>s.split(":")[1]===this.chainId.toString()).map(s=>s.split(":")[2])||[]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(s=>{var r;const i=rr(s);e[i]=this.createHttpProvider(i,(r=this.namespace.rpcMap)==null?void 0:r[s])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,s=this.httpProviders[e];if(typeof s>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return s}setHttpProvider(e,s){const r=this.createHttpProvider(e,s);r&&(this.httpProviders[e]=r)}createHttpProvider(e,s){const r=s||vt(e,this.namespace,this.client.core.projectId);if(!r)throw new Error(`No RPC url provided for chainId: ${e}`);return new Ot(new Bt(r,ue("disableProviderPing")))}}var NC=Object.defineProperty,AC=Object.defineProperties,_C=Object.getOwnPropertyDescriptors,kl=Object.getOwnPropertySymbols,SC=Object.prototype.hasOwnProperty,PC=Object.prototype.propertyIsEnumerable,ta=(t,e,s)=>e in t?NC(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ol=(t,e)=>{for(var s in e||(e={}))SC.call(e,s)&&ta(t,s,e[s]);if(kl)for(var s of kl(e))PC.call(e,s)&&ta(t,s,e[s]);return t},Tl=(t,e)=>AC(t,_C(e)),dr=(t,e,s)=>ta(t,typeof e!="symbol"?e+"":e,s);class kC{constructor(e){dr(this,"name","eip155"),dr(this,"client"),dr(this,"chainId"),dr(this,"namespace"),dr(this,"httpProviders"),dr(this,"events"),this.namespace=e.namespace,this.events=ue("events"),this.client=ue("client"),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(e){switch(e.request.method){case"eth_requestAccounts":return this.getAccounts();case"eth_accounts":return this.getAccounts();case"wallet_switchEthereumChain":return await this.handleSwitchChain(e);case"eth_chainId":return parseInt(this.getDefaultChain());case"wallet_getCapabilities":return await this.getCapabilities(e);case"wallet_getCallsStatus":return await this.getCallStatus(e)}return this.namespace.methods.includes(e.request.method)?await this.client.request(e):this.getHttpProvider().request(e.request)}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}setDefaultChain(e,s){this.httpProviders[e]||this.setHttpProvider(parseInt(e),s),this.chainId=parseInt(e),this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}createHttpProvider(e,s){const r=s||vt(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!r)throw new Error(`No RPC url provided for chainId: ${e}`);return new Ot(new Bt(r,ue("disableProviderPing")))}setHttpProvider(e,s){const r=this.createHttpProvider(e,s);r&&(this.httpProviders[e]=r)}createHttpProviders(){const e={};return this.namespace.chains.forEach(s=>{var r;const i=parseInt(rr(s));e[i]=this.createHttpProvider(i,(r=this.namespace.rpcMap)==null?void 0:r[s])}),e}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(s=>s.split(":")[1]===this.chainId.toString()).map(s=>s.split(":")[2]))]:[]}getHttpProvider(){const e=this.chainId,s=this.httpProviders[e];if(typeof s>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return s}async handleSwitchChain(e){var s,r;let i=e.request.params?(s=e.request.params[0])==null?void 0:s.chainId:"0x0";i=i.startsWith("0x")?i:`0x${i}`;const n=parseInt(i,16);if(this.isChainApproved(n))this.setDefaultChain(`${n}`);else if(this.namespace.methods.includes("wallet_switchEthereumChain"))await this.client.request({topic:e.topic,request:{method:e.request.method,params:[{chainId:i}]},chainId:(r=this.namespace.chains)==null?void 0:r[0]}),this.setDefaultChain(`${n}`);else throw new Error(`Failed to switch to chain 'eip155:${n}'. The chain is not approved or the wallet does not support 'wallet_switchEthereumChain' method.`);return null}isChainApproved(e){return this.namespace.chains.includes(`${this.name}:${e}`)}async getCapabilities(e){var s,r,i,n,o;const a=(r=(s=e.request)==null?void 0:s.params)==null?void 0:r[0],c=((n=(i=e.request)==null?void 0:i.params)==null?void 0:n[1])||[],l=`${a}${c.join(",")}`;if(!a)throw new Error("Missing address parameter in `wallet_getCapabilities` request");const u=this.client.session.get(e.topic),h=((o=u?.sessionProperties)==null?void 0:o.capabilities)||{};if(h!=null&&h[l])return h?.[l];const d=await this.client.request(e);try{await this.client.session.update(e.topic,{sessionProperties:Tl(Ol({},u.sessionProperties||{}),{capabilities:Tl(Ol({},h||{}),{[l]:d})})})}catch(p){console.warn("Failed to update session with capabilities",p)}return d}async getCallStatus(e){var s,r;const i=this.client.session.get(e.topic),n=(s=i.sessionProperties)==null?void 0:s.bundler_name;if(n){const a=this.getBundlerUrl(e.chainId,n);try{return await this.getUserOperationReceipt(a,e)}catch(c){console.warn("Failed to fetch call status from bundler",c,a)}}const o=(r=i.sessionProperties)==null?void 0:r.bundler_url;if(o)try{return await this.getUserOperationReceipt(o,e)}catch(a){console.warn("Failed to fetch call status from custom bundler",a,o)}if(this.namespace.methods.includes(e.request.method))return await this.client.request(e);throw new Error("Fetching call status not approved by the wallet.")}async getUserOperationReceipt(e,s){var r;const i=new URL(e),n=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(qs("eth_getUserOperationReceipt",[(r=s.request.params)==null?void 0:r[0]]))});if(!n.ok)throw new Error(`Failed to fetch user operation receipt - ${n.status}`);return await n.json()}getBundlerUrl(e,s){return`${jE}?projectId=${this.client.core.projectId}&chainId=${e}&bundler=${s}`}}var OC=Object.defineProperty,TC=(t,e,s)=>e in t?OC(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,pr=(t,e,s)=>TC(t,typeof e!="symbol"?e+"":e,s);class xC{constructor(e){pr(this,"name","solana"),pr(this,"client"),pr(this,"httpProviders"),pr(this,"events"),pr(this,"namespace"),pr(this,"chainId"),this.namespace=e.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,s){this.httpProviders[e]||this.setHttpProvider(e,s),this.chainId=e,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(s=>s.split(":")[1]===this.chainId.toString()).map(s=>s.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(s=>{var r;const i=rr(s);e[i]=this.createHttpProvider(i,(r=this.namespace.rpcMap)==null?void 0:r[s])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,s=this.httpProviders[e];if(typeof s>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return s}setHttpProvider(e,s){const r=this.createHttpProvider(e,s);r&&(this.httpProviders[e]=r)}createHttpProvider(e,s){const r=s||vt(e,this.namespace,this.client.core.projectId);if(!r)throw new Error(`No RPC url provided for chainId: ${e}`);return new Ot(new Bt(r,ue("disableProviderPing")))}}var $C=Object.defineProperty,RC=(t,e,s)=>e in t?$C(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,fr=(t,e,s)=>RC(t,typeof e!="symbol"?e+"":e,s);class UC{constructor(e){fr(this,"name","cosmos"),fr(this,"client"),fr(this,"httpProviders"),fr(this,"events"),fr(this,"namespace"),fr(this,"chainId"),this.namespace=e.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,s){this.httpProviders[e]||this.setHttpProvider(e,s),this.chainId=e,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(s=>s.split(":")[1]===this.chainId.toString()).map(s=>s.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(s=>{var r;const i=rr(s);e[i]=this.createHttpProvider(i,(r=this.namespace.rpcMap)==null?void 0:r[s])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,s=this.httpProviders[e];if(typeof s>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return s}setHttpProvider(e,s){const r=this.createHttpProvider(e,s);r&&(this.httpProviders[e]=r)}createHttpProvider(e,s){const r=s||vt(e,this.namespace,this.client.core.projectId);if(!r)throw new Error(`No RPC url provided for chainId: ${e}`);return new Ot(new Bt(r,ue("disableProviderPing")))}}var DC=Object.defineProperty,LC=(t,e,s)=>e in t?DC(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,gr=(t,e,s)=>LC(t,typeof e!="symbol"?e+"":e,s);class MC{constructor(e){gr(this,"name","algorand"),gr(this,"client"),gr(this,"httpProviders"),gr(this,"events"),gr(this,"namespace"),gr(this,"chainId"),this.namespace=e.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,s){if(!this.httpProviders[e]){const r=s||vt(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!r)throw new Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,r)}this.chainId=e,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(s=>s.split(":")[1]===this.chainId.toString()).map(s=>s.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(s=>{var r;e[s]=this.createHttpProvider(s,(r=this.namespace.rpcMap)==null?void 0:r[s])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,s=this.httpProviders[e];if(typeof s>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return s}setHttpProvider(e,s){const r=this.createHttpProvider(e,s);r&&(this.httpProviders[e]=r)}createHttpProvider(e,s){const r=s||vt(e,this.namespace,this.client.core.projectId);return typeof r>"u"?void 0:new Ot(new Bt(r,ue("disableProviderPing")))}}var BC=Object.defineProperty,jC=(t,e,s)=>e in t?BC(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,mr=(t,e,s)=>jC(t,typeof e!="symbol"?e+"":e,s);class qC{constructor(e){mr(this,"name","cip34"),mr(this,"client"),mr(this,"httpProviders"),mr(this,"events"),mr(this,"namespace"),mr(this,"chainId"),this.namespace=e.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,s){this.httpProviders[e]||this.setHttpProvider(e,s),this.chainId=e,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(s=>s.split(":")[1]===this.chainId.toString()).map(s=>s.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(s=>{const r=this.getCardanoRPCUrl(s),i=rr(s);e[i]=this.createHttpProvider(i,r)}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,s=this.httpProviders[e];if(typeof s>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return s}getCardanoRPCUrl(e){const s=this.namespace.rpcMap;if(s)return s[e]}setHttpProvider(e,s){const r=this.createHttpProvider(e,s);r&&(this.httpProviders[e]=r)}createHttpProvider(e,s){const r=s||this.getCardanoRPCUrl(e);if(!r)throw new Error(`No RPC url provided for chainId: ${e}`);return new Ot(new Bt(r,ue("disableProviderPing")))}}var FC=Object.defineProperty,zC=(t,e,s)=>e in t?FC(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,wr=(t,e,s)=>zC(t,typeof e!="symbol"?e+"":e,s);class WC{constructor(e){wr(this,"name","elrond"),wr(this,"client"),wr(this,"httpProviders"),wr(this,"events"),wr(this,"namespace"),wr(this,"chainId"),this.namespace=e.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,s){this.httpProviders[e]||this.setHttpProvider(e,s),this.chainId=e,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(s=>s.split(":")[1]===this.chainId.toString()).map(s=>s.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(s=>{var r;const i=rr(s);e[i]=this.createHttpProvider(i,(r=this.namespace.rpcMap)==null?void 0:r[s])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,s=this.httpProviders[e];if(typeof s>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return s}setHttpProvider(e,s){const r=this.createHttpProvider(e,s);r&&(this.httpProviders[e]=r)}createHttpProvider(e,s){const r=s||vt(e,this.namespace,this.client.core.projectId);if(!r)throw new Error(`No RPC url provided for chainId: ${e}`);return new Ot(new Bt(r,ue("disableProviderPing")))}}var HC=Object.defineProperty,VC=(t,e,s)=>e in t?HC(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,yr=(t,e,s)=>VC(t,typeof e!="symbol"?e+"":e,s);class KC{constructor(e){yr(this,"name","multiversx"),yr(this,"client"),yr(this,"httpProviders"),yr(this,"events"),yr(this,"namespace"),yr(this,"chainId"),this.namespace=e.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,s){this.httpProviders[e]||this.setHttpProvider(e,s),this.chainId=e,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(s=>s.split(":")[1]===this.chainId.toString()).map(s=>s.split(":")[2]))]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(s=>{var r;const i=rr(s);e[i]=this.createHttpProvider(i,(r=this.namespace.rpcMap)==null?void 0:r[s])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,s=this.httpProviders[e];if(typeof s>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return s}setHttpProvider(e,s){const r=this.createHttpProvider(e,s);r&&(this.httpProviders[e]=r)}createHttpProvider(e,s){const r=s||vt(e,this.namespace,this.client.core.projectId);if(!r)throw new Error(`No RPC url provided for chainId: ${e}`);return new Ot(new Bt(r,ue("disableProviderPing")))}}var GC=Object.defineProperty,JC=(t,e,s)=>e in t?GC(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,br=(t,e,s)=>JC(t,typeof e!="symbol"?e+"":e,s);class YC{constructor(e){br(this,"name","near"),br(this,"client"),br(this,"httpProviders"),br(this,"events"),br(this,"namespace"),br(this,"chainId"),this.namespace=e.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,s){if(this.chainId=e,!this.httpProviders[e]){const r=s||vt(`${this.name}:${e}`,this.namespace);if(!r)throw new Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,r)}this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const e=this.namespace.accounts;return e?e.filter(s=>s.split(":")[1]===this.chainId.toString()).map(s=>s.split(":")[2])||[]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(s=>{var r;e[s]=this.createHttpProvider(s,(r=this.namespace.rpcMap)==null?void 0:r[s])}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,s=this.httpProviders[e];if(typeof s>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return s}setHttpProvider(e,s){const r=this.createHttpProvider(e,s);r&&(this.httpProviders[e]=r)}createHttpProvider(e,s){const r=s||vt(e,this.namespace);return typeof r>"u"?void 0:new Ot(new Bt(r,ue("disableProviderPing")))}}var XC=Object.defineProperty,ZC=(t,e,s)=>e in t?XC(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,vr=(t,e,s)=>ZC(t,typeof e!="symbol"?e+"":e,s);class QC{constructor(e){vr(this,"name","tezos"),vr(this,"client"),vr(this,"httpProviders"),vr(this,"events"),vr(this,"namespace"),vr(this,"chainId"),this.namespace=e.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,s){if(this.chainId=e,!this.httpProviders[e]){const r=s||vt(`${this.name}:${e}`,this.namespace);if(!r)throw new Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,r)}this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const e=this.namespace.accounts;return e?e.filter(s=>s.split(":")[1]===this.chainId.toString()).map(s=>s.split(":")[2])||[]:[]}createHttpProviders(){const e={};return this.namespace.chains.forEach(s=>{e[s]=this.createHttpProvider(s)}),e}getHttpProvider(){const e=`${this.name}:${this.chainId}`,s=this.httpProviders[e];if(typeof s>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return s}setHttpProvider(e,s){const r=this.createHttpProvider(e,s);r&&(this.httpProviders[e]=r)}createHttpProvider(e,s){const r=s||vt(e,this.namespace);return typeof r>"u"?void 0:new Ot(new Bt(r))}}var eI=Object.defineProperty,tI=(t,e,s)=>e in t?eI(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Er=(t,e,s)=>tI(t,typeof e!="symbol"?e+"":e,s);class sI{constructor(e){Er(this,"name",Ir),Er(this,"client"),Er(this,"httpProviders"),Er(this,"events"),Er(this,"namespace"),Er(this,"chainId"),this.namespace=e.namespace,this.events=ue("events"),this.client=ue("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace.chains=[...new Set((this.namespace.chains||[]).concat(e.chains||[]))],this.namespace.accounts=[...new Set((this.namespace.accounts||[]).concat(e.accounts||[]))],this.namespace.methods=[...new Set((this.namespace.methods||[]).concat(e.methods||[]))],this.namespace.events=[...new Set((this.namespace.events||[]).concat(e.events||[]))],this.httpProviders=this.createHttpProviders()}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider(e.chainId).request(e.request)}setDefaultChain(e,s){this.httpProviders[e]||this.setHttpProvider(e,s),this.chainId=e,this.events.emit(Tt.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const e=this.namespace.chains[0];if(!e)throw new Error("ChainId not found");return e.split(":")[1]}getAccounts(){const e=this.namespace.accounts;return e?[...new Set(e.filter(s=>s.split(":")[1]===this.chainId.toString()).map(s=>s.split(":")[2]))]:[]}createHttpProviders(){var e,s;const r={};return(s=(e=this.namespace)==null?void 0:e.accounts)==null||s.forEach(i=>{const n=Or(i);r[`${n.namespace}:${n.reference}`]=this.createHttpProvider(i)}),r}getHttpProvider(e){const s=this.httpProviders[e];if(typeof s>"u")throw new Error(`JSON-RPC provider for ${e} not found`);return s}setHttpProvider(e,s){const r=this.createHttpProvider(e,s);r&&(this.httpProviders[e]=r)}createHttpProvider(e,s){const r=s||vt(e,this.namespace,this.client.core.projectId);if(!r)throw new Error(`No RPC url provided for chainId: ${e}`);return new Ot(new Bt(r,ue("disableProviderPing")))}}var rI=Object.defineProperty,iI=Object.defineProperties,nI=Object.getOwnPropertyDescriptors,xl=Object.getOwnPropertySymbols,oI=Object.prototype.hasOwnProperty,aI=Object.prototype.propertyIsEnumerable,sa=(t,e,s)=>e in t?rI(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,on=(t,e)=>{for(var s in e||(e={}))oI.call(e,s)&&sa(t,s,e[s]);if(xl)for(var s of xl(e))aI.call(e,s)&&sa(t,s,e[s]);return t},yo=(t,e)=>iI(t,nI(e)),_t=(t,e,s)=>sa(t,typeof e!="symbol"?e+"":e,s);let cI=class Oh{constructor(e){_t(this,"client"),_t(this,"namespaces"),_t(this,"optionalNamespaces"),_t(this,"sessionProperties"),_t(this,"scopedProperties"),_t(this,"events",new la),_t(this,"rpcProviders",{}),_t(this,"session"),_t(this,"providerOpts"),_t(this,"logger"),_t(this,"uri"),_t(this,"disableProviderPing",!1),this.providerOpts=e,this.logger=typeof e?.logger<"u"&&typeof e?.logger!="string"?e.logger:oa($i({level:e?.logger||vl})),this.disableProviderPing=e?.disableProviderPing||!1}static async init(e){const s=new Oh(e);return await s.initialize(),s}async request(e,s,r){const[i,n]=this.validateChain(s);if(!this.session)throw new Error("Please call connect() before request()");return await this.getProvider(i).request({request:on({},e),chainId:`${i}:${n}`,topic:this.session.topic,expiry:r})}sendAsync(e,s,r,i){const n=new Date().getTime();this.request(e,r,i).then(o=>s(null,kn(n,o))).catch(o=>s(o,void 0))}async enable(){if(!this.client)throw new Error("Sign Client not initialized");return this.session||await this.connect({namespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties}),await this.requestAccounts()}async disconnect(){var e;if(!this.session)throw new Error("Please call connect() before enable()");await this.client.disconnect({topic:(e=this.session)==null?void 0:e.topic,reason:we("USER_DISCONNECTED")}),await this.cleanup()}async connect(e){if(!this.client)throw new Error("Sign Client not initialized");if(this.setNamespaces(e),await this.cleanupPendingPairings(),!e.skipPairing)return await this.pair(e.pairingTopic)}async authenticate(e,s){if(!this.client)throw new Error("Sign Client not initialized");this.setNamespaces(e),await this.cleanupPendingPairings();const{uri:r,response:i}=await this.client.authenticate(e,s);r&&(this.uri=r,this.events.emit("display_uri",r));const n=await i();if(this.session=n.session,this.session){const o=Pl(this.session.namespaces);this.namespaces=nn(this.namespaces,o),await this.persist("namespaces",this.namespaces),this.onConnect()}return n}on(e,s){this.events.on(e,s)}once(e,s){this.events.once(e,s)}removeListener(e,s){this.events.removeListener(e,s)}off(e,s){this.events.off(e,s)}get isWalletConnect(){return!0}async pair(e){const{uri:s,approval:r}=await this.client.connect({pairingTopic:e,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties});s&&(this.uri=s,this.events.emit("display_uri",s));const i=await r();this.session=i;const n=Pl(i.namespaces);return this.namespaces=nn(this.namespaces,n),await this.persist("namespaces",this.namespaces),await this.persist("optionalNamespaces",this.optionalNamespaces),this.onConnect(),this.session}setDefaultChain(e,s){try{if(!this.session)return;const[r,i]=this.validateChain(e),n=this.getProvider(r);n.name===Ir?n.setDefaultChain(`${r}:${i}`,s):n.setDefaultChain(i,s)}catch(r){if(!/Please call connect/.test(r.message))throw r}}async cleanupPendingPairings(e={}){this.logger.info("Cleaning up inactive pairings...");const s=this.client.pairing.getAll();if(As(s)){for(const r of s)e.deletePairings?this.client.core.expirer.set(r.topic,0):await this.client.core.relayer.subscriber.unsubscribe(r.topic);this.logger.info(`Inactive pairings cleared: ${s.length}`)}}abortPairingAttempt(){this.logger.warn("abortPairingAttempt is deprecated. This is now a no-op.")}async checkStorage(){this.namespaces=await this.getFromStore("namespaces")||{},this.optionalNamespaces=await this.getFromStore("optionalNamespaces")||{},this.session&&this.createProviders()}async initialize(){this.logger.trace("Initialized"),await this.createClient(),await this.checkStorage(),this.registerEventListeners()}async createClient(){var e,s;if(this.client=this.providerOpts.client||await DE.init({core:this.providerOpts.core,logger:this.providerOpts.logger||vl,relayUrl:this.providerOpts.relayUrl||LE,projectId:this.providerOpts.projectId,metadata:this.providerOpts.metadata,storageOptions:this.providerOpts.storageOptions,storage:this.providerOpts.storage,name:this.providerOpts.name,customStoragePrefix:this.providerOpts.customStoragePrefix,telemetryEnabled:this.providerOpts.telemetryEnabled}),this.providerOpts.session)try{this.session=this.client.session.get(this.providerOpts.session.topic)}catch(r){throw this.logger.error("Failed to get session",r),new Error(`The provided session: ${(s=(e=this.providerOpts)==null?void 0:e.session)==null?void 0:s.topic} doesn't exist in the Sign client`)}else{const r=this.client.session.getAll();this.session=r[0]}this.logger.trace("SignClient Initialized")}createProviders(){if(!this.client)throw new Error("Sign Client not initialized");if(!this.session)throw new Error("Session not initialized. Please call connect() before enable()");const e=[...new Set(Object.keys(this.session.namespaces).map(s=>Pr(s)))];wo("client",this.client),wo("events",this.events),wo("disableProviderPing",this.disableProviderPing),e.forEach(s=>{if(!this.session)return;const r=vC(s,this.session),i=Ph(r),n=nn(this.namespaces,this.optionalNamespaces),o=yo(on({},n[s]),{accounts:r,chains:i});switch(s){case"eip155":this.rpcProviders[s]=new kC({namespace:o});break;case"algorand":this.rpcProviders[s]=new MC({namespace:o});break;case"solana":this.rpcProviders[s]=new xC({namespace:o});break;case"cosmos":this.rpcProviders[s]=new UC({namespace:o});break;case"polkadot":this.rpcProviders[s]=new IC({namespace:o});break;case"cip34":this.rpcProviders[s]=new qC({namespace:o});break;case"elrond":this.rpcProviders[s]=new WC({namespace:o});break;case"multiversx":this.rpcProviders[s]=new KC({namespace:o});break;case"near":this.rpcProviders[s]=new YC({namespace:o});break;case"tezos":this.rpcProviders[s]=new QC({namespace:o});break;default:this.rpcProviders[Ir]?this.rpcProviders[Ir].updateNamespace(o):this.rpcProviders[Ir]=new sI({namespace:o})}})}registerEventListeners(){if(typeof this.client>"u")throw new Error("Sign Client is not initialized");this.client.on("session_ping",e=>{var s;const{topic:r}=e;r===((s=this.session)==null?void 0:s.topic)&&this.events.emit("session_ping",e)}),this.client.on("session_event",e=>{var s;const{params:r,topic:i}=e;if(i!==((s=this.session)==null?void 0:s.topic))return;const{event:n}=r;if(n.name==="accountsChanged"){const o=n.data;o&&As(o)&&this.events.emit("accountsChanged",o.map(Sl))}else if(n.name==="chainChanged"){const o=r.chainId,a=r.event.data,c=Pr(o),l=mo(o)!==mo(a)?`${c}:${mo(a)}`:o;this.onChainChanged(l)}else this.events.emit(n.name,n.data);this.events.emit("session_event",e)}),this.client.on("session_update",({topic:e,params:s})=>{var r,i;if(e!==((r=this.session)==null?void 0:r.topic))return;const{namespaces:n}=s,o=(i=this.client)==null?void 0:i.session.get(e);this.session=yo(on({},o),{namespaces:n}),this.onSessionUpdate(),this.events.emit("session_update",{topic:e,params:s})}),this.client.on("session_delete",async e=>{var s;e.topic===((s=this.session)==null?void 0:s.topic)&&(await this.cleanup(),this.events.emit("session_delete",e),this.events.emit("disconnect",yo(on({},we("USER_DISCONNECTED")),{data:e.topic})))}),this.on(Tt.DEFAULT_CHAIN_CHANGED,e=>{this.onChainChanged(e,!0)})}getProvider(e){return this.rpcProviders[e]||this.rpcProviders[Ir]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(e=>{var s;this.getProvider(e).updateNamespace((s=this.session)==null?void 0:s.namespaces[e])})}setNamespaces(e){const{namespaces:s={},optionalNamespaces:r={},sessionProperties:i,scopedProperties:n}=e;this.optionalNamespaces=nn(s,r),this.sessionProperties=i,this.scopedProperties=n}validateChain(e){const[s,r]=e?.split(":")||["",""];if(!this.namespaces||!Object.keys(this.namespaces).length)return[s,r];if(s&&!Object.keys(this.namespaces||{}).map(o=>Pr(o)).includes(s))throw new Error(`Namespace '${s}' is not configured. Please call connect() first with namespace config.`);if(s&&r)return[s,r];const i=Pr(Object.keys(this.namespaces)[0]),n=this.rpcProviders[i].getDefaultChain();return[i,n]}async requestAccounts(){const[e]=this.validateChain();return await this.getProvider(e).requestAccounts()}async onChainChanged(e,s=!1){if(!this.namespaces)return;const[r,i]=this.validateChain(e);if(!i)return;this.updateNamespaceChain(r,i),this.events.emit("chainChanged",i);const n=this.getProvider(r).getDefaultChain();s||this.getProvider(r).setDefaultChain(i),this.emitAccountsChangedOnChainChange({namespace:r,previousChainId:n,newChainId:e}),await this.persist("namespaces",this.namespaces)}emitAccountsChangedOnChainChange({namespace:e,previousChainId:s,newChainId:r}){var i,n;try{if(s===r)return;const o=(n=(i=this.session)==null?void 0:i.namespaces[e])==null?void 0:n.accounts;if(!o)return;const a=o.filter(c=>c.includes(`${r}:`)).map(Sl);if(!As(a))return;this.events.emit("accountsChanged",a)}catch(o){this.logger.warn("Failed to emit accountsChanged on chain change",o)}}updateNamespaceChain(e,s){if(!this.namespaces)return;const r=this.namespaces[e]?e:`${e}:${s}`,i={chains:[],methods:[],events:[],defaultChain:s};this.namespaces[r]?this.namespaces[r]&&(this.namespaces[r].defaultChain=s):this.namespaces[r]=i}onConnect(){this.createProviders(),this.events.emit("connect",{session:this.session})}async cleanup(){this.namespaces=void 0,this.optionalNamespaces=void 0,this.sessionProperties=void 0,await this.deleteFromStore("namespaces"),await this.deleteFromStore("optionalNamespaces"),await this.deleteFromStore("sessionProperties"),this.session=void 0,await this.cleanupPendingPairings({deletePairings:!0}),await this.cleanupStorage()}async persist(e,s){var r;const i=((r=this.session)==null?void 0:r.topic)||"";await this.client.core.storage.setItem(`${sn}/${e}${i}`,s)}async getFromStore(e){var s;const r=((s=this.session)==null?void 0:s.topic)||"";return await this.client.core.storage.getItem(`${sn}/${e}${r}`)}async deleteFromStore(e){var s;const r=((s=this.session)==null?void 0:s.topic)||"";await this.client.core.storage.removeItem(`${sn}/${e}${r}`)}async cleanupStorage(){var e;try{if(((e=this.client)==null?void 0:e.session.length)>0)return;const s=await this.client.core.storage.getKeys();for(const r of s)r.startsWith(sn)&&await this.client.core.storage.removeItem(r)}catch(s){this.logger.warn("Failed to cleanup storage",s)}}};function an(t,e){return j.getConnectorId(t)===e}function lI(t){const e=Array.from(g.state.chains.keys());let s=[];return t?(s.push([t,g.state.chains.get(t)]),an(t,W.CONNECTOR_ID.WALLET_CONNECT)?e.forEach(r=>{r!==t&&an(r,W.CONNECTOR_ID.WALLET_CONNECT)&&s.push([r,g.state.chains.get(r)])}):an(t,W.CONNECTOR_ID.AUTH)&&e.forEach(r=>{r!==t&&an(r,W.CONNECTOR_ID.AUTH)&&s.push([r,g.state.chains.get(r)])})):s=Array.from(g.state.chains.entries()),s}const ms={EIP155:"eip155",CONNECTOR_TYPE_WALLET_CONNECT:"WALLET_CONNECT",CONNECTOR_TYPE_INJECTED:"INJECTED",CONNECTOR_TYPE_ANNOUNCED:"ANNOUNCED"},_n={NetworkImageIds:{1:"ba0ba0cd-17c6-4806-ad93-f9d174f17900",42161:"3bff954d-5cb0-47a0-9a23-d20192e74600",43114:"30c46e53-e989-45fb-4549-be3bd4eb3b00",56:"93564157-2e8e-4ce7-81df-b264dbee9b00",250:"06b26297-fe0c-4733-5d6b-ffa5498aac00",10:"ab9c186a-c52f-464b-2906-ca59d760a400",137:"41d04d42-da3b-4453-8506-668cc0727900",5e3:"e86fae9b-b770-4eea-e520-150e12c81100",295:"6a97d510-cac8-4e58-c7ce-e8681b044c00",11155111:"e909ea0a-f92a-4512-c8fc-748044ea6800",84532:"a18a7ecd-e307-4360-4746-283182228e00",1301:"4eeea7ef-0014-4649-5d1d-07271a80f600",130:"2257980a-3463-48c6-cbac-a42d2a956e00",10143:"0a728e83-bacb-46db-7844-948f05434900",100:"02b53f6a-e3d4-479e-1cb4-21178987d100",9001:"f926ff41-260d-4028-635e-91913fc28e00",324:"b310f07f-4ef7-49f3-7073-2a0a39685800",314:"5a73b3dd-af74-424e-cae0-0de859ee9400",4689:"34e68754-e536-40da-c153-6ef2e7188a00",1088:"3897a66d-40b9-4833-162f-a2c90531c900",1284:"161038da-44ae-4ec7-1208-0ea569454b00",1285:"f1d73bb6-5450-4e18-38f7-fb6484264a00",7777777:"845c60df-d429-4991-e687-91ae45791600",42220:"ab781bbc-ccc6-418d-d32d-789b15da1f00",8453:"7289c336-3981-4081-c5f4-efc26ac64a00",1313161554:"3ff73439-a619-4894-9262-4470c773a100",2020:"b8101fc0-9c19-4b6f-ec65-f6dfff106e00",2021:"b8101fc0-9c19-4b6f-ec65-f6dfff106e00",80094:"e329c2c9-59b0-4a02-83e4-212ff3779900",2741:"fc2427d1-5af9-4a9c-8da5-6f94627cd900","5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":"a1b58899-f671-4276-6a5e-56ca5bd59700","4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z":"a1b58899-f671-4276-6a5e-56ca5bd59700",EtWTRABZaYq6iMfeYKouRu166VU2xqa1:"a1b58899-f671-4276-6a5e-56ca5bd59700","000000000019d6689c085ae165831e93":"0b4838db-0161-4ffe-022d-532bf03dba00","000000000933ea01ad0ee984209779ba":"39354064-d79b-420b-065d-f980c4b78200"},ConnectorImageIds:{[W.CONNECTOR_ID.COINBASE]:"0c2840c3-5b04-4c44-9661-fbd4b49e1800",[W.CONNECTOR_ID.COINBASE_SDK]:"0c2840c3-5b04-4c44-9661-fbd4b49e1800",[W.CONNECTOR_ID.SAFE]:"461db637-8616-43ce-035a-d89b8a1d5800",[W.CONNECTOR_ID.LEDGER]:"54a1aa77-d202-4f8d-0fb2-5d2bb6db0300",[W.CONNECTOR_ID.WALLET_CONNECT]:"ef1a1fcf-7fe8-4d69-bd6d-fda1345b4400",[W.CONNECTOR_ID.INJECTED]:"07ba87ed-43aa-4adf-4540-9e6a2b9cae00"},ConnectorNamesMap:{[W.CONNECTOR_ID.INJECTED]:"Browser Wallet",[W.CONNECTOR_ID.WALLET_CONNECT]:"WalletConnect",[W.CONNECTOR_ID.COINBASE]:"Coinbase",[W.CONNECTOR_ID.COINBASE_SDK]:"Coinbase",[W.CONNECTOR_ID.LEDGER]:"Ledger",[W.CONNECTOR_ID.SAFE]:"Safe"}},Ca={getCaipTokens(t){if(!t)return;const e={};return Object.entries(t).forEach(([s,r])=>{e[`${ms.EIP155}:${s}`]=r}),e},isLowerCaseMatch(t,e){return t?.toLowerCase()===e?.toLowerCase()}};new AbortController;const Cr={UniversalProviderErrors:{UNAUTHORIZED_DOMAIN_NOT_ALLOWED:{message:"Unauthorized: origin not allowed",alertErrorKey:"INVALID_APP_CONFIGURATION"},JWT_VALIDATION_ERROR:{message:"JWT validation error: JWT Token is not yet valid",alertErrorKey:"JWT_TOKEN_NOT_VALID"},INVALID_KEY:{message:"Unauthorized: invalid key",alertErrorKey:"INVALID_PROJECT_ID"}},ALERT_ERRORS:{SWITCH_NETWORK_NOT_FOUND:{shortMessage:"Network Not Found",longMessage:"Network not found - please make sure it is included in 'networks' array in createAppKit function"},INVALID_APP_CONFIGURATION:{shortMessage:"Invalid App Configuration",longMessage:()=>`Origin ${uI()?window.origin:"unknown"} not found on Allowlist - update configuration on cloud.reown.com`},IFRAME_LOAD_FAILED:{shortMessage:"Network Error - Could not load embedded wallet",longMessage:()=>"There was an issue loading the embedded wallet. Please try again later."},IFRAME_REQUEST_TIMEOUT:{shortMessage:"Embedded Wallet Request Timed Out",longMessage:()=>"There was an issue doing the request to the embedded wallet. Please try again later."},UNVERIFIED_DOMAIN:{shortMessage:"Invalid App Configuration",longMessage:()=>"There was an issue loading the embedded wallet. Please verify that your domain is allowed at cloud.reown.com"},JWT_TOKEN_NOT_VALID:{shortMessage:"Session Expired",longMessage:"Invalid session found on UniversalProvider - please check your time settings and connect again"},INVALID_PROJECT_ID:{shortMessage:"Invalid App Configuration",longMessage:"Invalid Project ID - update configuration"},PROJECT_ID_NOT_CONFIGURED:{shortMessage:"Project ID Not Configured",longMessage:"Project ID Not Configured - update configuration on cloud.reown.com"}}};function uI(){return typeof window<"u"}const hI={createLogger(t,e="error"){const s=$i({level:e}),{logger:r}=Kl({opts:s});return r.error=(...i)=>{for(const n of i)if(n instanceof Error){t(n,...i);return}t(void 0,...i)},r}},dI="rpc.walletconnect.org";function $l(t,e){const s=new URL("https://rpc.walletconnect.org/v1/");return s.searchParams.set("chainId",t),s.searchParams.set("projectId",e),s.toString()}const bo=["near:mainnet","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","eip155:1101","eip155:56","eip155:42161","eip155:7777777","eip155:59144","eip155:324","solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1","eip155:5000","solana:4sgjmw1sunhzsxgspuhpqldx6wiyjntz","eip155:80084","eip155:5003","eip155:100","eip155:8453","eip155:42220","eip155:1313161555","eip155:17000","eip155:1","eip155:300","eip155:1313161554","eip155:1329","eip155:84532","eip155:421614","eip155:11155111","eip155:8217","eip155:43114","solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z","eip155:999999999","eip155:11155420","eip155:80002","eip155:97","eip155:43113","eip155:137","eip155:10","eip155:1301","bip122:000000000019d6689c085ae165831e93","bip122:000000000933ea01ad0ee984209779ba"],Nr={extendRpcUrlWithProjectId(t,e){let s=!1;try{s=new URL(t).host===dI}catch{s=!1}if(s){const r=new URL(t);return r.searchParams.has("projectId")||r.searchParams.set("projectId",e),r.toString()}return t},isCaipNetwork(t){return"chainNamespace"in t&&"caipNetworkId"in t},getChainNamespace(t){return this.isCaipNetwork(t)?t.chainNamespace:W.CHAIN.EVM},getCaipNetworkId(t){return this.isCaipNetwork(t)?t.caipNetworkId:`${W.CHAIN.EVM}:${t.id}`},getDefaultRpcUrl(t,e,s){const r=t.rpcUrls?.default?.http?.[0];return bo.includes(e)?$l(e,s):r||""},extendCaipNetwork(t,{customNetworkImageUrls:e,projectId:s,customRpcUrls:r}){const i=this.getChainNamespace(t),n=this.getCaipNetworkId(t),o=t.rpcUrls.default.http?.[0],a=this.getDefaultRpcUrl(t,n,s),c=t?.rpcUrls?.chainDefault?.http?.[0]||o,l=r?.[n]?.map(d=>d.url)||[],u=[...l,a],h=[...l];return c&&!h.includes(c)&&h.push(c),{...t,chainNamespace:i,caipNetworkId:n,assets:{imageId:_n.NetworkImageIds[t.id],imageUrl:e?.[t.id]},rpcUrls:{...t.rpcUrls,default:{http:u},chainDefault:{http:h}}}},extendCaipNetworks(t,{customNetworkImageUrls:e,projectId:s,customRpcUrls:r}){return t.map(i=>Nr.extendCaipNetwork(i,{customNetworkImageUrls:e,customRpcUrls:r,projectId:s}))},getViemTransport(t,e,s){const r=[];return s?.forEach(i=>{r.push(Vi(i.url,i.config))}),bo.includes(t.caipNetworkId)&&r.push(Vi($l(t.caipNetworkId,e),{fetchOptions:{headers:{"Content-Type":"text/plain"}}})),t?.rpcUrls?.default?.http?.forEach(i=>{r.push(Vi(i))}),Ta(r)},extendWagmiTransports(t,e,s){if(bo.includes(t.caipNetworkId)){const r=this.getDefaultRpcUrl(t,t.caipNetworkId,e);return Ta([s,Vi(r)])}return s},getUnsupportedNetwork(t){return{id:t.split(":")[1],caipNetworkId:t,name:W.UNSUPPORTED_NETWORK_NAME,chainNamespace:t.split(":")[0],nativeCurrency:{name:"",decimals:0,symbol:""},rpcUrls:{default:{http:[]}}}},getCaipNetworkFromStorage(t){const e=F.getActiveCaipNetworkId(),s=g.getAllRequestedCaipNetworks(),r=Array.from(g.state.chains?.keys()||[]),i=e?.split(":")[0],n=i?r.includes(i):!1,o=s?.find(c=>c.caipNetworkId===e);return n&&!o&&e?this.getUnsupportedNetwork(e):o||t||s?.[0]}},Sn={eip155:void 0,solana:void 0,polkadot:void 0,bip122:void 0,cosmos:void 0},ct=_e({providers:{...Sn},providerIds:{...Sn}}),Se={state:ct,subscribeKey(t,e){return et(ct,t,e)},subscribe(t){return Qe(ct,()=>{t(ct)})},subscribeProviders(t){return Qe(ct.providers,()=>t(ct.providers))},setProvider(t,e){e&&(ct.providers[t]=Vs(e))},getProvider(t){return ct.providers[t]},setProviderId(t,e){e&&(ct.providerIds[t]=e)},getProviderId(t){if(t)return ct.providerIds[t]},reset(){ct.providers={...Sn},ct.providerIds={...Sn}},resetChain(t){ct.providers[t]=void 0,ct.providerIds[t]=void 0}},pI={VIEW_DIRECTION:{Next:"next",Prev:"prev"},DEFAULT_CONNECT_METHOD_ORDER:["email","social","wallet"],ANIMATION_DURATIONS:{HeaderText:120,ModalHeight:150,ViewTransition:150}},ra={filterOutDuplicatesByRDNS(t){const e=O.state.enableEIP6963?j.state.connectors:[],s=F.getRecentWallets(),r=e.map(a=>a.info?.rdns).filter(Boolean),i=s.map(a=>a.rdns).filter(Boolean),n=r.concat(i);if(n.includes("io.metamask.mobile")&&X.isMobile()){const a=n.indexOf("io.metamask.mobile");n[a]="io.metamask"}return t.filter(a=>!n.includes(String(a?.rdns)))},filterOutDuplicatesByIds(t){const e=j.state.connectors.filter(a=>a.type==="ANNOUNCED"||a.type==="INJECTED"),s=F.getRecentWallets(),r=e.map(a=>a.explorerId),i=s.map(a=>a.id),n=r.concat(i);return t.filter(a=>!n.includes(a?.id))},filterOutDuplicateWallets(t){const e=this.filterOutDuplicatesByRDNS(t);return this.filterOutDuplicatesByIds(e)},markWalletsAsInstalled(t){const{connectors:e}=j.state,{featuredWalletIds:s}=O.state,r=e.filter(o=>o.type==="ANNOUNCED").reduce((o,a)=>(a.info?.rdns&&(o[a.info.rdns]=!0),o),{});return t.map(o=>({...o,installed:!!o.rdns&&!!r[o.rdns??""]})).sort((o,a)=>{const c=Number(a.installed)-Number(o.installed);if(c!==0)return c;if(s?.length){const l=s.indexOf(o.id),u=s.indexOf(a.id);if(l!==-1&&u!==-1)return l-u;if(l!==-1)return-1;if(u!==-1)return 1}return 0})},getConnectOrderMethod(t,e){const s=t?.connectMethodsOrder||O.state.features?.connectMethodsOrder,r=e||j.state.connectors;if(s)return s;const{injected:i,announced:n}=gn.getConnectorsByType(r,V.state.recommended,V.state.featured),o=i.filter(gn.showConnector),a=n.filter(gn.showConnector);return o.length||a.length?["wallet","email","social"]:pI.DEFAULT_CONNECT_METHOD_ORDER},isExcluded(t){const e=!!t.rdns&&V.state.excludedWallets.some(r=>r.rdns===t.rdns),s=!!t.name&&V.state.excludedWallets.some(r=>Ca.isLowerCaseMatch(r.name,t.name));return e||s}},gn={getConnectorsByType(t,e,s){const{customWallets:r}=O.state,i=F.getRecentWallets(),n=ra.filterOutDuplicateWallets(e),o=ra.filterOutDuplicateWallets(s),a=t.filter(h=>h.type==="MULTI_CHAIN"),c=t.filter(h=>h.type==="ANNOUNCED"),l=t.filter(h=>h.type==="INJECTED"),u=t.filter(h=>h.type==="EXTERNAL");return{custom:r,recent:i,external:u,multiChain:a,announced:c,injected:l,recommended:n,featured:o}},showConnector(t){const e=t.info?.rdns,s=!!e&&V.state.excludedWallets.some(i=>!!i.rdns&&i.rdns===e),r=!!t.name&&V.state.excludedWallets.some(i=>Ca.isLowerCaseMatch(i.name,t.name));return!(t.type==="INJECTED"&&(t.name==="Browser Wallet"&&(!X.isMobile()||X.isMobile()&&!e&&!Y.checkInstalled())||s||r)||(t.type==="ANNOUNCED"||t.type==="EXTERNAL")&&(s||r))},getIsConnectedWithWC(){return Array.from(g.state.chains.values()).some(s=>j.getConnectorId(s.namespace)===W.CONNECTOR_ID.WALLET_CONNECT)},getConnectorTypeOrder({recommended:t,featured:e,custom:s,recent:r,announced:i,injected:n,multiChain:o,external:a,overriddenConnectors:c=O.state.features?.connectorTypeOrder??[]}){const l=gn.getIsConnectedWithWC(),d=[{type:"walletConnect",isEnabled:O.state.enableWalletConnect&&!l},{type:"recent",isEnabled:r.length>0},{type:"injected",isEnabled:[...n,...i,...o].length>0},{type:"featured",isEnabled:e.length>0},{type:"custom",isEnabled:s&&s.length>0},{type:"external",isEnabled:a.length>0},{type:"recommended",isEnabled:t.length>0}].filter(f=>f.isEnabled),p=new Set(d.map(f=>f.type)),w=c.filter(f=>p.has(f)).map(f=>({type:f,isEnabled:!0})),m=d.filter(({type:f})=>!w.some(({type:b})=>b===f));return Array.from(new Set([...w,...m].map(({type:f})=>f)))}};/**
- * @license
- * Copyright 2019 Google LLC
- * SPDX-License-Identifier: BSD-3-Clause
- */const mn=globalThis,Ia=mn.ShadowRoot&&(mn.ShadyCSS===void 0||mn.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Na=Symbol(),Rl=new WeakMap;let Th=class{constructor(e,s,r){if(this._$cssResult$=!0,r!==Na)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=s}get styleSheet(){let e=this.o;const s=this.t;if(Ia&&e===void 0){const r=s!==void 0&&s.length===1;r&&(e=Rl.get(s)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),r&&Rl.set(s,e))}return e}toString(){return this.cssText}};const St=t=>new Th(typeof t=="string"?t:t+"",void 0,Na),Tr=(t,...e)=>{const s=t.length===1?t[0]:e.reduce(((r,i,n)=>r+(o=>{if(o._$cssResult$===!0)return o.cssText;if(typeof o=="number")return o;throw Error("Value passed to 'css' function must be a 'css' function result: "+o+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+t[n+1]),t[0]);return new Th(s,t,Na)},fI=(t,e)=>{if(Ia)t.adoptedStyleSheets=e.map((s=>s instanceof CSSStyleSheet?s:s.styleSheet));else for(const s of e){const r=document.createElement("style"),i=mn.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=s.cssText,t.appendChild(r)}},Ul=Ia?t=>t:t=>t instanceof CSSStyleSheet?(e=>{let s="";for(const r of e.cssRules)s+=r.cssText;return St(s)})(t):t;/**
- * @license
- * Copyright 2017 Google LLC
- * SPDX-License-Identifier: BSD-3-Clause
- */const{is:gI,defineProperty:mI,getOwnPropertyDescriptor:wI,getOwnPropertyNames:yI,getOwnPropertySymbols:bI,getPrototypeOf:vI}=Object,jn=globalThis,Dl=jn.trustedTypes,EI=Dl?Dl.emptyScript:"",CI=jn.reactiveElementPolyfillSupport,Ei=(t,e)=>t,ia={toAttribute(t,e){switch(e){case Boolean:t=t?EI:null;break;case Object:case Array:t=t==null?t:JSON.stringify(t)}return t},fromAttribute(t,e){let s=t;switch(e){case Boolean:s=t!==null;break;case Number:s=t===null?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch{s=null}}return s}},xh=(t,e)=>!gI(t,e),Ll={attribute:!0,type:String,converter:ia,reflect:!1,useDefault:!1,hasChanged:xh};Symbol.metadata??=Symbol("metadata"),jn.litPropertyMetadata??=new WeakMap;let Ar=class extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,s=Ll){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(e,s),!s.noAccessor){const r=Symbol(),i=this.getPropertyDescriptor(e,r,s);i!==void 0&&mI(this.prototype,e,i)}}static getPropertyDescriptor(e,s,r){const{get:i,set:n}=wI(this.prototype,e)??{get(){return this[s]},set(o){this[s]=o}};return{get:i,set(o){const a=i?.call(this);n?.call(this,o),this.requestUpdate(e,a,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??Ll}static _$Ei(){if(this.hasOwnProperty(Ei("elementProperties")))return;const e=vI(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(Ei("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(Ei("properties"))){const s=this.properties,r=[...yI(s),...bI(s)];for(const i of r)this.createProperty(i,s[i])}const e=this[Symbol.metadata];if(e!==null){const s=litPropertyMetadata.get(e);if(s!==void 0)for(const[r,i]of s)this.elementProperties.set(r,i)}this._$Eh=new Map;for(const[s,r]of this.elementProperties){const i=this._$Eu(s,r);i!==void 0&&this._$Eh.set(i,s)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const s=[];if(Array.isArray(e)){const r=new Set(e.flat(1/0).reverse());for(const i of r)s.unshift(Ul(i))}else e!==void 0&&s.push(Ul(e));return s}static _$Eu(e,s){const r=s.attribute;return r===!1?void 0:typeof r=="string"?r:typeof e=="string"?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),this.renderRoot!==void 0&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,s=this.constructor.elementProperties;for(const r of s.keys())this.hasOwnProperty(r)&&(e.set(r,this[r]),delete this[r]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return fI(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,s,r){this._$AK(e,r)}_$ET(e,s){const r=this.constructor.elementProperties.get(e),i=this.constructor._$Eu(e,r);if(i!==void 0&&r.reflect===!0){const n=(r.converter?.toAttribute!==void 0?r.converter:ia).toAttribute(s,r.type);this._$Em=e,n==null?this.removeAttribute(i):this.setAttribute(i,n),this._$Em=null}}_$AK(e,s){const r=this.constructor,i=r._$Eh.get(e);if(i!==void 0&&this._$Em!==i){const n=r.getPropertyOptions(i),o=typeof n.converter=="function"?{fromAttribute:n.converter}:n.converter?.fromAttribute!==void 0?n.converter:ia;this._$Em=i;const a=o.fromAttribute(s,n.type);this[i]=a??this._$Ej?.get(i)??a,this._$Em=null}}requestUpdate(e,s,r){if(e!==void 0){const i=this.constructor,n=this[e];if(r??=i.getPropertyOptions(e),!((r.hasChanged??xh)(n,s)||r.useDefault&&r.reflect&&n===this._$Ej?.get(e)&&!this.hasAttribute(i._$Eu(e,r))))return;this.C(e,s,r)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(e,s,{useDefault:r,reflect:i,wrapped:n},o){r&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,o??s??this[e]),n!==!0||o!==void 0)||(this._$AL.has(e)||(this.hasUpdated||r||(s=void 0),this._$AL.set(e,s)),i===!0&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(s){Promise.reject(s)}const e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[i,n]of this._$Ep)this[i]=n;this._$Ep=void 0}const r=this.constructor.elementProperties;if(r.size>0)for(const[i,n]of r){const{wrapped:o}=n,a=this[i];o!==!0||this._$AL.has(i)||a===void 0||this.C(i,void 0,n,a)}}let e=!1;const s=this._$AL;try{e=this.shouldUpdate(s),e?(this.willUpdate(s),this._$EO?.forEach((r=>r.hostUpdate?.())),this.update(s)):this._$EM()}catch(r){throw e=!1,this._$EM(),r}e&&this._$AE(s)}willUpdate(e){}_$AE(e){this._$EO?.forEach((s=>s.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach((s=>this._$ET(s,this[s]))),this._$EM()}updated(e){}firstUpdated(e){}};Ar.elementStyles=[],Ar.shadowRootOptions={mode:"open"},Ar[Ei("elementProperties")]=new Map,Ar[Ei("finalized")]=new Map,CI?.({ReactiveElement:Ar}),(jn.reactiveElementVersions??=[]).push("2.1.1");/**
- * @license
- * Copyright 2017 Google LLC
- * SPDX-License-Identifier: BSD-3-Clause
- */const Aa=globalThis,Pn=Aa.trustedTypes,Ml=Pn?Pn.createPolicy("lit-html",{createHTML:t=>t}):void 0,$h="$lit$",vs=`lit$${Math.random().toFixed(9).slice(2)}$`,Rh="?"+vs,II=`<${Rh}>`,Xs=document,Oi=()=>Xs.createComment(""),Ti=t=>t===null||typeof t!="object"&&typeof t!="function",_a=Array.isArray,NI=t=>_a(t)||typeof t?.[Symbol.iterator]=="function",vo=`[
-\f\r]`,oi=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Bl=/-->/g,jl=/>/g,Rs=RegExp(`>|${vo}(?:([^\\s"'>=/]+)(${vo}*=${vo}*(?:[^
-\f\r"'\`<>=]|("|')|))|$)`,"g"),ql=/'/g,Fl=/"/g,Uh=/^(?:script|style|textarea|title)$/i,Dh=t=>(e,...s)=>({_$litType$:t,strings:e,values:s}),v1=Dh(1),E1=Dh(2),qr=Symbol.for("lit-noChange"),ze=Symbol.for("lit-nothing"),zl=new WeakMap,zs=Xs.createTreeWalker(Xs,129);function Lh(t,e){if(!_a(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return Ml!==void 0?Ml.createHTML(e):e}const AI=(t,e)=>{const s=t.length-1,r=[];let i,n=e===2?"":e===3?"":"")),r]};class xi{constructor({strings:e,_$litType$:s},r){let i;this.parts=[];let n=0,o=0;const a=e.length-1,c=this.parts,[l,u]=AI(e,s);if(this.el=xi.createElement(l,r),zs.currentNode=this.el.content,s===2||s===3){const h=this.el.content.firstChild;h.replaceWith(...h.childNodes)}for(;(i=zs.nextNode())!==null&&c.length0){i.textContent=Pn?Pn.emptyScript:"";for(let p=0;p2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=ze}_$AI(e,s=this,r,i){const n=this.strings;let o=!1;if(n===void 0)e=Fr(this,e,s,0),o=!Ti(e)||e!==this._$AH&&e!==qr,o&&(this._$AH=e);else{const a=e;let c,l;for(e=n[0],c=0;c{const r=s?.renderBefore??e;let i=r._$litPart$;if(i===void 0){const n=s?.renderBefore??null;r._$litPart$=i=new zi(e.insertBefore(Oi(),n),n,void 0,s??{})}return i._$AI(t),i};/**
- * @license
- * Copyright 2017 Google LLC
- * SPDX-License-Identifier: BSD-3-Clause
- */const Sa=globalThis;class wn extends Ar{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){const s=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=xI(s,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return qr}}wn._$litElement$=!0,wn.finalized=!0,Sa.litElementHydrateSupport?.({LitElement:wn});const $I=Sa.litElementPolyfillSupport;$I?.({LitElement:wn});(Sa.litElementVersions??=[]).push("4.2.1");let Ci,Ss,Ps;function C1(t,e){Ci=document.createElement("style"),Ss=document.createElement("style"),Ps=document.createElement("style"),Ci.textContent=xr(t).core.cssText,Ss.textContent=xr(t).dark.cssText,Ps.textContent=xr(t).light.cssText,document.head.appendChild(Ci),document.head.appendChild(Ss),document.head.appendChild(Ps),Mh(e)}function Mh(t){Ss&&Ps&&(t==="light"?(Ss.removeAttribute("media"),Ps.media="enabled"):(Ps.removeAttribute("media"),Ss.media="enabled"))}function RI(t){Ci&&Ss&&Ps&&(Ci.textContent=xr(t).core.cssText,Ss.textContent=xr(t).dark.cssText,Ps.textContent=xr(t).light.cssText)}function xr(t){return{core:Tr`
- @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
- @keyframes w3m-shake {
- 0% {
- transform: scale(1) rotate(0deg);
- }
- 20% {
- transform: scale(1) rotate(-1deg);
- }
- 40% {
- transform: scale(1) rotate(1.5deg);
- }
- 60% {
- transform: scale(1) rotate(-1.5deg);
- }
- 80% {
- transform: scale(1) rotate(1deg);
- }
- 100% {
- transform: scale(1) rotate(0deg);
- }
- }
- @keyframes w3m-iframe-fade-out {
- 0% {
- opacity: 1;
- }
- 100% {
- opacity: 0;
- }
- }
- @keyframes w3m-iframe-zoom-in {
- 0% {
- transform: translateY(50px);
- opacity: 0;
- }
- 100% {
- transform: translateY(0px);
- opacity: 1;
- }
- }
- @keyframes w3m-iframe-zoom-in-mobile {
- 0% {
- transform: scale(0.95);
- opacity: 0;
- }
- 100% {
- transform: scale(1);
- opacity: 1;
- }
- }
- :root {
- --w3m-modal-width: 360px;
- --w3m-color-mix-strength: ${St(t?.["--w3m-color-mix-strength"]?`${t["--w3m-color-mix-strength"]}%`:"0%")};
- --w3m-font-family: ${St(t?.["--w3m-font-family"]||"Inter, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;")};
- --w3m-font-size-master: ${St(t?.["--w3m-font-size-master"]||"10px")};
- --w3m-border-radius-master: ${St(t?.["--w3m-border-radius-master"]||"4px")};
- --w3m-z-index: ${St(t?.["--w3m-z-index"]||999)};
-
- --wui-font-family: var(--w3m-font-family);
-
- --wui-font-size-mini: calc(var(--w3m-font-size-master) * 0.8);
- --wui-font-size-micro: var(--w3m-font-size-master);
- --wui-font-size-tiny: calc(var(--w3m-font-size-master) * 1.2);
- --wui-font-size-small: calc(var(--w3m-font-size-master) * 1.4);
- --wui-font-size-paragraph: calc(var(--w3m-font-size-master) * 1.6);
- --wui-font-size-medium: calc(var(--w3m-font-size-master) * 1.8);
- --wui-font-size-large: calc(var(--w3m-font-size-master) * 2);
- --wui-font-size-title-6: calc(var(--w3m-font-size-master) * 2.2);
- --wui-font-size-medium-title: calc(var(--w3m-font-size-master) * 2.4);
- --wui-font-size-2xl: calc(var(--w3m-font-size-master) * 4);
-
- --wui-border-radius-5xs: var(--w3m-border-radius-master);
- --wui-border-radius-4xs: calc(var(--w3m-border-radius-master) * 1.5);
- --wui-border-radius-3xs: calc(var(--w3m-border-radius-master) * 2);
- --wui-border-radius-xxs: calc(var(--w3m-border-radius-master) * 3);
- --wui-border-radius-xs: calc(var(--w3m-border-radius-master) * 4);
- --wui-border-radius-s: calc(var(--w3m-border-radius-master) * 5);
- --wui-border-radius-m: calc(var(--w3m-border-radius-master) * 7);
- --wui-border-radius-l: calc(var(--w3m-border-radius-master) * 9);
- --wui-border-radius-3xl: calc(var(--w3m-border-radius-master) * 20);
-
- --wui-font-weight-light: 400;
- --wui-font-weight-regular: 500;
- --wui-font-weight-medium: 600;
- --wui-font-weight-bold: 700;
-
- --wui-letter-spacing-2xl: -1.6px;
- --wui-letter-spacing-medium-title: -0.96px;
- --wui-letter-spacing-title-6: -0.88px;
- --wui-letter-spacing-large: -0.8px;
- --wui-letter-spacing-medium: -0.72px;
- --wui-letter-spacing-paragraph: -0.64px;
- --wui-letter-spacing-small: -0.56px;
- --wui-letter-spacing-tiny: -0.48px;
- --wui-letter-spacing-micro: -0.2px;
- --wui-letter-spacing-mini: -0.16px;
-
- --wui-spacing-0: 0px;
- --wui-spacing-4xs: 2px;
- --wui-spacing-3xs: 4px;
- --wui-spacing-xxs: 6px;
- --wui-spacing-2xs: 7px;
- --wui-spacing-xs: 8px;
- --wui-spacing-1xs: 10px;
- --wui-spacing-s: 12px;
- --wui-spacing-m: 14px;
- --wui-spacing-l: 16px;
- --wui-spacing-2l: 18px;
- --wui-spacing-xl: 20px;
- --wui-spacing-xxl: 24px;
- --wui-spacing-2xl: 32px;
- --wui-spacing-3xl: 40px;
- --wui-spacing-4xl: 90px;
- --wui-spacing-5xl: 95px;
-
- --wui-icon-box-size-xxs: 14px;
- --wui-icon-box-size-xs: 20px;
- --wui-icon-box-size-sm: 24px;
- --wui-icon-box-size-md: 32px;
- --wui-icon-box-size-mdl: 36px;
- --wui-icon-box-size-lg: 40px;
- --wui-icon-box-size-2lg: 48px;
- --wui-icon-box-size-xl: 64px;
-
- --wui-icon-size-inherit: inherit;
- --wui-icon-size-xxs: 10px;
- --wui-icon-size-xs: 12px;
- --wui-icon-size-sm: 14px;
- --wui-icon-size-md: 16px;
- --wui-icon-size-mdl: 18px;
- --wui-icon-size-lg: 20px;
- --wui-icon-size-xl: 24px;
- --wui-icon-size-xxl: 28px;
-
- --wui-wallet-image-size-inherit: inherit;
- --wui-wallet-image-size-sm: 40px;
- --wui-wallet-image-size-md: 56px;
- --wui-wallet-image-size-lg: 80px;
-
- --wui-visual-size-size-inherit: inherit;
- --wui-visual-size-sm: 40px;
- --wui-visual-size-md: 55px;
- --wui-visual-size-lg: 80px;
-
- --wui-box-size-md: 100px;
- --wui-box-size-lg: 120px;
-
- --wui-ease-out-power-2: cubic-bezier(0, 0, 0.22, 1);
- --wui-ease-out-power-1: cubic-bezier(0, 0, 0.55, 1);
-
- --wui-ease-in-power-3: cubic-bezier(0.66, 0, 1, 1);
- --wui-ease-in-power-2: cubic-bezier(0.45, 0, 1, 1);
- --wui-ease-in-power-1: cubic-bezier(0.3, 0, 1, 1);
-
- --wui-ease-inout-power-1: cubic-bezier(0.45, 0, 0.55, 1);
-
- --wui-duration-lg: 200ms;
- --wui-duration-md: 125ms;
- --wui-duration-sm: 75ms;
-
- --wui-path-network-sm: path(
- 'M15.4 2.1a5.21 5.21 0 0 1 5.2 0l11.61 6.7a5.21 5.21 0 0 1 2.61 4.52v13.4c0 1.87-1 3.59-2.6 4.52l-11.61 6.7c-1.62.93-3.6.93-5.22 0l-11.6-6.7a5.21 5.21 0 0 1-2.61-4.51v-13.4c0-1.87 1-3.6 2.6-4.52L15.4 2.1Z'
- );
-
- --wui-path-network-md: path(
- 'M43.4605 10.7248L28.0485 1.61089C25.5438 0.129705 22.4562 0.129705 19.9515 1.61088L4.53951 10.7248C2.03626 12.2051 0.5 14.9365 0.5 17.886V36.1139C0.5 39.0635 2.03626 41.7949 4.53951 43.2752L19.9515 52.3891C22.4562 53.8703 25.5438 53.8703 28.0485 52.3891L43.4605 43.2752C45.9637 41.7949 47.5 39.0635 47.5 36.114V17.8861C47.5 14.9365 45.9637 12.2051 43.4605 10.7248Z'
- );
-
- --wui-path-network-lg: path(
- 'M78.3244 18.926L50.1808 2.45078C45.7376 -0.150261 40.2624 -0.150262 35.8192 2.45078L7.6756 18.926C3.23322 21.5266 0.5 26.3301 0.5 31.5248V64.4752C0.5 69.6699 3.23322 74.4734 7.6756 77.074L35.8192 93.5492C40.2624 96.1503 45.7376 96.1503 50.1808 93.5492L78.3244 77.074C82.7668 74.4734 85.5 69.6699 85.5 64.4752V31.5248C85.5 26.3301 82.7668 21.5266 78.3244 18.926Z'
- );
-
- --wui-width-network-sm: 36px;
- --wui-width-network-md: 48px;
- --wui-width-network-lg: 86px;
-
- --wui-height-network-sm: 40px;
- --wui-height-network-md: 54px;
- --wui-height-network-lg: 96px;
-
- --wui-icon-size-network-xs: 12px;
- --wui-icon-size-network-sm: 16px;
- --wui-icon-size-network-md: 24px;
- --wui-icon-size-network-lg: 42px;
-
- --wui-color-inherit: inherit;
-
- --wui-color-inverse-100: #fff;
- --wui-color-inverse-000: #000;
-
- --wui-cover: rgba(20, 20, 20, 0.8);
-
- --wui-color-modal-bg: var(--wui-color-modal-bg-base);
-
- --wui-color-accent-100: var(--wui-color-accent-base-100);
- --wui-color-accent-090: var(--wui-color-accent-base-090);
- --wui-color-accent-080: var(--wui-color-accent-base-080);
-
- --wui-color-success-100: var(--wui-color-success-base-100);
- --wui-color-success-125: var(--wui-color-success-base-125);
-
- --wui-color-warning-100: var(--wui-color-warning-base-100);
-
- --wui-color-error-100: var(--wui-color-error-base-100);
- --wui-color-error-125: var(--wui-color-error-base-125);
-
- --wui-color-blue-100: var(--wui-color-blue-base-100);
- --wui-color-blue-90: var(--wui-color-blue-base-90);
-
- --wui-icon-box-bg-error-100: var(--wui-icon-box-bg-error-base-100);
- --wui-icon-box-bg-blue-100: var(--wui-icon-box-bg-blue-base-100);
- --wui-icon-box-bg-success-100: var(--wui-icon-box-bg-success-base-100);
- --wui-icon-box-bg-inverse-100: var(--wui-icon-box-bg-inverse-base-100);
-
- --wui-all-wallets-bg-100: var(--wui-all-wallets-bg-100);
-
- --wui-avatar-border: var(--wui-avatar-border-base);
-
- --wui-thumbnail-border: var(--wui-thumbnail-border-base);
-
- --wui-wallet-button-bg: var(--wui-wallet-button-bg-base);
-
- --wui-box-shadow-blue: var(--wui-color-accent-glass-020);
- }
-
- @supports (background: color-mix(in srgb, white 50%, black)) {
- :root {
- --wui-color-modal-bg: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-modal-bg-base)
- );
-
- --wui-box-shadow-blue: color-mix(in srgb, var(--wui-color-accent-100) 20%, transparent);
-
- --wui-color-accent-100: color-mix(
- in srgb,
- var(--wui-color-accent-base-100) 100%,
- transparent
- );
- --wui-color-accent-090: color-mix(
- in srgb,
- var(--wui-color-accent-base-100) 90%,
- transparent
- );
- --wui-color-accent-080: color-mix(
- in srgb,
- var(--wui-color-accent-base-100) 80%,
- transparent
- );
- --wui-color-accent-glass-090: color-mix(
- in srgb,
- var(--wui-color-accent-base-100) 90%,
- transparent
- );
- --wui-color-accent-glass-080: color-mix(
- in srgb,
- var(--wui-color-accent-base-100) 80%,
- transparent
- );
- --wui-color-accent-glass-020: color-mix(
- in srgb,
- var(--wui-color-accent-base-100) 20%,
- transparent
- );
- --wui-color-accent-glass-015: color-mix(
- in srgb,
- var(--wui-color-accent-base-100) 15%,
- transparent
- );
- --wui-color-accent-glass-010: color-mix(
- in srgb,
- var(--wui-color-accent-base-100) 10%,
- transparent
- );
- --wui-color-accent-glass-005: color-mix(
- in srgb,
- var(--wui-color-accent-base-100) 5%,
- transparent
- );
- --wui-color-accent-002: color-mix(
- in srgb,
- var(--wui-color-accent-base-100) 2%,
- transparent
- );
-
- --wui-color-fg-100: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-fg-100)
- );
- --wui-color-fg-125: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-fg-125)
- );
- --wui-color-fg-150: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-fg-150)
- );
- --wui-color-fg-175: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-fg-175)
- );
- --wui-color-fg-200: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-fg-200)
- );
- --wui-color-fg-225: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-fg-225)
- );
- --wui-color-fg-250: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-fg-250)
- );
- --wui-color-fg-275: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-fg-275)
- );
- --wui-color-fg-300: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-fg-300)
- );
- --wui-color-fg-325: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-fg-325)
- );
- --wui-color-fg-350: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-fg-350)
- );
-
- --wui-color-bg-100: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-bg-100)
- );
- --wui-color-bg-125: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-bg-125)
- );
- --wui-color-bg-150: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-bg-150)
- );
- --wui-color-bg-175: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-bg-175)
- );
- --wui-color-bg-200: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-bg-200)
- );
- --wui-color-bg-225: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-bg-225)
- );
- --wui-color-bg-250: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-bg-250)
- );
- --wui-color-bg-275: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-bg-275)
- );
- --wui-color-bg-300: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-bg-300)
- );
- --wui-color-bg-325: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-bg-325)
- );
- --wui-color-bg-350: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-bg-350)
- );
-
- --wui-color-success-100: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-success-base-100)
- );
- --wui-color-success-125: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-success-base-125)
- );
-
- --wui-color-warning-100: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-warning-base-100)
- );
-
- --wui-color-error-100: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-error-base-100)
- );
- --wui-color-blue-100: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-blue-base-100)
- );
- --wui-color-blue-90: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-blue-base-90)
- );
- --wui-color-error-125: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-color-error-base-125)
- );
-
- --wui-icon-box-bg-error-100: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-icon-box-bg-error-base-100)
- );
- --wui-icon-box-bg-accent-100: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-icon-box-bg-blue-base-100)
- );
- --wui-icon-box-bg-success-100: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-icon-box-bg-success-base-100)
- );
- --wui-icon-box-bg-inverse-100: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-icon-box-bg-inverse-base-100)
- );
-
- --wui-all-wallets-bg-100: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-all-wallets-bg-100)
- );
-
- --wui-avatar-border: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-avatar-border-base)
- );
-
- --wui-thumbnail-border: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-thumbnail-border-base)
- );
-
- --wui-wallet-button-bg: color-mix(
- in srgb,
- var(--w3m-color-mix) var(--w3m-color-mix-strength),
- var(--wui-wallet-button-bg-base)
- );
- }
- }
- `,light:Tr`
- :root {
- --w3m-color-mix: ${St(t?.["--w3m-color-mix"]||"#fff")};
- --w3m-accent: ${St(Es(t,"dark")["--w3m-accent"])};
- --w3m-default: #fff;
-
- --wui-color-modal-bg-base: ${St(Es(t,"dark")["--w3m-background"])};
- --wui-color-accent-base-100: var(--w3m-accent);
-
- --wui-color-blueberry-100: hsla(230, 100%, 67%, 1);
- --wui-color-blueberry-090: hsla(231, 76%, 61%, 1);
- --wui-color-blueberry-080: hsla(230, 59%, 55%, 1);
- --wui-color-blueberry-050: hsla(231, 100%, 70%, 0.1);
-
- --wui-color-fg-100: #e4e7e7;
- --wui-color-fg-125: #d0d5d5;
- --wui-color-fg-150: #a8b1b1;
- --wui-color-fg-175: #a8b0b0;
- --wui-color-fg-200: #949e9e;
- --wui-color-fg-225: #868f8f;
- --wui-color-fg-250: #788080;
- --wui-color-fg-275: #788181;
- --wui-color-fg-300: #6e7777;
- --wui-color-fg-325: #9a9a9a;
- --wui-color-fg-350: #363636;
-
- --wui-color-bg-100: #141414;
- --wui-color-bg-125: #191a1a;
- --wui-color-bg-150: #1e1f1f;
- --wui-color-bg-175: #222525;
- --wui-color-bg-200: #272a2a;
- --wui-color-bg-225: #2c3030;
- --wui-color-bg-250: #313535;
- --wui-color-bg-275: #363b3b;
- --wui-color-bg-300: #3b4040;
- --wui-color-bg-325: #252525;
- --wui-color-bg-350: #ffffff;
-
- --wui-color-success-base-100: #26d962;
- --wui-color-success-base-125: #30a46b;
-
- --wui-color-warning-base-100: #f3a13f;
-
- --wui-color-error-base-100: #f25a67;
- --wui-color-error-base-125: #df4a34;
-
- --wui-color-blue-base-100: rgba(102, 125, 255, 1);
- --wui-color-blue-base-90: rgba(102, 125, 255, 0.9);
-
- --wui-color-success-glass-001: rgba(38, 217, 98, 0.01);
- --wui-color-success-glass-002: rgba(38, 217, 98, 0.02);
- --wui-color-success-glass-005: rgba(38, 217, 98, 0.05);
- --wui-color-success-glass-010: rgba(38, 217, 98, 0.1);
- --wui-color-success-glass-015: rgba(38, 217, 98, 0.15);
- --wui-color-success-glass-020: rgba(38, 217, 98, 0.2);
- --wui-color-success-glass-025: rgba(38, 217, 98, 0.25);
- --wui-color-success-glass-030: rgba(38, 217, 98, 0.3);
- --wui-color-success-glass-060: rgba(38, 217, 98, 0.6);
- --wui-color-success-glass-080: rgba(38, 217, 98, 0.8);
-
- --wui-color-success-glass-reown-020: rgba(48, 164, 107, 0.2);
-
- --wui-color-warning-glass-reown-020: rgba(243, 161, 63, 0.2);
-
- --wui-color-error-glass-001: rgba(242, 90, 103, 0.01);
- --wui-color-error-glass-002: rgba(242, 90, 103, 0.02);
- --wui-color-error-glass-005: rgba(242, 90, 103, 0.05);
- --wui-color-error-glass-010: rgba(242, 90, 103, 0.1);
- --wui-color-error-glass-015: rgba(242, 90, 103, 0.15);
- --wui-color-error-glass-020: rgba(242, 90, 103, 0.2);
- --wui-color-error-glass-025: rgba(242, 90, 103, 0.25);
- --wui-color-error-glass-030: rgba(242, 90, 103, 0.3);
- --wui-color-error-glass-060: rgba(242, 90, 103, 0.6);
- --wui-color-error-glass-080: rgba(242, 90, 103, 0.8);
-
- --wui-color-error-glass-reown-020: rgba(223, 74, 52, 0.2);
-
- --wui-color-gray-glass-001: rgba(255, 255, 255, 0.01);
- --wui-color-gray-glass-002: rgba(255, 255, 255, 0.02);
- --wui-color-gray-glass-005: rgba(255, 255, 255, 0.05);
- --wui-color-gray-glass-010: rgba(255, 255, 255, 0.1);
- --wui-color-gray-glass-015: rgba(255, 255, 255, 0.15);
- --wui-color-gray-glass-020: rgba(255, 255, 255, 0.2);
- --wui-color-gray-glass-025: rgba(255, 255, 255, 0.25);
- --wui-color-gray-glass-030: rgba(255, 255, 255, 0.3);
- --wui-color-gray-glass-060: rgba(255, 255, 255, 0.6);
- --wui-color-gray-glass-080: rgba(255, 255, 255, 0.8);
- --wui-color-gray-glass-090: rgba(255, 255, 255, 0.9);
-
- --wui-color-dark-glass-100: rgba(42, 42, 42, 1);
-
- --wui-icon-box-bg-error-base-100: #3c2426;
- --wui-icon-box-bg-blue-base-100: #20303f;
- --wui-icon-box-bg-success-base-100: #1f3a28;
- --wui-icon-box-bg-inverse-base-100: #243240;
-
- --wui-all-wallets-bg-100: #222b35;
-
- --wui-avatar-border-base: #252525;
-
- --wui-thumbnail-border-base: #252525;
-
- --wui-wallet-button-bg-base: var(--wui-color-bg-125);
-
- --w3m-card-embedded-shadow-color: rgb(17 17 18 / 25%);
- }
- `,dark:Tr`
- :root {
- --w3m-color-mix: ${St(t?.["--w3m-color-mix"]||"#000")};
- --w3m-accent: ${St(Es(t,"light")["--w3m-accent"])};
- --w3m-default: #000;
-
- --wui-color-modal-bg-base: ${St(Es(t,"light")["--w3m-background"])};
- --wui-color-accent-base-100: var(--w3m-accent);
-
- --wui-color-blueberry-100: hsla(231, 100%, 70%, 1);
- --wui-color-blueberry-090: hsla(231, 97%, 72%, 1);
- --wui-color-blueberry-080: hsla(231, 92%, 74%, 1);
-
- --wui-color-fg-100: #141414;
- --wui-color-fg-125: #2d3131;
- --wui-color-fg-150: #474d4d;
- --wui-color-fg-175: #636d6d;
- --wui-color-fg-200: #798686;
- --wui-color-fg-225: #828f8f;
- --wui-color-fg-250: #8b9797;
- --wui-color-fg-275: #95a0a0;
- --wui-color-fg-300: #9ea9a9;
- --wui-color-fg-325: #9a9a9a;
- --wui-color-fg-350: #d0d0d0;
-
- --wui-color-bg-100: #ffffff;
- --wui-color-bg-125: #f5fafa;
- --wui-color-bg-150: #f3f8f8;
- --wui-color-bg-175: #eef4f4;
- --wui-color-bg-200: #eaf1f1;
- --wui-color-bg-225: #e5eded;
- --wui-color-bg-250: #e1e9e9;
- --wui-color-bg-275: #dce7e7;
- --wui-color-bg-300: #d8e3e3;
- --wui-color-bg-325: #f3f3f3;
- --wui-color-bg-350: #202020;
-
- --wui-color-success-base-100: #26b562;
- --wui-color-success-base-125: #30a46b;
-
- --wui-color-warning-base-100: #f3a13f;
-
- --wui-color-error-base-100: #f05142;
- --wui-color-error-base-125: #df4a34;
-
- --wui-color-blue-base-100: rgba(102, 125, 255, 1);
- --wui-color-blue-base-90: rgba(102, 125, 255, 0.9);
-
- --wui-color-success-glass-001: rgba(38, 181, 98, 0.01);
- --wui-color-success-glass-002: rgba(38, 181, 98, 0.02);
- --wui-color-success-glass-005: rgba(38, 181, 98, 0.05);
- --wui-color-success-glass-010: rgba(38, 181, 98, 0.1);
- --wui-color-success-glass-015: rgba(38, 181, 98, 0.15);
- --wui-color-success-glass-020: rgba(38, 181, 98, 0.2);
- --wui-color-success-glass-025: rgba(38, 181, 98, 0.25);
- --wui-color-success-glass-030: rgba(38, 181, 98, 0.3);
- --wui-color-success-glass-060: rgba(38, 181, 98, 0.6);
- --wui-color-success-glass-080: rgba(38, 181, 98, 0.8);
-
- --wui-color-success-glass-reown-020: rgba(48, 164, 107, 0.2);
-
- --wui-color-warning-glass-reown-020: rgba(243, 161, 63, 0.2);
-
- --wui-color-error-glass-001: rgba(240, 81, 66, 0.01);
- --wui-color-error-glass-002: rgba(240, 81, 66, 0.02);
- --wui-color-error-glass-005: rgba(240, 81, 66, 0.05);
- --wui-color-error-glass-010: rgba(240, 81, 66, 0.1);
- --wui-color-error-glass-015: rgba(240, 81, 66, 0.15);
- --wui-color-error-glass-020: rgba(240, 81, 66, 0.2);
- --wui-color-error-glass-025: rgba(240, 81, 66, 0.25);
- --wui-color-error-glass-030: rgba(240, 81, 66, 0.3);
- --wui-color-error-glass-060: rgba(240, 81, 66, 0.6);
- --wui-color-error-glass-080: rgba(240, 81, 66, 0.8);
-
- --wui-color-error-glass-reown-020: rgba(223, 74, 52, 0.2);
-
- --wui-icon-box-bg-error-base-100: #f4dfdd;
- --wui-icon-box-bg-blue-base-100: #d9ecfb;
- --wui-icon-box-bg-success-base-100: #daf0e4;
- --wui-icon-box-bg-inverse-base-100: #dcecfc;
-
- --wui-all-wallets-bg-100: #e8f1fa;
-
- --wui-avatar-border-base: #f3f4f4;
-
- --wui-thumbnail-border-base: #eaefef;
-
- --wui-wallet-button-bg-base: var(--wui-color-bg-125);
-
- --wui-color-gray-glass-001: rgba(0, 0, 0, 0.01);
- --wui-color-gray-glass-002: rgba(0, 0, 0, 0.02);
- --wui-color-gray-glass-005: rgba(0, 0, 0, 0.05);
- --wui-color-gray-glass-010: rgba(0, 0, 0, 0.1);
- --wui-color-gray-glass-015: rgba(0, 0, 0, 0.15);
- --wui-color-gray-glass-020: rgba(0, 0, 0, 0.2);
- --wui-color-gray-glass-025: rgba(0, 0, 0, 0.25);
- --wui-color-gray-glass-030: rgba(0, 0, 0, 0.3);
- --wui-color-gray-glass-060: rgba(0, 0, 0, 0.6);
- --wui-color-gray-glass-080: rgba(0, 0, 0, 0.8);
- --wui-color-gray-glass-090: rgba(0, 0, 0, 0.9);
-
- --wui-color-dark-glass-100: rgba(233, 233, 233, 1);
-
- --w3m-card-embedded-shadow-color: rgb(224 225 233 / 25%);
- }
- `}}const I1=Tr`
- *,
- *::after,
- *::before,
- :host {
- margin: 0;
- padding: 0;
- box-sizing: border-box;
- font-style: normal;
- text-rendering: optimizeSpeed;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- -webkit-tap-highlight-color: transparent;
- font-family: var(--wui-font-family);
- backface-visibility: hidden;
- }
-`,N1=Tr`
- button,
- a {
- cursor: pointer;
- display: flex;
- justify-content: center;
- align-items: center;
- position: relative;
- transition:
- color var(--wui-duration-lg) var(--wui-ease-out-power-1),
- background-color var(--wui-duration-lg) var(--wui-ease-out-power-1),
- border var(--wui-duration-lg) var(--wui-ease-out-power-1),
- border-radius var(--wui-duration-lg) var(--wui-ease-out-power-1),
- box-shadow var(--wui-duration-lg) var(--wui-ease-out-power-1);
- will-change: background-color, color, border, box-shadow, border-radius;
- outline: none;
- border: none;
- column-gap: var(--wui-spacing-3xs);
- background-color: transparent;
- text-decoration: none;
- }
-
- wui-flex {
- transition: border-radius var(--wui-duration-lg) var(--wui-ease-out-power-1);
- will-change: border-radius;
- }
-
- button:disabled > wui-wallet-image,
- button:disabled > wui-all-wallets-image,
- button:disabled > wui-network-image,
- button:disabled > wui-image,
- button:disabled > wui-transaction-visual,
- button:disabled > wui-logo {
- filter: grayscale(1);
- }
-
- @media (hover: hover) and (pointer: fine) {
- button:hover:enabled {
- background-color: var(--wui-color-gray-glass-005);
- }
-
- button:active:enabled {
- background-color: var(--wui-color-gray-glass-010);
- }
- }
-
- button:disabled > wui-icon-box {
- opacity: 0.5;
- }
-
- input {
- border: none;
- outline: none;
- appearance: none;
- }
-`,A1=Tr`
- .wui-color-inherit {
- color: var(--wui-color-inherit);
- }
-
- .wui-color-accent-100 {
- color: var(--wui-color-accent-100);
- }
-
- .wui-color-error-100 {
- color: var(--wui-color-error-100);
- }
-
- .wui-color-blue-100 {
- color: var(--wui-color-blue-100);
- }
-
- .wui-color-blue-90 {
- color: var(--wui-color-blue-90);
- }
-
- .wui-color-error-125 {
- color: var(--wui-color-error-125);
- }
-
- .wui-color-success-100 {
- color: var(--wui-color-success-100);
- }
-
- .wui-color-success-125 {
- color: var(--wui-color-success-125);
- }
-
- .wui-color-inverse-100 {
- color: var(--wui-color-inverse-100);
- }
-
- .wui-color-inverse-000 {
- color: var(--wui-color-inverse-000);
- }
-
- .wui-color-fg-100 {
- color: var(--wui-color-fg-100);
- }
-
- .wui-color-fg-200 {
- color: var(--wui-color-fg-200);
- }
-
- .wui-color-fg-300 {
- color: var(--wui-color-fg-300);
- }
-
- .wui-color-fg-325 {
- color: var(--wui-color-fg-325);
- }
-
- .wui-color-fg-350 {
- color: var(--wui-color-fg-350);
- }
-
- .wui-bg-color-inherit {
- background-color: var(--wui-color-inherit);
- }
-
- .wui-bg-color-blue-100 {
- background-color: var(--wui-color-accent-100);
- }
-
- .wui-bg-color-error-100 {
- background-color: var(--wui-color-error-100);
- }
-
- .wui-bg-color-error-125 {
- background-color: var(--wui-color-error-125);
- }
-
- .wui-bg-color-success-100 {
- background-color: var(--wui-color-success-100);
- }
-
- .wui-bg-color-success-125 {
- background-color: var(--wui-color-success-100);
- }
-
- .wui-bg-color-inverse-100 {
- background-color: var(--wui-color-inverse-100);
- }
-
- .wui-bg-color-inverse-000 {
- background-color: var(--wui-color-inverse-000);
- }
-
- .wui-bg-color-fg-100 {
- background-color: var(--wui-color-fg-100);
- }
-
- .wui-bg-color-fg-200 {
- background-color: var(--wui-color-fg-200);
- }
-
- .wui-bg-color-fg-300 {
- background-color: var(--wui-color-fg-300);
- }
-
- .wui-color-fg-325 {
- background-color: var(--wui-color-fg-325);
- }
-
- .wui-color-fg-350 {
- background-color: var(--wui-color-fg-350);
- }
-`,di={ERROR_CODE_UNRECOGNIZED_CHAIN_ID:4902,ERROR_CODE_DEFAULT:5e3,ERROR_INVALID_CHAIN_ID:32603,DEFAULT_ALLOWED_ANCESTORS:["http://localhost:*","https://*.pages.dev","https://*.vercel.app","https://*.ngrok-free.app","https://secure-mobile.walletconnect.com","https://secure-mobile.walletconnect.org"]};function Wi(t){return{formatters:void 0,fees:void 0,serializers:void 0,...t}}const Wl=Wi({id:"5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",name:"Solana",network:"solana-mainnet",nativeCurrency:{name:"Solana",symbol:"SOL",decimals:9},rpcUrls:{default:{http:["https://rpc.walletconnect.org/v1"]}},blockExplorers:{default:{name:"Solscan",url:"https://solscan.io"}},testnet:!1,chainNamespace:"solana",caipNetworkId:"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",deprecatedCaipNetworkId:"solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ"}),Hl=Wi({id:"EtWTRABZaYq6iMfeYKouRu166VU2xqa1",name:"Solana Devnet",network:"solana-devnet",nativeCurrency:{name:"Solana",symbol:"SOL",decimals:9},rpcUrls:{default:{http:["https://rpc.walletconnect.org/v1"]}},blockExplorers:{default:{name:"Solscan",url:"https://solscan.io"}},testnet:!0,chainNamespace:"solana",caipNetworkId:"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",deprecatedCaipNetworkId:"solana:8E9rvCKLFQia2Y35HXjjpWzj8weVo44K"});Wi({id:"4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z",name:"Solana Testnet",network:"solana-testnet",nativeCurrency:{name:"Solana",symbol:"SOL",decimals:9},rpcUrls:{default:{http:["https://rpc.walletconnect.org/v1"]}},blockExplorers:{default:{name:"Solscan",url:"https://solscan.io"}},testnet:!0,chainNamespace:"solana",caipNetworkId:"solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z"});Wi({id:"000000000019d6689c085ae165831e93",caipNetworkId:"bip122:000000000019d6689c085ae165831e93",chainNamespace:"bip122",name:"Bitcoin",nativeCurrency:{name:"Bitcoin",symbol:"BTC",decimals:8},rpcUrls:{default:{http:["https://rpc.walletconnect.org/v1"]}}});Wi({id:"000000000933ea01ad0ee984209779ba",caipNetworkId:"bip122:000000000933ea01ad0ee984209779ba",chainNamespace:"bip122",name:"Bitcoin Testnet",nativeCurrency:{name:"Bitcoin",symbol:"BTC",decimals:8},rpcUrls:{default:{http:["https://rpc.walletconnect.org/v1"]}},testnet:!0});const UI={solana:["solana_signMessage","solana_signTransaction","solana_requestAccounts","solana_getAccounts","solana_signAllTransactions","solana_signAndSendTransaction"],eip155:["eth_accounts","eth_requestAccounts","eth_sendRawTransaction","eth_sign","eth_signTransaction","eth_signTypedData","eth_signTypedData_v3","eth_signTypedData_v4","eth_sendTransaction","personal_sign","wallet_switchEthereumChain","wallet_addEthereumChain","wallet_getPermissions","wallet_requestPermissions","wallet_registerOnboarding","wallet_watchAsset","wallet_scanQRCode","wallet_getCallsStatus","wallet_showCallsStatus","wallet_sendCalls","wallet_getCapabilities","wallet_grantPermissions","wallet_revokePermissions","wallet_getAssets"],bip122:["sendTransfer","signMessage","signPsbt","getAccountAddresses"]},yn={getMethodsByChainNamespace(t){return UI[t]||[]},createDefaultNamespace(t){return{methods:this.getMethodsByChainNamespace(t),events:["accountsChanged","chainChanged"],chains:[],rpcMap:{}}},applyNamespaceOverrides(t,e){if(!e)return{...t};const s={...t},r=new Set;if(e.methods&&Object.keys(e.methods).forEach(i=>r.add(i)),e.chains&&Object.keys(e.chains).forEach(i=>r.add(i)),e.events&&Object.keys(e.events).forEach(i=>r.add(i)),e.rpcMap&&Object.keys(e.rpcMap).forEach(i=>{const[n]=i.split(":");n&&r.add(n)}),r.forEach(i=>{s[i]||(s[i]=this.createDefaultNamespace(i))}),e.methods&&Object.entries(e.methods).forEach(([i,n])=>{s[i]&&(s[i].methods=n)}),e.chains&&Object.entries(e.chains).forEach(([i,n])=>{s[i]&&(s[i].chains=n)}),e.events&&Object.entries(e.events).forEach(([i,n])=>{s[i]&&(s[i].events=n)}),e.rpcMap){const i=new Set;Object.entries(e.rpcMap).forEach(([n,o])=>{const[a,c]=n.split(":");!a||!c||!s[a]||(s[a].rpcMap||(s[a].rpcMap={}),i.has(a)||(s[a].rpcMap={},i.add(a)),s[a].rpcMap[c]=o)})}return s},createNamespaces(t,e){const s=t.reduce((r,i)=>{const{id:n,chainNamespace:o,rpcUrls:a}=i,c=a.default.http[0];r[o]||(r[o]=this.createDefaultNamespace(o));const l=`${o}:${n}`,u=r[o];switch(u.chains.push(l),l){case Wl.caipNetworkId:u.chains.push(Wl.deprecatedCaipNetworkId);break;case Hl.caipNetworkId:u.chains.push(Hl.deprecatedCaipNetworkId);break}return u?.rpcMap&&c&&(u.rpcMap[n]=c),r},{});return this.applyNamespaceOverrides(s,e)},resolveReownName:async t=>{const e=await mi.resolveName(t);return(Object.values(e?.addresses)||[])[0]?.address||!1},getChainsFromNamespaces(t={}){return Object.values(t).flatMap(e=>{const s=e.chains||[],r=e.accounts.map(i=>{const[n,o]=i.split(":");return`${n}:${o}`});return Array.from(new Set([...s,...r]))})},isSessionEventData(t){return typeof t=="object"&&t!==null&&"id"in t&&"topic"in t&&"params"in t&&typeof t.params=="object"&&t.params!==null&&"chainId"in t.params&&"event"in t.params&&typeof t.params.event=="object"&&t.params.event!==null},isOriginAllowed(t,e,s){for(const r of[...e,...s])if(r.includes("*")){const n=`^${r.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&").replace(/\\\*/gu,".*")}$`;if(new RegExp(n,"u").test(t))return!0}else try{if(new URL(r).origin===t)return!0}catch{if(r===t)return!0}return!1}};class Bh{constructor({provider:e,namespace:s}){this.id=W.CONNECTOR_ID.WALLET_CONNECT,this.name=_n.ConnectorNamesMap[W.CONNECTOR_ID.WALLET_CONNECT],this.type="WALLET_CONNECT",this.imageId=_n.ConnectorImageIds[W.CONNECTOR_ID.WALLET_CONNECT],this.getCaipNetworks=g.getCaipNetworks.bind(g),this.caipNetworks=this.getCaipNetworks(),this.provider=e,this.chain=s}get chains(){return this.getCaipNetworks()}async connectWalletConnect(){if(!await this.authenticate()){const s=this.getCaipNetworks(),r=O.state.universalProviderConfigOverride,i=yn.createNamespaces(s,r);await this.provider.connect({optionalNamespaces:i})}return{clientId:await this.provider.client.core.crypto.getClientId(),session:this.provider.session}}async disconnect(){await this.provider.disconnect()}async authenticate(){const e=this.chains.map(s=>s.caipNetworkId);return wi.universalProviderAuthenticate({universalProvider:this.provider,chains:e,methods:DI})}}const DI=["eth_accounts","eth_requestAccounts","eth_sendRawTransaction","eth_sign","eth_signTransaction","eth_signTypedData","eth_signTypedData_v3","eth_signTypedData_v4","eth_sendTransaction","personal_sign","wallet_switchEthereumChain","wallet_addEthereumChain","wallet_getPermissions","wallet_requestPermissions","wallet_registerOnboarding","wallet_watchAsset","wallet_scanQRCode","wallet_getCallsStatus","wallet_sendCalls","wallet_getCapabilities","wallet_grantPermissions","wallet_revokePermissions","wallet_getAssets"];class LI{constructor(e){this.availableConnectors=[],this.eventListeners=new Map,this.getCaipNetworks=s=>g.getCaipNetworks(s),e&&this.construct(e)}construct(e){this.projectId=e.projectId,this.namespace=e.namespace,this.adapterType=e.adapterType}get connectors(){return this.availableConnectors}get networks(){return this.getCaipNetworks(this.namespace)}setAuthProvider(e){this.addConnector({id:W.CONNECTOR_ID.AUTH,type:"AUTH",name:W.CONNECTOR_NAMES.AUTH,provider:e,imageId:_n.ConnectorImageIds[W.CONNECTOR_ID.AUTH],chain:this.namespace,chains:[]})}addConnector(...e){const s=new Set;this.availableConnectors=[...e,...this.availableConnectors].filter(r=>s.has(r.id)?!1:(s.add(r.id),!0)),this.emit("connectors",this.availableConnectors)}setStatus(e,s){z.setStatus(e,s)}on(e,s){this.eventListeners.has(e)||this.eventListeners.set(e,new Set),this.eventListeners.get(e)?.add(s)}off(e,s){const r=this.eventListeners.get(e);r&&r.delete(s)}removeAllEventListeners(){this.eventListeners.forEach(e=>{e.clear()})}emit(e,s){const r=this.eventListeners.get(e);r&&r.forEach(i=>i(s))}async connectWalletConnect(e){return{clientId:(await this.getWalletConnectConnector().connectWalletConnect()).clientId}}async switchNetwork(e){const{caipNetwork:s,providerType:r}=e;if(!e.provider)return;const i="provider"in e.provider?e.provider.provider:e.provider;if(r==="WALLET_CONNECT"){i.setDefaultChain(s.caipNetworkId);return}if(i&&r==="AUTH"){const n=i,o=z.state.preferredAccountTypes?.[s.chainNamespace];await n.switchNetwork(s.caipNetworkId);const a=await n.getUser({chainId:s.caipNetworkId,preferredAccountType:o});this.emit("switchNetwork",a)}}getWalletConnectConnector(){const e=this.connectors.find(s=>s instanceof Bh);if(!e)throw new Error("WalletConnectConnector not found");return e}}class MI extends LI{setUniversalProvider(e){this.addConnector(new Bh({provider:e,caipNetworks:this.getCaipNetworks(),namespace:this.namespace}))}async connect(e){return Promise.resolve({id:"WALLET_CONNECT",type:"WALLET_CONNECT",chainId:Number(e.chainId),provider:this.provider,address:""})}async disconnect(){try{await this.getWalletConnectConnector().disconnect()}catch(e){console.warn("UniversalAdapter:disconnect - error",e)}}async getAccounts({namespace:e}){const r=this.provider?.session?.namespaces?.[e]?.accounts?.map(i=>{const[,,n]=i.split(":");return n}).filter((i,n,o)=>o.indexOf(i)===n)||[];return Promise.resolve({accounts:r.map(i=>X.createAccount(e,i,e==="bip122"?"payment":"eoa"))})}async syncConnectors(){return Promise.resolve()}async getBalance(e){if(!(e.caipNetwork&&ve.BALANCE_SUPPORTED_CHAINS.includes(e.caipNetwork?.chainNamespace))||e.caipNetwork?.testnet)return{balance:"0.00",symbol:e.caipNetwork?.nativeCurrency.symbol||""};if(z.state.balanceLoading&&e.chainId===g.state.activeCaipNetwork?.id)return{balance:z.state.balance||"0.00",symbol:z.state.balanceSymbol||""};const i=(await z.fetchTokenBalance()).find(n=>n.chainId===`${e.caipNetwork?.chainNamespace}:${e.chainId}`&&n.symbol===e.caipNetwork?.nativeCurrency.symbol);return{balance:i?.quantity.numeric||"0.00",symbol:i?.symbol||e.caipNetwork?.nativeCurrency.symbol||""}}async signMessage(e){const{provider:s,message:r,address:i}=e;if(!s)throw new Error("UniversalAdapter:signMessage - provider is undefined");let n="";return g.state.activeCaipNetwork?.chainNamespace===W.CHAIN.SOLANA?n=(await s.request({method:"solana_signMessage",params:{message:fu.encode(new TextEncoder().encode(r)),pubkey:i}},g.state.activeCaipNetwork?.caipNetworkId)).signature:n=await s.request({method:"personal_sign",params:[r,i]},g.state.activeCaipNetwork?.caipNetworkId),{signature:n}}async estimateGas(){return Promise.resolve({gas:BigInt(0)})}async sendTransaction(){return Promise.resolve({hash:""})}walletGetAssets(e){return Promise.resolve({})}async writeContract(){return Promise.resolve({hash:""})}parseUnits(){return 0n}formatUnits(){return"0"}async getCapabilities(){return Promise.resolve({})}async grantPermissions(){return Promise.resolve({})}async revokePermissions(){return Promise.resolve("0x")}async syncConnection(){return Promise.resolve({id:"WALLET_CONNECT",type:"WALLET_CONNECT",chainId:1,provider:this.provider,address:""})}async switchNetwork(e){const{caipNetwork:s}=e,r=this.getWalletConnectConnector();if(s.chainNamespace===W.CHAIN.EVM)try{await r.provider?.request({method:"wallet_switchEthereumChain",params:[{chainId:Pa(s.id)}]})}catch(i){if(i.code===di.ERROR_CODE_UNRECOGNIZED_CHAIN_ID||i.code===di.ERROR_INVALID_CHAIN_ID||i.code===di.ERROR_CODE_DEFAULT||i?.data?.originalError?.code===di.ERROR_CODE_UNRECOGNIZED_CHAIN_ID)try{await r.provider?.request({method:"wallet_addEthereumChain",params:[{chainId:Pa(s.id),rpcUrls:[s?.rpcUrls.chainDefault?.http],chainName:s.name,nativeCurrency:s.nativeCurrency,blockExplorerUrls:[s.blockExplorers?.default.url]}]})}catch{throw new Error("Chain is not supported")}}r.provider.setDefaultChain(s.caipNetworkId)}getWalletConnectProvider(){return this.connectors.find(r=>r.type==="WALLET_CONNECT")?.provider}}const BI=["email","socials","swaps","onramp","activity","reownBranding"],cn={email:{apiFeatureName:"social_login",localFeatureName:"email",returnType:!1,isLegacy:!1,isAvailableOnBasic:!1,processApi:t=>{if(!t?.config)return!1;const e=t.config;return!!t.isEnabled&&e.includes("email")},processFallback:t=>t===void 0?ve.DEFAULT_REMOTE_FEATURES.email:!!t},socials:{apiFeatureName:"social_login",localFeatureName:"socials",returnType:!1,isLegacy:!1,isAvailableOnBasic:!1,processApi:t=>{if(!t?.config)return!1;const e=t.config;return t.isEnabled&&e.length>0?e.filter(s=>s!=="email"):!1},processFallback:t=>t===void 0?ve.DEFAULT_REMOTE_FEATURES.socials:typeof t=="boolean"?t?ve.DEFAULT_REMOTE_FEATURES.socials:!1:t},swaps:{apiFeatureName:"swap",localFeatureName:"swaps",returnType:!1,isLegacy:!1,isAvailableOnBasic:!1,processApi:t=>{if(!t?.config)return!1;const e=t.config;return t.isEnabled&&e.length>0?e:!1},processFallback:t=>t===void 0?ve.DEFAULT_REMOTE_FEATURES.swaps:typeof t=="boolean"?t?ve.DEFAULT_REMOTE_FEATURES.swaps:!1:t},onramp:{apiFeatureName:"onramp",localFeatureName:"onramp",returnType:!1,isLegacy:!1,isAvailableOnBasic:!1,processApi:t=>{if(!t?.config)return!1;const e=t.config;return t.isEnabled&&e.length>0?e:!1},processFallback:t=>t===void 0?ve.DEFAULT_REMOTE_FEATURES.onramp:typeof t=="boolean"?t?ve.DEFAULT_REMOTE_FEATURES.onramp:!1:t},activity:{apiFeatureName:"activity",localFeatureName:"history",returnType:!1,isLegacy:!0,isAvailableOnBasic:!1,processApi:t=>!!t.isEnabled,processFallback:t=>t===void 0?ve.DEFAULT_REMOTE_FEATURES.activity:!!t},reownBranding:{apiFeatureName:"reown_branding",localFeatureName:"reownBranding",returnType:!1,isLegacy:!1,isAvailableOnBasic:!1,processApi:t=>!!t.isEnabled,processFallback:t=>t===void 0?ve.DEFAULT_REMOTE_FEATURES.reownBranding:!!t}},jI={localSettingsOverridden:new Set,getApiConfig(t,e){return e?.find(s=>s.id===t)},addWarning(t,e){if(t!==void 0){const s=cn[e],r=s.isLegacy?`"features.${s.localFeatureName}" (now "${e}")`:`"features.${e}"`;this.localSettingsOverridden.add(r)}},processFeature(t,e,s,r,i){const n=cn[t],o=e[n.localFeatureName];if(i&&!n.isAvailableOnBasic)return!1;if(r){const a=this.getApiConfig(n.apiFeatureName,s);return a?.config===null?this.processFallbackFeature(t,o):a?.config?(o!==void 0&&this.addWarning(o,t),this.processApiFeature(t,a)):!1}return this.processFallbackFeature(t,o)},processApiFeature(t,e){return cn[t].processApi(e)},processFallbackFeature(t,e){return cn[t].processFallback(e)},async fetchRemoteFeatures(t){const e=t.basic??!1,s=t.features||{};this.localSettingsOverridden.clear();let r=null,i=!1;try{r=await V.fetchProjectConfig(),i=r!=null}catch(o){console.warn("[Reown Config] Failed to fetch remote project configuration. Using local/default values.",o)}const n=i&&!e?ve.DEFAULT_REMOTE_FEATURES:ve.DEFAULT_REMOTE_FEATURES_DISABLED;try{for(const o of BI){const a=this.processFeature(o,s,r,i,e);Object.assign(n,{[o]:a})}}catch(o){return console.warn("[Reown Config] Failed to process the configuration from Cloud. Using default values.",o),ve.DEFAULT_REMOTE_FEATURES}if(i&&this.localSettingsOverridden.size>0){const o=`Your local configuration for ${Array.from(this.localSettingsOverridden).join(", ")} was ignored because a remote configuration was successfully fetched. Please manage these features via your project dashboard on dashboard.reown.com.`;Ls.open({shortMessage:"Local configuration ignored",longMessage:`[Reown Config Notice] ${o}`},"warning")}return n}};class qI{constructor(e){this.chainNamespaces=[],this.remoteFeatures={},this.reportedAlertErrors={},this.getCaipNetwork=(s,r)=>{if(s){const i=g.getNetworkData(s)?.requestedCaipNetworks?.find(a=>a.id===r);if(i)return i;const n=g.getNetworkData(s)?.caipNetwork;return n||g.getRequestedCaipNetworks(s).filter(a=>a.chainNamespace===s)?.[0]}return g.state.activeCaipNetwork||this.defaultCaipNetwork},this.getCaipNetworkId=()=>{const s=this.getCaipNetwork();if(s)return s.id},this.getCaipNetworks=s=>g.getCaipNetworks(s),this.getActiveChainNamespace=()=>g.state.activeChain,this.setRequestedCaipNetworks=(s,r)=>{g.setRequestedCaipNetworks(s,r)},this.getApprovedCaipNetworkIds=()=>g.getAllApprovedCaipNetworkIds(),this.getCaipAddress=s=>g.state.activeChain===s||!s?g.state.activeCaipAddress:g.getAccountProp("caipAddress",s),this.setClientId=s=>{J.setClientId(s)},this.getProvider=s=>Se.getProvider(s),this.getProviderType=s=>Se.getProviderId(s),this.getPreferredAccountType=s=>z.state.preferredAccountTypes?.[s],this.setCaipAddress=(s,r)=>{z.setCaipAddress(s,r),s&&O.state.enableEmbedded&&this.close()},this.setBalance=(s,r,i)=>{z.setBalance(s,r,i)},this.setProfileName=(s,r)=>{z.setProfileName(s,r)},this.setProfileImage=(s,r)=>{z.setProfileImage(s,r)},this.setUser=(s,r)=>{z.setUser(s,r)},this.resetAccount=s=>{z.resetAccount(s)},this.setCaipNetwork=s=>{g.setActiveCaipNetwork(s)},this.setCaipNetworkOfNamespace=(s,r)=>{g.setChainNetworkData(r,{caipNetwork:s})},this.setAllAccounts=(s,r)=>{z.setAllAccounts(s,r),O.setHasMultipleAddresses(s?.length>1)},this.setStatus=(s,r)=>{z.setStatus(s,r),j.isConnected()?F.setConnectionStatus("connected"):F.setConnectionStatus("disconnected")},this.getAddressByChainNamespace=s=>g.getAccountProp("address",s),this.setConnectors=s=>{const r=[...j.state.allConnectors,...s];j.setConnectors(r)},this.setConnections=(s,r)=>{Y.setConnections(s,r)},this.fetchIdentity=s=>J.fetchIdentity(s),this.getReownName=s=>mi.getNamesForAddress(s),this.getConnectors=()=>j.getConnectors(),this.getConnectorImage=s=>Ql.getConnectorImage(s),this.setConnectedWalletInfo=(s,r)=>{const i=Se.getProviderId(r),n=s?{...s,type:i}:void 0;z.setConnectedWalletInfo(n,r)},this.getIsConnectedState=()=>!!g.state.activeCaipAddress,this.addAddressLabel=(s,r,i)=>{z.addAddressLabel(s,r,i)},this.removeAddressLabel=(s,r)=>{z.removeAddressLabel(s,r)},this.getAddress=s=>g.state.activeChain===s||!s?z.state.address:g.getAccountProp("address",s),this.setApprovedCaipNetworksData=s=>g.setApprovedCaipNetworksData(s),this.resetNetwork=s=>{g.resetNetwork(s)},this.addConnector=s=>{j.addConnector(s)},this.resetWcConnection=()=>{Y.resetWcConnection()},this.setAddressExplorerUrl=(s,r)=>{z.setAddressExplorerUrl(s,r)},this.setSmartAccountDeployed=(s,r)=>{z.setSmartAccountDeployed(s,r)},this.setSmartAccountEnabledNetworks=(s,r)=>{g.setSmartAccountEnabledNetworks(s,r)},this.setPreferredAccountType=(s,r)=>{z.setPreferredAccountType(s,r)},this.setEIP6963Enabled=s=>{O.setEIP6963Enabled(s)},this.handleUnsafeRPCRequest=()=>{if(this.isOpen()){if(this.isTransactionStackEmpty())return;this.redirect("ApproveTransaction")}else this.open({view:"ApproveTransaction"})},this.options=e,this.version=e.sdkVersion,this.caipNetworks=this.extendCaipNetworks(e),this.chainNamespaces=this.getChainNamespacesSet(e.adapters,this.caipNetworks),this.defaultCaipNetwork=this.extendDefaultCaipNetwork(e),this.chainAdapters=this.createAdapters(e.adapters),this.readyPromise=this.initialize(e)}getChainNamespacesSet(e,s){const r=e?.map(n=>n.namespace).filter(n=>!!n);if(r?.length)return[...new Set(r)];const i=s?.map(n=>n.chainNamespace);return[...new Set(i)]}async initialize(e){this.initializeProjectSettings(e),this.initControllers(e),await this.initChainAdapters(),this.sendInitializeEvent(e),await this.syncExistingConnection(),this.remoteFeatures=await jI.fetchRemoteFeatures(e),O.setRemoteFeatures(this.remoteFeatures),this.remoteFeatures.onramp&&_o.setOnrampProviders(this.remoteFeatures.onramp),(O.state.remoteFeatures?.email||Array.isArray(O.state.remoteFeatures?.socials)&&O.state.remoteFeatures?.socials.length>0)&&await this.checkAllowedOrigins()}async checkAllowedOrigins(){const e=await V.fetchAllowedOrigins();if(e&&X.isClient()){const s=window.location.origin;yn.isOriginAllowed(s,e,di.DEFAULT_ALLOWED_ANCESTORS)||Ls.open(Cr.ALERT_ERRORS.INVALID_APP_CONFIGURATION,"error")}else Ls.open(Cr.ALERT_ERRORS.PROJECT_ID_NOT_CONFIGURED,"error")}sendInitializeEvent(e){const{...s}=e;delete s.adapters,delete s.universalProvider,Pe.sendEvent({type:"track",event:"INITIALIZE",properties:{...s,networks:e.networks.map(r=>r.id),siweConfig:{options:e.siweConfig?.options||{}}}})}initControllers(e){this.initializeOptionsController(e),this.initializeChainController(e),this.initializeThemeController(e),this.initializeConnectionController(e),this.initializeConnectorController()}initializeThemeController(e){e.themeMode&&mt.setThemeMode(e.themeMode),e.themeVariables&&mt.setThemeVariables(e.themeVariables)}initializeChainController(e){if(!this.connectionControllerClient||!this.networkControllerClient)throw new Error("ConnectionControllerClient and NetworkControllerClient must be set");g.initialize(e.adapters??[],this.caipNetworks,{connectionControllerClient:this.connectionControllerClient,networkControllerClient:this.networkControllerClient});const s=this.getDefaultNetwork();s&&g.setActiveCaipNetwork(s)}initializeConnectionController(e){Y.setWcBasic(e.basic??!1)}initializeConnectorController(){j.initialize(this.chainNamespaces)}initializeProjectSettings(e){O.setProjectId(e.projectId),O.setSdkVersion(e.sdkVersion)}initializeOptionsController(e){O.setDebug(e.debug!==!1),O.setEnableWalletConnect(e.enableWalletConnect!==!1),O.setEnableWalletGuide(e.enableWalletGuide!==!1),O.setEnableWallets(e.enableWallets!==!1),O.setEIP6963Enabled(e.enableEIP6963!==!1),O.setEnableNetworkSwitch(e.enableNetworkSwitch!==!1),O.setEnableAuthLogger(e.enableAuthLogger!==!1),O.setCustomRpcUrls(e.customRpcUrls),O.setEnableEmbedded(e.enableEmbedded),O.setAllWallets(e.allWallets),O.setIncludeWalletIds(e.includeWalletIds),O.setExcludeWalletIds(e.excludeWalletIds),O.setFeaturedWalletIds(e.featuredWalletIds),O.setTokens(e.tokens),O.setTermsConditionsUrl(e.termsConditionsUrl),O.setPrivacyPolicyUrl(e.privacyPolicyUrl),O.setCustomWallets(e.customWallets),O.setFeatures(e.features),O.setAllowUnsupportedChain(e.allowUnsupportedChain),O.setUniversalProviderConfigOverride(e.universalProviderConfigOverride),O.setPreferUniversalLinks(e.experimental_preferUniversalLinks),O.setDefaultAccountTypes(e.defaultAccountTypes);const s=F.getPreferredAccountTypes()||{},r={...O.state.defaultAccountTypes,...s};z.setPreferredAccountTypes(r);const i=this.getDefaultMetaData();if(!e.metadata&&i&&(e.metadata=i),O.setMetadata(e.metadata),O.setDisableAppend(e.disableAppend),O.setEnableEmbedded(e.enableEmbedded),O.setSIWX(e.siwx),!e.projectId){Ls.open(Cr.ALERT_ERRORS.PROJECT_ID_NOT_CONFIGURED,"error");return}if(e.adapters?.find(o=>o.namespace===W.CHAIN.EVM)&&e.siweConfig){if(e.siwx)throw new Error("Cannot set both `siweConfig` and `siwx` options");O.setSIWX(e.siweConfig.mapToSIWX())}}getDefaultMetaData(){return X.isClient()?{name:document.getElementsByTagName("title")?.[0]?.textContent||"",description:document.querySelector('meta[property="og:description"]')?.content||"",url:window.location.origin,icons:[document.querySelector('link[rel~="icon"]')?.href||""]}:null}setUnsupportedNetwork(e){const s=this.getActiveChainNamespace();if(s){const r=Nr.getUnsupportedNetwork(`${s}:${e}`);g.setActiveCaipNetwork(r)}}getDefaultNetwork(){return Nr.getCaipNetworkFromStorage(this.defaultCaipNetwork)}extendCaipNetwork(e,s){return Nr.extendCaipNetwork(e,{customNetworkImageUrls:s.chainImages,projectId:s.projectId})}extendCaipNetworks(e){return Nr.extendCaipNetworks(e.networks,{customNetworkImageUrls:e.chainImages,customRpcUrls:e.customRpcUrls,projectId:e.projectId})}extendDefaultCaipNetwork(e){const s=e.networks.find(i=>i.id===e.defaultNetwork?.id);return s?Nr.extendCaipNetwork(s,{customNetworkImageUrls:e.chainImages,customRpcUrls:e.customRpcUrls,projectId:e.projectId}):void 0}async disconnectNamespace(e){try{const s=this.getAdapter(e),r=Se.getProvider(e),i=Se.getProviderId(e),{caipAddress:n}=g.getAccountData(e)||{};this.setLoading(!0,e),n&&s?.disconnect&&await s.disconnect({provider:r,providerType:i}),F.removeConnectedNamespace(e),Se.resetChain(e),this.setUser(void 0,e),this.setStatus("disconnected",e),this.setConnectedWalletInfo(void 0,e),j.removeConnectorId(e),g.resetAccount(e),g.resetNetwork(e),this.setLoading(!1,e)}catch(s){throw this.setLoading(!1,e),new Error(`Failed to disconnect chain ${e}: ${s.message}`)}}createClients(){this.connectionControllerClient={connectWalletConnect:async()=>{const e=g.state.activeChain,s=this.getAdapter(e),r=this.getCaipNetwork(e)?.id;if(!s)throw new Error("Adapter not found");const i=await s.connectWalletConnect(r);this.close(),this.setClientId(i?.clientId||null),F.setConnectedNamespaces([...g.state.chains.keys()]),this.chainNamespaces.forEach(n=>{j.setConnectorId(ms.CONNECTOR_TYPE_WALLET_CONNECT,n)}),await this.syncWalletConnectAccount()},connectExternal:async({id:e,info:s,type:r,provider:i,chain:n,caipNetwork:o,socialUri:a})=>{const c=g.state.activeChain,l=n||c,u=this.getAdapter(l);if(n&&n!==c&&!o){const m=this.getCaipNetworks().find(f=>f.chainNamespace===n);m&&this.setCaipNetwork(m)}if(!u)throw new Error("Adapter not found");const h=this.getCaipNetwork(l),d=await u.connect({id:e,info:s,type:r,provider:i,socialUri:a,chainId:o?.id||h?.id,rpcUrl:o?.rpcUrls?.default?.http?.[0]||h?.rpcUrls?.default?.http?.[0]});if(!d)return;F.addConnectedNamespace(l),this.syncProvider({...d,chainNamespace:l});const p=z.state.allAccounts,{accounts:w}=p?.length>0?{accounts:[...p]}:await u.getAccounts({namespace:l,id:e});this.setAllAccounts(w,l),this.setStatus("connected",l),this.syncConnectedWalletInfo(l)},reconnectExternal:async({id:e,info:s,type:r,provider:i})=>{const n=g.state.activeChain,o=this.getAdapter(n);o?.reconnect&&(await o?.reconnect({id:e,info:s,type:r,provider:i,chainId:this.getCaipNetwork()?.id}),F.addConnectedNamespace(n),this.syncConnectedWalletInfo(n))},disconnect:async e=>{const s=lI(e);try{const r=await Promise.allSettled(s.map(async([n])=>this.disconnectNamespace(n)));he.resetSend(),Y.resetWcConnection(),await wi.clearSessions(),j.setFilterByNamespace(void 0);const i=r.filter(n=>n.status==="rejected");if(i.length>0)throw new Error(i.map(n=>n.reason.message).join(", "));F.deleteConnectedSocialProvider(),Pe.sendEvent({type:"track",event:"DISCONNECT_SUCCESS",properties:{namespace:e||"all"}})}catch(r){throw new Error(`Failed to disconnect chains: ${r.message}`)}},checkInstalled:e=>e?e.some(s=>!!window.ethereum?.[String(s)]):!!window.ethereum,signMessage:async e=>(await this.getAdapter(g.state.activeChain)?.signMessage({message:e,address:z.state.address,provider:Se.getProvider(g.state.activeChain)}))?.signature||"",sendTransaction:async e=>{const s=e.chainNamespace;if(ve.SEND_SUPPORTED_NAMESPACES.includes(s)){const r=this.getAdapter(g.state.activeChain),i=Se.getProvider(s);return(await r?.sendTransaction({...e,caipNetwork:this.getCaipNetwork(),provider:i}))?.hash||""}return""},estimateGas:async e=>{if(e.chainNamespace===W.CHAIN.EVM){const s=this.getAdapter(g.state.activeChain),r=Se.getProvider(g.state.activeChain),i=this.getCaipNetwork();if(!i)throw new Error("CaipNetwork is undefined");return(await s?.estimateGas({...e,provider:r,caipNetwork:i}))?.gas||0n}return 0n},getEnsAvatar:async()=>(await this.syncIdentity({address:z.state.address,chainId:Number(this.getCaipNetwork()?.id),chainNamespace:g.state.activeChain}),z.state.profileImage||!1),getEnsAddress:async e=>await yn.resolveReownName(e),writeContract:async e=>{const s=this.getAdapter(g.state.activeChain),r=this.getCaipNetwork(),i=this.getCaipAddress(),n=Se.getProvider(g.state.activeChain);if(!r||!i)throw new Error("CaipNetwork or CaipAddress is undefined");return(await s?.writeContract({...e,caipNetwork:r,provider:n,caipAddress:i}))?.hash},parseUnits:(e,s)=>this.getAdapter(g.state.activeChain)?.parseUnits({value:e,decimals:s})??0n,formatUnits:(e,s)=>this.getAdapter(g.state.activeChain)?.formatUnits({value:e,decimals:s})??"0",getCapabilities:async e=>await this.getAdapter(g.state.activeChain)?.getCapabilities(e),grantPermissions:async e=>await this.getAdapter(g.state.activeChain)?.grantPermissions(e),revokePermissions:async e=>{const s=this.getAdapter(g.state.activeChain);return s?.revokePermissions?await s.revokePermissions(e):"0x"},walletGetAssets:async e=>await this.getAdapter(g.state.activeChain)?.walletGetAssets(e)??{},updateBalance:e=>{const s=this.getCaipNetwork(e);!s||!z.state.address||this.updateNativeBalance(z.state.address,s?.id,e)}},this.networkControllerClient={switchCaipNetwork:async e=>await this.switchCaipNetwork(e),getApprovedCaipNetworksData:async()=>this.getApprovedCaipNetworksData()},Y.setClient(this.connectionControllerClient)}getApprovedCaipNetworksData(){if(Se.getProviderId(g.state.activeChain)===ms.CONNECTOR_TYPE_WALLET_CONNECT){const s=this.universalProvider?.session?.namespaces;return{supportsAllNetworks:this.universalProvider?.session?.peer?.metadata.name==="MetaMask Wallet",approvedCaipNetworkIds:this.getChainsFromNamespaces(s)}}return{supportsAllNetworks:!0,approvedCaipNetworkIds:[]}}async switchCaipNetwork(e){if(!e)return;const s=e.chainNamespace;if(this.getAddressByChainNamespace(e.chainNamespace)){const i=Se.getProvider(s),n=Se.getProviderId(s);if(e.chainNamespace===g.state.activeChain)await this.getAdapter(s)?.switchNetwork({caipNetwork:e,provider:i,providerType:n});else if(this.setCaipNetwork(e),n===ms.CONNECTOR_TYPE_WALLET_CONNECT)this.syncWalletConnectAccount();else{const o=this.getAddressByChainNamespace(s);o&&this.syncAccount({address:o,chainId:e.id,chainNamespace:s})}}else this.setCaipNetwork(e)}getChainsFromNamespaces(e={}){return Object.values(e).flatMap(s=>{const r=s.chains||[],i=s.accounts.map(n=>{const{chainId:o,chainNamespace:a}=hs.parseCaipAddress(n);return`${a}:${o}`});return Array.from(new Set([...r,...i]))})}createAdapters(e){return this.createClients(),this.chainNamespaces.reduce((s,r)=>{const i=e?.find(n=>n.namespace===r);return i?(i.construct({namespace:r,projectId:this.options?.projectId,networks:this.getCaipNetworks()}),s[r]=i):s[r]=new MI({namespace:r,networks:this.getCaipNetworks()}),s},{})}async initChainAdapter(e){this.onConnectors(e),this.listenAdapter(e),await this.chainAdapters?.[e].syncConnectors(this.options,this),await this.createUniversalProviderForAdapter(e)}async initChainAdapters(){await Promise.all(this.chainNamespaces.map(async e=>{await this.initChainAdapter(e)}))}onConnectors(e){this.getAdapter(e)?.on("connectors",this.setConnectors.bind(this))}listenAdapter(e){const s=this.getAdapter(e);if(!s)return;const r=F.getConnectionStatus();r==="connected"?this.setStatus("connecting",e):r==="disconnected"?(F.clearAddressCache(),this.setStatus(r,e)):this.setStatus(r,e),s.on("switchNetwork",({address:i,chainId:n})=>{const o=this.getCaipNetworks().find(l=>l.id===n||l.caipNetworkId===n),a=g.state.activeChain===e,c=g.getAccountProp("address",e);if(o){const l=a&&i?i:c;l&&this.syncAccount({address:l,chainId:o.id,chainNamespace:e})}else this.setUnsupportedNetwork(n)}),s.on("disconnect",this.disconnect.bind(this,e)),s.on("connections",i=>{this.setConnections(i,e)}),s.on("pendingTransactions",()=>{const i=z.state.address,n=g.state.activeCaipNetwork;!i||!n?.id||this.updateNativeBalance(i,n.id,n.chainNamespace)}),s.on("accountChanged",({address:i,chainId:n})=>{const o=g.state.activeChain===e;o&&n?this.syncAccount({address:i,chainId:n,chainNamespace:e}):o&&g.state.activeCaipNetwork?.id?this.syncAccount({address:i,chainId:g.state.activeCaipNetwork?.id,chainNamespace:e}):this.syncAccountInfo(i,n,e),this.syncAllAccounts(e)})}async createUniversalProviderForAdapter(e){await this.getUniversalProvider(),this.universalProvider&&this.chainAdapters?.[e]?.setUniversalProvider?.(this.universalProvider)}async syncExistingConnection(){await Promise.allSettled(this.chainNamespaces.map(e=>this.syncNamespaceConnection(e)))}async syncNamespaceConnection(e){try{e===W.CHAIN.EVM&&X.isSafeApp()&&j.setConnectorId(W.CONNECTOR_ID.SAFE,e);const s=j.getConnectorId(e);switch(this.setStatus("connecting",e),s){case W.CONNECTOR_ID.WALLET_CONNECT:await this.syncWalletConnectAccount();break;case W.CONNECTOR_ID.AUTH:break;default:await this.syncAdapterConnection(e)}}catch(s){console.warn("AppKit couldn't sync existing connection",s),this.setStatus("disconnected",e)}}async syncAdapterConnection(e){const s=this.getAdapter(e),r=j.getConnectorId(e),i=this.getCaipNetwork(e),o=j.getConnectors(e).find(a=>a.id===r);try{if(!s||!o)throw new Error(`Adapter or connector not found for namespace ${e}`);if(!i?.id)throw new Error("CaipNetwork not found");const a=await s?.syncConnection({namespace:e,id:o.id,chainId:i.id,rpcUrl:i?.rpcUrls?.default?.http?.[0]});if(a){const c=await s?.getAccounts({namespace:e,id:o.id});c&&c.accounts.length>0?this.setAllAccounts(c.accounts,e):this.setAllAccounts([X.createAccount(e,a.address,"eoa")],e),this.syncProvider({...a,chainNamespace:e}),await this.syncAccount({...a,chainNamespace:e}),this.setStatus("connected",e)}else this.setStatus("disconnected",e)}catch{this.setStatus("disconnected",e)}}async syncWalletConnectAccount(){const e=this.chainNamespaces.map(async s=>{const r=this.getAdapter(s),i=this.universalProvider?.session?.namespaces?.[s]?.accounts||[],n=g.state.activeCaipNetwork?.id,o=i.find(a=>{const{chainId:c}=hs.parseCaipAddress(a);return c===n?.toString()})||i[0];if(o){const a=hs.validateCaipAddress(o),{chainId:c,address:l}=hs.parseCaipAddress(a);if(Se.setProviderId(s,ms.CONNECTOR_TYPE_WALLET_CONNECT),this.caipNetworks&&g.state.activeCaipNetwork&&r?.namespace!==W.CHAIN.EVM){const u=r?.getWalletConnectProvider({caipNetworks:this.getCaipNetworks(),provider:this.universalProvider,activeCaipNetwork:g.state.activeCaipNetwork});Se.setProvider(s,u)}else Se.setProvider(s,this.universalProvider);j.setConnectorId(W.CONNECTOR_ID.WALLET_CONNECT,s),F.addConnectedNamespace(s),this.syncWalletConnectAccounts(s),await this.syncAccount({address:l,chainId:c,chainNamespace:s})}else this.setStatus("disconnected",s);this.syncConnectedWalletInfo(s),await g.setApprovedCaipNetworksData(s)});await Promise.all(e)}syncWalletConnectAccounts(e){const s=this.universalProvider?.session?.namespaces?.[e]?.accounts?.map(r=>{const{address:i}=hs.parseCaipAddress(r);return i}).filter((r,i,n)=>n.indexOf(r)===i);s&&this.setAllAccounts(s.map(r=>X.createAccount(e,r,e==="bip122"?"payment":"eoa")),e)}syncProvider({type:e,provider:s,id:r,chainNamespace:i}){Se.setProviderId(i,e),Se.setProvider(i,s),j.setConnectorId(r,i)}async syncAllAccounts(e){const s=j.getConnectorId(e);if(!s)return;const i=await this.getAdapter(e)?.getAccounts({namespace:e,id:s});i&&i.accounts.length>0&&this.setAllAccounts(i.accounts,e)}async syncAccount(e){const s=e.chainNamespace===g.state.activeChain,r=g.getCaipNetworkByNamespace(e.chainNamespace,e.chainId),{address:i,chainId:n,chainNamespace:o}=e,{chainId:a}=F.getActiveNetworkProps(),c=n||a,l=g.state.activeCaipNetwork?.name===W.UNSUPPORTED_NETWORK_NAME,u=g.getNetworkProp("supportsAllNetworks",o);if(this.setStatus("connected",o),!(l&&!u)&&c){let h=this.getCaipNetworks().find(w=>w.id.toString()===c.toString()),d=this.getCaipNetworks().find(w=>w.chainNamespace===o);if(!u&&!h&&!d){const w=this.getApprovedCaipNetworkIds()||[],m=w.find(y=>hs.parseCaipNetworkId(y)?.chainId===c.toString()),f=w.find(y=>hs.parseCaipNetworkId(y)?.chainNamespace===o);h=this.getCaipNetworks().find(y=>y.caipNetworkId===m),d=this.getCaipNetworks().find(y=>y.caipNetworkId===f||"deprecatedCaipNetworkId"in y&&y.deprecatedCaipNetworkId===f)}const p=h||d;p?.chainNamespace===g.state.activeChain?O.state.enableNetworkSwitch&&!O.state.allowUnsupportedChain&&g.state.activeCaipNetwork?.name===W.UNSUPPORTED_NETWORK_NAME?g.showUnsupportedChainUI():this.setCaipNetwork(p):s||r&&this.setCaipNetworkOfNamespace(r,o),this.syncConnectedWalletInfo(o),Ca.isLowerCaseMatch(i,z.state.address)||this.syncAccountInfo(i,p?.id,o),s?await this.syncBalance({address:i,chainId:p?.id,chainNamespace:o}):await this.syncBalance({address:i,chainId:r?.id,chainNamespace:o})}}async syncAccountInfo(e,s,r){const i=this.getCaipAddress(r),n=s||i?.split(":")[1];if(!n)return;const o=`${r}:${n}:${e}`;this.setCaipAddress(o,r),await this.syncIdentity({address:e,chainId:n,chainNamespace:r})}async syncReownName(e,s){try{const r=await this.getReownName(e);if(r[0]){const i=r[0];this.setProfileName(i.name,s)}else this.setProfileName(null,s)}catch{this.setProfileName(null,s)}}syncConnectedWalletInfo(e){const s=j.getConnectorId(e),r=Se.getProviderId(e);if(r===ms.CONNECTOR_TYPE_ANNOUNCED||r===ms.CONNECTOR_TYPE_INJECTED){if(s){const i=this.getConnectors().find(n=>n.id===s);if(i){const{info:n,name:o,imageUrl:a}=i,c=a||this.getConnectorImage(i);this.setConnectedWalletInfo({name:o,icon:c,...n},e)}}}else if(r===ms.CONNECTOR_TYPE_WALLET_CONNECT){const i=Se.getProvider(e);i?.session&&this.setConnectedWalletInfo({...i.session.peer.metadata,name:i.session.peer.metadata.name,icon:i.session.peer.metadata.icons?.[0]},e)}else if(s&&s===W.CONNECTOR_ID.COINBASE){const i=this.getConnectors().find(n=>n.id===W.CONNECTOR_ID.COINBASE);this.setConnectedWalletInfo({name:"Coinbase Wallet",icon:this.getConnectorImage(i)},e)}}async syncBalance(e){!Jl.getNetworksByNamespace(this.getCaipNetworks(),e.chainNamespace).find(r=>r.id.toString()===e.chainId?.toString())||!e.chainId||await this.updateNativeBalance(e.address,e.chainId,e.chainNamespace)}async ready(){await this.readyPromise}async updateNativeBalance(e,s,r){const i=this.getAdapter(r),n=g.getCaipNetworkByNamespace(r,s);if(i){const o=await i.getBalance({address:e,chainId:s,caipNetwork:n,tokens:this.options.tokens});return this.setBalance(o.balance,o.symbol,r),o}}async initializeUniversalAdapter(){const e=hI.createLogger((r,...i)=>{r&&this.handleAlertError(r),console.error(...i)}),s={projectId:this.options?.projectId,metadata:{name:this.options?.metadata?this.options?.metadata.name:"",description:this.options?.metadata?this.options?.metadata.description:"",url:this.options?.metadata?this.options?.metadata.url:"",icons:this.options?.metadata?this.options?.metadata.icons:[""]},logger:e};O.setManualWCControl(!!this.options?.manualWCControl),this.universalProvider=this.options.universalProvider??await cI.init(s),this.listenWalletConnect()}listenWalletConnect(){this.universalProvider&&(this.universalProvider.on("display_uri",e=>{Y.setUri(e)}),this.universalProvider.on("connect",Y.finalizeWcConnection),this.universalProvider.on("disconnect",()=>{this.chainNamespaces.forEach(e=>{this.resetAccount(e)}),Y.resetWcConnection()}),this.universalProvider.on("chainChanged",e=>{const s=this.getCaipNetworks().find(i=>i.id==e),r=this.getCaipNetwork();if(!s){this.setUnsupportedNetwork(e);return}r?.id!==s?.id&&this.setCaipNetwork(s)}),this.universalProvider.on("session_event",e=>{if(yn.isSessionEventData(e)){const{name:s,data:r}=e.params.event;s==="accountsChanged"&&Array.isArray(r)&&X.isCaipAddress(r[0])&&this.syncAccount(hs.parseCaipAddress(r[0]))}}))}createUniversalProvider(){return!this.universalProviderInitPromise&&X.isClient()&&this.options?.projectId&&(this.universalProviderInitPromise=this.initializeUniversalAdapter()),this.universalProviderInitPromise}async getUniversalProvider(){if(!this.universalProvider)try{await this.createUniversalProvider()}catch(e){Pe.sendEvent({type:"error",event:"INTERNAL_SDK_ERROR",properties:{errorType:"UniversalProviderInitError",errorMessage:e instanceof Error?e.message:"Unknown",uncaught:!1}}),console.error("AppKit:getUniversalProvider - Cannot create provider",e)}return this.universalProvider}handleAlertError(e){const s=Object.entries(Cr.UniversalProviderErrors).find(([,{message:a}])=>e.message.includes(a)),[r,i]=s??[],{message:n,alertErrorKey:o}=i??{};if(r&&n&&!this.reportedAlertErrors[r]){const a=Cr.ALERT_ERRORS[o];a&&(Ls.open(a,"error"),this.reportedAlertErrors[r]=!0)}}getAdapter(e){if(e)return this.chainAdapters?.[e]}createAdapter(e){if(!e)return;const s=e.namespace;if(!s)return;this.createClients();const r=e;r.namespace=s,r.construct({namespace:s,projectId:this.options?.projectId,networks:this.getCaipNetworks()}),this.chainNamespaces.includes(s)||this.chainNamespaces.push(s),this.chainAdapters&&(this.chainAdapters[s]=r)}async open(e){if(await this.injectModalUi(),e?.uri&&Y.setUri(e.uri),e?.arguments)switch(e?.view){case"Swap":return We.open({...e,data:{swap:e.arguments}})}return We.open(e)}async close(){await this.injectModalUi(),We.close()}setLoading(e,s){We.setLoading(e,s)}async disconnect(e){await Y.disconnect(e)}getSIWX(){return O.state.siwx}getError(){return""}getChainId(){return g.state.activeCaipNetwork?.id}async switchNetwork(e){const s=this.getCaipNetworks().find(r=>r.id===e.id);if(!s){Ls.open(Cr.ALERT_ERRORS.SWITCH_NETWORK_NOT_FOUND,"error");return}await g.switchActiveNetwork(s)}getWalletProvider(){return g.state.activeChain?Se.state.providers[g.state.activeChain]:null}getWalletProviderType(){return Se.getProviderId(g.state.activeChain)}subscribeProviders(e){return Se.subscribeProviders(e)}getThemeMode(){return mt.state.themeMode}getThemeVariables(){return mt.state.themeVariables}setThemeMode(e){mt.setThemeMode(e),Mh(mt.state.themeMode)}setTermsConditionsUrl(e){O.setTermsConditionsUrl(e)}setPrivacyPolicyUrl(e){O.setPrivacyPolicyUrl(e)}setThemeVariables(e){mt.setThemeVariables(e),RI(mt.state.themeVariables)}subscribeTheme(e){return mt.subscribe(e)}getWalletInfo(){return z.state.connectedWalletInfo}getAccount(e){const s=j.getAuthConnector(e),r=g.getAccountData(e),i=g.state.activeChain,n=F.getConnectedConnectorId(e||i);if(r)return{allAccounts:r.allAccounts,caipAddress:r.caipAddress,address:X.getPlainAddress(r.caipAddress),isConnected:!!r.caipAddress,status:r.status,embeddedWalletInfo:s&&n===W.CONNECTOR_ID.AUTH?{user:r.user?{...r.user,username:F.getConnectedSocialUsername()}:void 0,authProvider:r.socialProvider||"email",accountType:r.preferredAccountTypes?.[e||i],isSmartAccountDeployed:!!r.smartAccountDeployed}:void 0}}subscribeAccount(e,s){const r=()=>{const i=this.getAccount(s);i&&e(i)};s?g.subscribeChainProp("accountState",r,s):g.subscribe(r),j.subscribe(r)}subscribeNetwork(e){return g.subscribe(({activeCaipNetwork:s})=>{e({caipNetwork:s,chainId:s?.id,caipNetworkId:s?.caipNetworkId})})}subscribeWalletInfo(e){return z.subscribeKey("connectedWalletInfo",e)}subscribeShouldUpdateToAddress(e){z.subscribeKey("shouldUpdateToAddress",e)}subscribeCaipNetworkChange(e){g.subscribeKey("activeCaipNetwork",e)}getState(){return Is.state}subscribeState(e){return Is.subscribe(e)}showErrorMessage(e){Lt.showError(e)}showSuccessMessage(e){Lt.showSuccess(e)}getEvent(){return{...Pe.state}}subscribeEvents(e){return Pe.subscribe(e)}replace(e){re.replace(e)}redirect(e){re.push(e)}popTransactionStack(e){re.popTransactionStack(e)}isOpen(){return We.state.open}isTransactionStackEmpty(){return re.state.transactionStack.length===0}static getInstance(){return this.instance}updateFeatures(e){O.setFeatures(e)}updateRemoteFeatures(e){O.setRemoteFeatures(e)}updateOptions(e){const r={...O.state||{},...e};O.setOptions(r)}setConnectMethodsOrder(e){O.setConnectMethodsOrder(e)}setWalletFeaturesOrder(e){O.setWalletFeaturesOrder(e)}setCollapseWallets(e){O.setCollapseWallets(e)}setSocialsOrder(e){O.setSocialsOrder(e)}getConnectMethodsOrder(){return ra.getConnectOrderMethod(O.state.features,j.getConnectors())}addNetwork(e,s){if(this.chainAdapters&&!this.chainAdapters[e])throw new Error(`Adapter for namespace ${e} doesn't exist`);const r=this.extendCaipNetwork(s,this.options);this.getCaipNetworks().find(i=>i.id===r.id)||g.addNetwork(r)}removeNetwork(e,s){if(this.chainAdapters&&!this.chainAdapters[e])throw new Error(`Adapter for namespace ${e} doesn't exist`);this.getCaipNetworks().find(i=>i.id===s)&&g.removeNetwork(e,s)}}let Vl=!1;class jh extends qI{async open(e){j.isConnected()||await super.open(e)}async close(){await super.close(),this.options.manualWCControl&&Y.finalizeWcConnection()}async syncIdentity(e){return Promise.resolve()}async syncBalance(e){return Promise.resolve()}async injectModalUi(){if(!Vl&&X.isClient()){if(await Eo(()=>import("./basic-CrTlCsjy.js"),__vite__mapDeps([6,7,1,2,3,4,5])),await Eo(()=>import("./w3m-modal-DsvQ9IuK.js"),__vite__mapDeps([8,7,1,2,3,4,5])),!document.querySelector("w3m-modal")){const s=document.createElement("w3m-modal");!O.state.disableAppend&&!O.state.enableEmbedded&&document.body.insertAdjacentElement("beforeend",s)}Vl=!0}}}const FI="1.7.8";function zI(t){return new jh({...t,basic:!0,sdkVersion:`html-core-${FI}`})}const _1=Object.freeze(Object.defineProperty({__proto__:null,AppKit:jh,createAppKit:zI},Symbol.toStringTag,{value:"Module"}));export{Ls as A,Lt as B,g as C,V as D,Pe as E,C1 as F,X as G,bf as H,W as I,xh as J,ia as K,ze as L,We as M,qr as N,O,gn as P,Y as Q,re as R,wi as S,mt as T,F as U,ve as V,ra as W,_1 as X,Ka as a,E1 as b,u1 as c,lf as d,l1 as e,Tn as f,p1 as g,d1 as h,Ct as i,Qe as j,Tr as k,I1 as l,wn as m,N1 as n,A1 as o,_e as p,Ql as q,h1 as r,et as s,lu as t,Dt as u,pI as v,vf as w,v1 as x,j as y,z};
diff --git a/client2/build/assets/create-FASO7PVG-D_rvSpre.js b/client2/build/assets/create-FASO7PVG-D_rvSpre.js
deleted file mode 100644
index 727abb697..000000000
--- a/client2/build/assets/create-FASO7PVG-D_rvSpre.js
+++ /dev/null
@@ -1 +0,0 @@
-var a="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2048%2048%22%3E%3Cpath%20fill%3D%22url(%23a)%22%20d%3D%22M0%2016c0-5.6%200-8.4%201.09-10.54a10%2010%200%200%201%204.37-4.37C7.6%200%2010.4%200%2016%200h16c5.6%200%208.4%200%2010.54%201.09a10%2010%200%200%201%204.37%204.37C48%207.6%2048%2010.4%2048%2016v16c0%205.6%200%208.4-1.09%2010.54a10.001%2010.001%200%200%201-4.37%204.37C40.4%2048%2037.6%2048%2032%2048H16c-5.6%200-8.4%200-10.54-1.09a10%2010%200%200%201-4.37-4.37C0%2040.4%200%2037.6%200%2032V16Z%22%2F%3E%3Cpath%20fill%3D%22url(%23b)%22%20fill-opacity%3D%22.7%22%20d%3D%22M0%2016c0-5.6%200-8.4%201.09-10.54a10%2010%200%200%201%204.37-4.37C7.6%200%2010.4%200%2016%200h16c5.6%200%208.4%200%2010.54%201.09a10%2010%200%200%201%204.37%204.37C48%207.6%2048%2010.4%2048%2016v16c0%205.6%200%208.4-1.09%2010.54a10.001%2010.001%200%200%201-4.37%204.37C40.4%2048%2037.6%2048%2032%2048H16c-5.6%200-8.4%200-10.54-1.09a10%2010%200%200%201-4.37-4.37C0%2040.4%200%2037.6%200%2032V16Z%22%20style%3D%22mix-blend-mode%3Ascreen%22%2F%3E%3Cpath%20fill%3D%22%23000%22%20fill-opacity%3D%22.04%22%20fill-rule%3D%22evenodd%22%20d%3D%22M32%201H16c-2.817%200-4.87%200-6.487.133-1.605.131-2.694.387-3.599.848a9%209%200%200%200-3.933%203.933c-.461.905-.717%201.994-.848%203.6C1%2011.13%201%2013.183%201%2016v16c0%202.817%200%204.87.133%206.486.131%201.606.387%202.695.848%203.6a9%209%200%200%200%203.933%203.933c.905.461%201.994.717%203.6.848C11.13%2047%2013.183%2047%2016%2047h16c2.817%200%204.87%200%206.486-.133%201.606-.131%202.695-.387%203.6-.848a9%209%200%200%200%203.933-3.933c.461-.905.717-1.994.848-3.6C47%2036.87%2047%2034.816%2047%2032V16c0-2.817%200-4.87-.133-6.487-.131-1.605-.387-2.694-.848-3.599a9%209%200%200%200-3.933-3.933c-.905-.461-1.994-.717-3.6-.848C36.87%201%2034.816%201%2032%201ZM1.09%205.46C0%207.6%200%2010.4%200%2016v16c0%205.6%200%208.4%201.09%2010.54a10%2010%200%200%200%204.37%204.37C7.6%2048%2010.4%2048%2016%2048h16c5.6%200%208.4%200%2010.54-1.09a10.001%2010.001%200%200%200%204.37-4.37C48%2040.4%2048%2037.6%2048%2032V16c0-5.6%200-8.4-1.09-10.54a10%2010%200%200%200-4.37-4.37C40.4%200%2037.6%200%2032%200H16C10.4%200%207.6%200%205.46%201.09a10%2010%200%200%200-4.37%204.37Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20fill%3D%22%23000%22%20fill-opacity%3D%22.12%22%20d%3D%22M24%2013a1.5%201.5%200%200%200-1.5%201.5v8.2c0%20.28%200%20.42-.055.527a.5.5%200%200%201-.218.218c-.107.055-.247.055-.527.055h-8.2a1.5%201.5%200%200%200%200%203h8.2c.28%200%20.42%200%20.527.055a.5.5%200%200%201%20.218.218c.055.107.055.247.055.527v8.2a1.5%201.5%200%200%200%203%200v-8.2c0-.28%200-.42.055-.527a.5.5%200%200%201%20.218-.218c.107-.055.247-.055.527-.055h8.2a1.5%201.5%200%200%200%200-3h-8.2c-.28%200-.42%200-.527-.055a.5.5%200%200%201-.218-.218c-.055-.107-.055-.247-.055-.527v-8.2A1.5%201.5%200%200%200%2024%2013Z%22%2F%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M24%2012a1.5%201.5%200%200%200-1.5%201.5v8.2c0%20.28%200%20.42-.055.527a.5.5%200%200%201-.218.218c-.107.055-.247.055-.527.055h-8.2a1.5%201.5%200%200%200%200%203h8.2c.28%200%20.42%200%20.527.055a.5.5%200%200%201%20.218.218c.055.107.055.247.055.527v8.2a1.5%201.5%200%200%200%203%200v-8.2c0-.28%200-.42.055-.527a.5.5%200%200%201%20.218-.218c.107-.055.247-.055.527-.055h8.2a1.5%201.5%200%200%200%200-3h-8.2c-.28%200-.42%200-.527-.055a.5.5%200%200%201-.218-.218c-.055-.107-.055-.247-.055-.527v-8.2A1.5%201.5%200%200%200%2024%2012Z%22%2F%3E%3Cdefs%3E%3CradialGradient%20id%3D%22a%22%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221%22%20gradientTransform%3D%22rotate(-40.077%2073.374%2058.603)%20scale(94.7484)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%22.276%22%20stop-color%3D%22%2320FF4D%22%2F%3E%3Cstop%20offset%3D%22.464%22%20stop-color%3D%22%231499FF%22%2F%3E%3Cstop%20offset%3D%22.755%22%20stop-color%3D%22%23FF6FC5%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23BC67FF%22%2F%3E%3C%2FradialGradient%3E%3CradialGradient%20id%3D%22b%22%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221%22%20gradientTransform%3D%22rotate(45%205.303%20-12.803)%20scale(78.4889)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22red%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2300A3FF%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E";export{a as default};
diff --git a/client2/build/assets/cronos-HJPAQTAE-BEOvlOC4.js b/client2/build/assets/cronos-HJPAQTAE-BEOvlOC4.js
deleted file mode 100644
index d6cb23827..000000000
--- a/client2/build/assets/cronos-HJPAQTAE-BEOvlOC4.js
+++ /dev/null
@@ -1 +0,0 @@
-var l="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2228%22%20height%3D%2228%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22A%22%20x1%3D%22-18.275%25%22%20x2%3D%2284.959%25%22%20y1%3D%228.219%25%22%20y2%3D%2271.393%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23002d74%22%2F%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23001246%22%2F%3E%3C%2FlinearGradient%3E%3Ccircle%20id%3D%22B%22%20cx%3D%2214%22%20cy%3D%2214%22%20r%3D%2214%22%2F%3E%3C%2Fdefs%3E%3Cg%20fill-rule%3D%22evenodd%22%3E%3Cmask%20id%3D%22C%22%20fill%3D%22%23fff%22%3E%3Cuse%20xlink%3Ahref%3D%22%23B%22%2F%3E%3C%2Fmask%3E%3Cg%20fill-rule%3D%22nonzero%22%3E%3Cpath%20fill%3D%22url(%23A)%22%20d%3D%22M-1.326-1.326h30.651v30.651H-1.326z%22%20mask%3D%22url(%23C)%22%2F%3E%3Cg%20fill%3D%22%23fff%22%3E%3Cpath%20d%3D%22M14.187%206L7%2010.175v8.35l7.187%204.175%207.175-4.175v-8.35L14.187%206zm5.046%2011.286l-5.058%202.936-5.046-2.936v-5.871l5.058-2.936%205.046%202.936v5.871z%22%2F%3E%3Cpath%20d%3D%22M14.187%2022.7l7.175-4.175v-8.35L14.187%206v2.479l5.046%202.936v5.883l-5.058%202.936V22.7h.012z%22%2F%3E%3Cpath%20d%3D%22M14.175%206L7%2010.175v8.35l7.175%204.175v-2.479l-5.046-2.936v-5.883l5.046-2.924V6zm3.36%2010.299l-3.348%201.949-3.36-1.949v-3.898l3.36-1.949%203.348%201.949-1.399.818-1.961-1.143-1.949%201.143v2.274l1.961%201.143%201.961-1.143%201.387.806z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E";export{l as default};
diff --git a/client2/build/assets/cursor-B4Vj3oX6.js b/client2/build/assets/cursor-B4Vj3oX6.js
deleted file mode 100644
index e03f2cbab..000000000
--- a/client2/build/assets/cursor-B4Vj3oX6.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import{b as o}from"./core-Cywc921C.js";import"./index-B6P9GsMd.js";import"./index.es-MB-v37Rm.js";import"./events-DQ172AOg.js";import"./index-nibyPLVP.js";const l=o` `;export{l as cursorSvg};
diff --git a/client2/build/assets/cursor-transparent-DmXjqIE-.js b/client2/build/assets/cursor-transparent-DmXjqIE-.js
deleted file mode 100644
index 02b324b6d..000000000
--- a/client2/build/assets/cursor-transparent-DmXjqIE-.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import{b as o}from"./core-Cywc921C.js";import"./index-B6P9GsMd.js";import"./index.es-MB-v37Rm.js";import"./events-DQ172AOg.js";import"./index-nibyPLVP.js";const e=o` `;export{e as cursorTransparentSvg};
diff --git a/client2/build/assets/d9960bdb814135603341883999ea9dc547d831b8-De6R2HxP.png b/client2/build/assets/d9960bdb814135603341883999ea9dc547d831b8-De6R2HxP.png
deleted file mode 100644
index c71293e14..000000000
Binary files a/client2/build/assets/d9960bdb814135603341883999ea9dc547d831b8-De6R2HxP.png and /dev/null differ
diff --git a/client2/build/assets/de_DE-P43L3PR7-pJRS3eyz.js b/client2/build/assets/de_DE-P43L3PR7-pJRS3eyz.js
deleted file mode 100644
index cb6862648..000000000
--- a/client2/build/assets/de_DE-P43L3PR7-pJRS3eyz.js
+++ /dev/null
@@ -1,1427 +0,0 @@
-var e=`{
- "connect_wallet": {
- "label": "Wallet verbinden",
- "wrong_network": {
- "label": "Falsches Netzwerk"
- }
- },
- "intro": {
- "title": "Was ist ein Wallet?",
- "description": "Ein Wallet wird verwendet, um digitale Assets zu senden, empfangen, speichern und anzeigen. Es ist auch eine neue Möglichkeit, sich anzumelden, ohne auf jeder Website neue Konten und Passwörter erstellen zu müssen.",
- "digital_asset": {
- "title": "Ein Zuhause für Ihre digitalen Vermögenswerte",
- "description": "Wallets werden verwendet, um digitale Assets wie Ethereum und NFTs zu senden, empfangen, speichern und anzeigen."
- },
- "login": {
- "title": "Eine neue Möglichkeit, sich anzumelden",
- "description": "Anstatt auf jeder Website neue Konten und Passwörter zu erstellen, verbinden Sie einfach Ihr Wallet."
- },
- "get": {
- "label": "Ein Wallet holen"
- },
- "learn_more": {
- "label": "Mehr erfahren"
- }
- },
- "sign_in": {
- "label": "Verifizieren Sie Ihr Konto",
- "description": "Um die Verbindung abzuschließen, müssen Sie eine Nachricht in Ihrem Wallet signieren, um zu verifizieren, dass Sie der Inhaber dieses Kontos sind.",
- "message": {
- "send": "Nachricht signieren",
- "preparing": "Nachricht wird vorbereitet...",
- "cancel": "Abbrechen",
- "preparing_error": "Fehler beim Vorbereiten der Nachricht, bitte erneut versuchen!"
- },
- "signature": {
- "waiting": "Warten auf Signatur...",
- "verifying": "Signatur wird überprüft...",
- "signing_error": "Fehler beim Signieren der Nachricht, bitte erneut versuchen!",
- "verifying_error": "Fehler bei der Überprüfung der Signatur, bitte erneut versuchen!",
- "oops_error": "Oops, etwas ist schiefgelaufen!"
- }
- },
- "connect": {
- "label": "Verbinden",
- "title": "Ein Wallet verbinden",
- "new_to_ethereum": {
- "description": "Neu bei Ethereum-Wallets?",
- "learn_more": {
- "label": "Mehr erfahren"
- }
- },
- "learn_more": {
- "label": "Mehr erfahren"
- },
- "recent": "Zuletzt",
- "status": {
- "opening": "%{wallet} wird geöffnet...",
- "connecting": "Verbinden",
- "connect_mobile": "Fahren Sie in %{wallet} fort",
- "not_installed": "%{wallet} ist nicht installiert",
- "not_available": "%{wallet} ist nicht verfügbar",
- "confirm": "Bestätigen Sie die Verbindung in der Erweiterung",
- "confirm_mobile": "Akzeptieren Sie die Verbindungsanfrage im Wallet"
- },
- "secondary_action": {
- "get": {
- "description": "Haben Sie kein %{wallet}?",
- "label": "HOLEN"
- },
- "install": {
- "label": "INSTALLIEREN"
- },
- "retry": {
- "label": "ERNEUT VERSUCHEN"
- }
- },
- "walletconnect": {
- "description": {
- "full": "Benötigen Sie das offizielle WalletConnect-Modul?",
- "compact": "Benötigen Sie das WalletConnect-Modul?"
- },
- "open": {
- "label": "ÖFFNEN"
- }
- }
- },
- "connect_scan": {
- "title": "Mit %{wallet} scannen",
- "fallback_title": "Mit Ihrem Telefon scannen"
- },
- "connector_group": {
- "installed": "Installiert",
- "recommended": "Empfohlen",
- "other": "Andere",
- "popular": "Beliebt",
- "more": "Mehr",
- "others": "Andere"
- },
- "get": {
- "title": "Ein Wallet holen",
- "action": {
- "label": "HOLEN"
- },
- "mobile": {
- "description": "Mobiles Wallet"
- },
- "extension": {
- "description": "Browser-Erweiterung"
- },
- "mobile_and_extension": {
- "description": "Mobiles Wallet und Erweiterung"
- },
- "mobile_and_desktop": {
- "description": "Mobile und Desktop Wallet"
- },
- "looking_for": {
- "title": "Nicht das, wonach Sie suchen?",
- "mobile": {
- "description": "Wählen Sie auf dem Hauptbildschirm ein Wallet aus, um mit einem anderen Wallet-Anbieter zu beginnen."
- },
- "desktop": {
- "compact_description": "Wählen Sie auf dem Hauptbildschirm ein Wallet aus, um mit einem anderen Wallet-Anbieter zu beginnen.",
- "wide_description": "Wählen Sie links ein Wallet aus, um mit einem anderen Wallet-Anbieter zu beginnen."
- }
- }
- },
- "get_options": {
- "title": "Beginnen Sie mit %{wallet}",
- "short_title": "%{wallet} besorgen",
- "mobile": {
- "title": "%{wallet} für Mobilgeräte",
- "description": "Verwenden Sie das mobile Wallet, um die Welt von Ethereum zu erkunden.",
- "download": {
- "label": "App herunterladen"
- }
- },
- "extension": {
- "title": "%{wallet} für %{browser}",
- "description": "Greifen Sie direkt von Ihrem bevorzugten Webbrowser auf Ihr Wallet zu.",
- "download": {
- "label": "Zu %{browser} hinzufügen"
- }
- },
- "desktop": {
- "title": "%{wallet} für %{platform}",
- "description": "Greifen Sie nativ von Ihrem leistungsstarken Desktop auf Ihr Wallet zu.",
- "download": {
- "label": "Hinzufügen zu %{platform}"
- }
- }
- },
- "get_mobile": {
- "title": "%{wallet} installieren",
- "description": "Scannen Sie mit Ihrem Telefon, um auf iOS oder Android herunterzuladen",
- "continue": {
- "label": "Fortfahren"
- }
- },
- "get_instructions": {
- "mobile": {
- "connect": {
- "label": "Verbinden"
- },
- "learn_more": {
- "label": "Mehr erfahren"
- }
- },
- "extension": {
- "refresh": {
- "label": "Aktualisieren"
- },
- "learn_more": {
- "label": "Mehr erfahren"
- }
- },
- "desktop": {
- "connect": {
- "label": "Verbinden"
- },
- "learn_more": {
- "label": "Mehr erfahren"
- }
- }
- },
- "chains": {
- "title": "Netzwerke wechseln",
- "wrong_network": "Falsches Netzwerk erkannt, wechseln oder trennen Sie die Verbindung, um fortzufahren.",
- "confirm": "Im Wallet bestätigen",
- "switching_not_supported": "Ihr Wallet unterstützt das Wechseln von Netzwerken von %{appName} aus nicht. Versuchen Sie stattdessen, innerhalb Ihres Wallets die Netzwerke zu wechseln.",
- "switching_not_supported_fallback": "Ihr Wallet unterstützt das Wechseln von Netzwerken von dieser App aus nicht. Versuchen Sie stattdessen, innerhalb Ihres Wallets die Netzwerke zu wechseln.",
- "disconnect": "Trennen",
- "connected": "Verbunden"
- },
- "profile": {
- "disconnect": {
- "label": "Trennen"
- },
- "copy_address": {
- "label": "Adresse kopieren",
- "copied": "Kopiert!"
- },
- "explorer": {
- "label": "Mehr im Explorer ansehen"
- },
- "transactions": {
- "description": "%{appName}-Transaktionen werden hier angezeigt...",
- "description_fallback": "Ihre Transaktionen werden hier angezeigt...",
- "recent": {
- "title": "Neueste Transaktionen"
- },
- "clear": {
- "label": "Alles löschen"
- }
- }
- },
- "wallet_connectors": {
- "argent": {
- "qr_code": {
- "step1": {
- "description": "Fügen Sie Argent zu Ihrem Startbildschirm hinzu, um schneller auf Ihr Wallet zuzugreifen.",
- "title": "Öffnen Sie die Argent-App"
- },
- "step2": {
- "description": "Erstellen Sie ein Wallet und einen Benutzernamen oder importieren Sie ein bestehendes Wallet.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden.",
- "title": "Tippen Sie auf die Schaltfläche QR-Scan"
- }
- }
- },
- "berasig": {
- "extension": {
- "step1": {
- "title": "Installieren Sie die BeraSig-Erweiterung",
- "description": "Wir empfehlen, BeraSig an die Taskleiste anzuheften, um leichter auf Ihre Brieftasche zuzugreifen."
- },
- "step2": {
- "title": "Erstellen Sie eine Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "best": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die Best Wallet-App",
- "description": "Fügen Sie die Best Wallet zu Ihrem Startbildschirm hinzu, um schneller auf Ihre Wallet zuzugreifen."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Tippen Sie auf das QR-Symbol und scannen Sie",
- "description": "Tippen Sie auf das QR-Symbol auf Ihrem Startbildschirm, scannen Sie den Code und bestätigen Sie die Eingabeaufforderung, um die Verbindung herzustellen."
- }
- }
- },
- "bifrost": {
- "qr_code": {
- "step1": {
- "description": "Wir empfehlen, die Bifrost Wallet auf Ihren Startbildschirm zu legen, um schneller darauf zugreifen zu können.",
- "title": "Öffnen Sie die Bifrost Wallet-App"
- },
- "step2": {
- "description": "Erstellen oder importieren Sie ein Wallet mit Ihrer Wiederherstellungsphrase.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden.",
- "title": "Tippen Sie auf die Scan-Schaltfläche"
- }
- }
- },
- "bitget": {
- "qr_code": {
- "step1": {
- "description": "Wir empfehlen, die Bitget Wallet auf Ihren Startbildschirm zu legen, um schneller darauf zugreifen zu können.",
- "title": "Öffnen Sie die Bitget Wallet-App"
- },
- "step2": {
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden.",
- "title": "Tippen Sie auf die Scan-Schaltfläche"
- }
- },
- "extension": {
- "step1": {
- "description": "Wir empfehlen, die Bitget Wallet in Ihre Taskleiste zu heften, um schneller auf Ihr Wallet zugreifen zu können.",
- "title": "Installieren Sie die Bitget Wallet-Erweiterung"
- },
- "step2": {
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden.",
- "title": "Aktualisieren Sie Ihren Browser"
- }
- }
- },
- "bitski": {
- "extension": {
- "step1": {
- "description": "Wir empfehlen, Bitski in Ihre Taskleiste zu heften, um schneller auf Ihr Wallet zugreifen zu können.",
- "title": "Installieren Sie die Bitski-Erweiterung"
- },
- "step2": {
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden.",
- "title": "Aktualisieren Sie Ihren Browser"
- }
- }
- },
- "bitverse": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die Bitverse Wallet App",
- "description": "Fügen Sie die Bitverse Wallet Ihrem Startbildschirm hinzu, um schneller auf Ihr Wallet zuzugreifen."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Tippen Sie auf das QR-Symbol und scannen Sie",
- "description": "Tippen Sie auf das QR-Symbol auf Ihrem Startbildschirm, scannen Sie den Code und bestätigen Sie die Eingabeaufforderung, um die Verbindung herzustellen."
- }
- }
- },
- "bloom": {
- "desktop": {
- "step1": {
- "title": "Öffnen Sie die Bloom Wallet-App",
- "description": "Wir empfehlen, Bloom Wallet auf Ihrem Startbildschirm abzulegen, um schneller darauf zugreifen zu können."
- },
- "step2": {
- "description": "Erstellen oder importieren Sie ein Wallet mit Ihrer Wiederherstellungsphrase.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Nachdem Sie ein Wallet haben, klicken Sie auf „Verbinden“, um über Bloom eine Verbindung herzustellen. Eine Verbindungsmeldung in der App wird angezeigt, um die Verbindung zu bestätigen.",
- "title": "Klicken Sie auf Verbinden"
- }
- }
- },
- "bybit": {
- "qr_code": {
- "step1": {
- "description": "Wir empfehlen, Bybit auf Ihrem Startbildschirm abzulegen, um schneller darauf zuzugreifen.",
- "title": "Öffnen Sie die Bybit App"
- },
- "step2": {
- "description": "Sie können Ihr Wallet ganz einfach mit unserer Backup-Funktion auf Ihrem Telefon sichern.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden.",
- "title": "Tippen Sie auf die Scan-Schaltfläche"
- }
- },
- "extension": {
- "step1": {
- "description": "Klicken Sie oben rechts in Ihrem Browser und heften Sie Bybit Wallet für einfachen Zugriff an.",
- "title": "Installieren Sie die Bybit Wallet Erweiterung"
- },
- "step2": {
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Sobald Sie das Bybit Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden.",
- "title": "Aktualisieren Sie Ihren Browser"
- }
- }
- },
- "binance": {
- "qr_code": {
- "step1": {
- "description": "Wir empfehlen, Binance auf Ihrem Startbildschirm abzulegen, um schneller darauf zuzugreifen.",
- "title": "Öffnen Sie die Binance App"
- },
- "step2": {
- "description": "Sie können Ihr Wallet ganz einfach mit unserer Backup-Funktion auf Ihrem Telefon sichern.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden.",
- "title": "Tippen Sie auf die WalletConnect-Schaltfläche"
- }
- }
- },
- "coin98": {
- "qr_code": {
- "step1": {
- "description": "Wir empfehlen, die Coin98 Wallet auf Ihren Startbildschirm zu legen, um schneller darauf zugreifen zu können.",
- "title": "Öffnen Sie die Coin98 Wallet-App"
- },
- "step2": {
- "description": "Sie können Ihr Wallet ganz einfach mit unserer Backup-Funktion auf Ihrem Telefon sichern.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden.",
- "title": "Tippen Sie auf die WalletConnect-Schaltfläche"
- }
- },
- "extension": {
- "step1": {
- "description": "Klicken Sie oben rechts in Ihrem Browser und heften Sie die Coin98 Wallet an, um einen einfachen Zugriff zu ermöglichen.",
- "title": "Installieren Sie die Coin98 Wallet-Erweiterung"
- },
- "step2": {
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Sobald Sie die Coin98 Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden.",
- "title": "Aktualisieren Sie Ihren Browser"
- }
- }
- },
- "coinbase": {
- "qr_code": {
- "step1": {
- "description": "Wir empfehlen, die Coinbase Wallet auf Ihren Startbildschirm zu legen, um schneller darauf zugreifen zu können.",
- "title": "Öffnen Sie die Coinbase Wallet-App"
- },
- "step2": {
- "description": "Sie können Ihr Wallet problemlos mit der Cloud-Backup-Funktion sichern.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden.",
- "title": "Tippen Sie auf die Scan-Schaltfläche"
- }
- },
- "extension": {
- "step1": {
- "description": "Wir empfehlen, die Coinbase Wallet in Ihre Taskleiste zu heften, um schneller auf Ihr Wallet zugreifen zu können.",
- "title": "Installieren Sie die Coinbase Wallet-Erweiterung"
- },
- "step2": {
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden.",
- "title": "Aktualisieren Sie Ihren Browser"
- }
- }
- },
- "compass": {
- "extension": {
- "step1": {
- "description": "Wir empfehlen, die Compass Wallet an Ihre Taskleiste zu heften, um schneller auf Ihr Wallet zuzugreifen.",
- "title": "Installieren Sie die Compass Wallet Erweiterung"
- },
- "step2": {
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden.",
- "title": "Aktualisieren Sie Ihren Browser"
- }
- }
- },
- "core": {
- "qr_code": {
- "step1": {
- "description": "Wir empfehlen, Core auf Ihren Startbildschirm zu legen, um schneller auf Ihr Wallet zuzugreifen.",
- "title": "Öffnen Sie die Core-App"
- },
- "step2": {
- "description": "Sie können Ihr Wallet ganz einfach mit unserer Backup-Funktion auf Ihrem Telefon sichern.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden.",
- "title": "Tippen Sie auf die WalletConnect-Schaltfläche"
- }
- },
- "extension": {
- "step1": {
- "description": "Wir empfehlen, Core an Ihre Taskleiste anzuheften, um schneller auf Ihr Wallet zugreifen zu können.",
- "title": "Installieren Sie die Core-Erweiterung"
- },
- "step2": {
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden.",
- "title": "Aktualisieren Sie Ihren Browser"
- }
- }
- },
- "fox": {
- "qr_code": {
- "step1": {
- "description": "Wir empfehlen, FoxWallet auf Ihrem Startbildschirm zu platzieren, um schnelleren Zugriff zu erhalten.",
- "title": "Öffnen Sie die FoxWallet-App"
- },
- "step2": {
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden.",
- "title": "Tippen Sie auf die Scan-Schaltfläche"
- }
- }
- },
- "frontier": {
- "qr_code": {
- "step1": {
- "description": "Wir empfehlen, Frontier Wallet auf Ihrem Startbildschirm zu platzieren, um schnelleren Zugriff zu erhalten.",
- "title": "Öffnen Sie die Frontier Wallet-App"
- },
- "step2": {
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden.",
- "title": "Tippen Sie auf die Scan-Schaltfläche"
- }
- },
- "extension": {
- "step1": {
- "description": "Wir empfehlen, Frontier Wallet an Ihre Taskleiste anzuheften, um schneller auf Ihr Wallet zugreifen zu können.",
- "title": "Installieren Sie die Frontier Wallet-Erweiterung"
- },
- "step2": {
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden.",
- "title": "Aktualisieren Sie Ihren Browser"
- }
- }
- },
- "im_token": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die imToken-App",
- "description": "Platzieren Sie die imToken-App auf Ihrem Startbildschirm für schnelleren Zugriff auf Ihr Wallet."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Tippen Sie auf das Scanner-Symbol in der oberen rechten Ecke",
- "description": "Wählen Sie Neue Verbindung, dann scannen Sie den QR-Code und bestätigen Sie die Eingabeaufforderung, um die Verbindung herzustellen."
- }
- }
- },
- "iopay": {
- "qr_code": {
- "step1": {
- "description": "Wir empfehlen, ioPay auf Ihrem Startbildschirm abzulegen, um schneller darauf zuzugreifen.",
- "title": "Öffnen Sie die ioPay App"
- },
- "step2": {
- "description": "Sie können Ihr Wallet ganz einfach mit unserer Backup-Funktion auf Ihrem Telefon sichern.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden.",
- "title": "Tippen Sie auf die WalletConnect-Schaltfläche"
- }
- }
- },
- "kaikas": {
- "extension": {
- "step1": {
- "description": "Wir empfehlen, Kaikas an Ihre Taskleiste zu heften, um schneller auf Ihr Wallet zuzugreifen.",
- "title": "Installieren Sie die Kaikas Erweiterung"
- },
- "step2": {
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden.",
- "title": "Aktualisieren Sie Ihren Browser"
- }
- },
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die Kaikas App",
- "description": "Legen Sie die Kaikas App auf Ihrem Startbildschirm ab, um schneller auf Ihr Wallet zuzugreifen."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Tippen Sie auf das Scanner-Symbol in der oberen rechten Ecke",
- "description": "Wählen Sie Neue Verbindung, dann scannen Sie den QR-Code und bestätigen Sie die Eingabeaufforderung, um die Verbindung herzustellen."
- }
- }
- },
- "kaia": {
- "extension": {
- "step1": {
- "description": "Wir empfehlen, Kaia an Ihre Taskleiste zu heften, um schneller auf Ihr Wallet zuzugreifen.",
- "title": "Installieren Sie die Kaia Erweiterung"
- },
- "step2": {
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden.",
- "title": "Aktualisieren Sie Ihren Browser"
- }
- },
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die Kaia-App",
- "description": "Legen Sie die Kaia-App auf Ihren Startbildschirm für schnelleren Zugriff auf Ihre Wallet."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Tippen Sie auf das Scanner-Symbol in der oberen rechten Ecke",
- "description": "Wählen Sie Neue Verbindung, dann scannen Sie den QR-Code und bestätigen Sie die Eingabeaufforderung, um die Verbindung herzustellen."
- }
- }
- },
- "kraken": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die Kraken Wallet App",
- "description": "Fügen Sie die Kraken Wallet Ihrem Startbildschirm hinzu, um schneller auf Ihr Wallet zuzugreifen."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Tippen Sie auf das QR-Symbol und scannen Sie",
- "description": "Tippen Sie auf das QR-Symbol auf Ihrem Startbildschirm, scannen Sie den Code und bestätigen Sie die Eingabeaufforderung, um die Verbindung herzustellen."
- }
- }
- },
- "kresus": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die Kresus Wallet App",
- "description": "Fügen Sie die Kresus Wallet Ihrem Startbildschirm hinzu, um schneller auf Ihr Wallet zuzugreifen."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Tippen Sie auf das QR-Symbol und scannen Sie",
- "description": "Tippen Sie auf das QR-Symbol auf Ihrem Startbildschirm, scannen Sie den Code und bestätigen Sie die Eingabeaufforderung, um die Verbindung herzustellen."
- }
- }
- },
- "magicEden": {
- "extension": {
- "step1": {
- "title": "Installieren Sie die Magic Eden Erweiterung",
- "description": "Wir empfehlen, Magic Eden an Ihre Taskleiste zu heften, um einfacher auf Ihr Wallet zuzugreifen."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihre Wallet auf sichere Weise sichern. Teilen Sie niemals Ihren geheimen Wiederherstellungssatz mit anderen."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "metamask": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die MetaMask-App",
- "description": "Wir empfehlen, MetaMask auf Ihrem Startbildschirm zu platzieren, um schnelleren Zugriff zu erhalten."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Tippen Sie auf die Scan-Schaltfläche",
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden."
- }
- },
- "extension": {
- "step1": {
- "title": "Installieren Sie die MetaMask-Erweiterung",
- "description": "Wir empfehlen, MetaMask an Ihre Taskleiste anzuheften, um schneller auf Ihr Wallet zugreifen zu können."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "nestwallet": {
- "extension": {
- "step1": {
- "title": "Installieren Sie die NestWallet Erweiterung",
- "description": "Wir empfehlen, die NestWallet an Ihre Taskleiste zu heften, um schneller auf Ihr Wallet zuzugreifen."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "okx": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die OKX Wallet-App",
- "description": "Wir empfehlen, OKX Wallet auf Ihrem Startbildschirm zu platzieren, um schnelleren Zugriff zu erhalten."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Tippen Sie auf die Scan-Schaltfläche",
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden."
- }
- },
- "extension": {
- "step1": {
- "title": "Installieren Sie die OKX Wallet-Erweiterung",
- "description": "Wir empfehlen, OKX Wallet an Ihre Taskleiste anzuheften, um schneller auf Ihr Wallet zugreifen zu können."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "omni": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die Omni-App",
- "description": "Fügen Sie Omni Ihrem Startbildschirm hinzu, um schneller auf Ihr Wallet zuzugreifen."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Tippen Sie auf das QR-Symbol und scannen Sie",
- "description": "Tippen Sie auf das QR-Symbol auf Ihrem Startbildschirm, scannen Sie den Code und bestätigen Sie die Eingabeaufforderung, um die Verbindung herzustellen."
- }
- }
- },
- "1inch": {
- "qr_code": {
- "step1": {
- "description": "Legen Sie die 1inch Wallet auf Ihrem Startbildschirm ab, um schneller auf Ihr Wallet zuzugreifen.",
- "title": "Öffnen Sie die 1inch Wallet App"
- },
- "step2": {
- "description": "Erstellen Sie ein Wallet und einen Benutzernamen oder importieren Sie ein bestehendes Wallet.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden.",
- "title": "Tippen Sie auf die Schaltfläche QR-Scan"
- }
- }
- },
- "token_pocket": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die TokenPocket-App",
- "description": "Wir empfehlen, TokenPocket auf Ihrem Startbildschirm zu platzieren, um schnelleren Zugriff zu erhalten."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Tippen Sie auf die Scan-Schaltfläche",
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden."
- }
- },
- "extension": {
- "step1": {
- "title": "Installieren Sie die TokenPocket-Erweiterung",
- "description": "Wir empfehlen, TokenPocket an Ihre Taskleiste anzuheften, um schneller auf Ihr Wallet zugreifen zu können."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "trust": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die Trust Wallet-App",
- "description": "Platzieren Sie Trust Wallet auf Ihrem Startbildschirm für schnelleren Zugriff auf Ihr Wallet."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Tippen Sie auf WalletConnect in den Einstellungen",
- "description": "Wählen Sie Neue Verbindung, dann scannen Sie den QR-Code und bestätigen Sie die Eingabeaufforderung, um die Verbindung herzustellen."
- }
- },
- "extension": {
- "step1": {
- "title": "Installieren Sie die Trust Wallet-Erweiterung",
- "description": "Klicken Sie oben rechts in Ihrem Browser und pinnen Sie Trust Wallet für einfachen Zugriff."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Trust Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "uniswap": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die Uniswap-App",
- "description": "Fügen Sie Uniswap Wallet Ihrem Startbildschirm hinzu, um schneller auf Ihr Wallet zuzugreifen."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Tippen Sie auf das QR-Symbol und scannen Sie",
- "description": "Tippen Sie auf das QR-Symbol auf Ihrem Startbildschirm, scannen Sie den Code und bestätigen Sie die Eingabeaufforderung, um die Verbindung herzustellen."
- }
- }
- },
- "zerion": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die Zerion-App",
- "description": "Wir empfehlen, Zerion auf Ihrem Startbildschirm zu platzieren, um schnelleren Zugriff zu haben."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Tippen Sie auf die Scan-Schaltfläche",
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden."
- }
- },
- "extension": {
- "step1": {
- "title": "Installieren Sie die Zerion-Erweiterung",
- "description": "Wir empfehlen, Zerion an Ihre Taskleiste anzuheften, um schnelleren Zugriff auf Ihre Wallet zu haben."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "rainbow": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die Rainbow-App",
- "description": "Wir empfehlen, Rainbow auf Ihrem Startbildschirm zu platzieren, um schnelleren Zugriff auf Ihre Wallet zu haben."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Sie können Ihr Wallet ganz einfach mit unserer Backup-Funktion auf Ihrem Telefon sichern."
- },
- "step3": {
- "title": "Tippen Sie auf die Scan-Schaltfläche",
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden."
- }
- }
- },
- "enkrypt": {
- "extension": {
- "step1": {
- "description": "Wir empfehlen, die Enkrypt Wallet an Ihre Taskleiste anzuheften, um schnelleren Zugriff auf Ihre Wallet zu haben.",
- "title": "Installieren Sie die Enkrypt Wallet-Erweiterung"
- },
- "step2": {
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden.",
- "title": "Aktualisieren Sie Ihren Browser"
- }
- }
- },
- "frame": {
- "extension": {
- "step1": {
- "description": "Wir empfehlen, Frame an Ihre Taskleiste anzuheften, um schnelleren Zugriff auf Ihre Wallet zu haben.",
- "title": "Installieren Sie Frame und die zugehörige Erweiterung"
- },
- "step2": {
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden.",
- "title": "Aktualisieren Sie Ihren Browser"
- }
- }
- },
- "one_key": {
- "extension": {
- "step1": {
- "title": "Installieren Sie die OneKey Wallet-Erweiterung",
- "description": "Wir empfehlen, die OneKey Wallet an Ihre Taskleiste anzuheften, um schnelleren Zugriff auf Ihre Wallet zu haben."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "paraswap": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die ParaSwap-App",
- "description": "Fügen Sie die ParaSwap Wallet zu Ihrem Startbildschirm hinzu, um schneller auf Ihre Wallet zuzugreifen."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Tippen Sie auf das QR-Symbol und scannen Sie",
- "description": "Tippen Sie auf das QR-Symbol auf Ihrem Startbildschirm, scannen Sie den Code und bestätigen Sie die Eingabeaufforderung, um die Verbindung herzustellen."
- }
- }
- },
- "phantom": {
- "extension": {
- "step1": {
- "title": "Installieren Sie die Phantom-Erweiterung",
- "description": "Wir empfehlen, Phantom an Ihre Taskleiste anzuheften, um leichteren Zugriff auf Ihre Wallet zu haben."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihre Wallet auf sichere Weise sichern. Teilen Sie niemals Ihren geheimen Wiederherstellungssatz mit anderen."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "rabby": {
- "extension": {
- "step1": {
- "title": "Installieren Sie die Rabby-Erweiterung",
- "description": "Wir empfehlen, Rabby an Ihre Taskleiste anzuheften, um schnelleren Zugriff auf Ihre Wallet zu haben."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "ronin": {
- "qr_code": {
- "step1": {
- "description": "Wir empfehlen, die Ronin Wallet Ihrem Startbildschirm hinzuzufügen, um schneller darauf zuzugreifen.",
- "title": "Öffnen Sie die Ronin Wallet App"
- },
- "step2": {
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden.",
- "title": "Tippen Sie auf die Scan-Schaltfläche"
- }
- },
- "extension": {
- "step1": {
- "description": "Wir empfehlen, die Ronin Wallet an Ihre Taskleiste zu heften, um schneller darauf zuzugreifen.",
- "title": "Installieren Sie die Ronin Wallet Erweiterung"
- },
- "step2": {
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden.",
- "title": "Aktualisieren Sie Ihren Browser"
- }
- }
- },
- "ramper": {
- "extension": {
- "step1": {
- "title": "Installieren Sie die Ramper Erweiterung",
- "description": "Wir empfehlen, Ramper an Ihre Taskleiste zu heften, um einfacher darauf zugreifen zu können."
- },
- "step2": {
- "title": "Erstellen Sie eine Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "safeheron": {
- "extension": {
- "step1": {
- "title": "Installieren Sie die Core-Erweiterung",
- "description": "Wir empfehlen, Safeheron an Ihre Taskleiste anzuheften, um schnelleren Zugriff auf Ihre Wallet zu haben."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "taho": {
- "extension": {
- "step1": {
- "title": "Installieren Sie die Taho-Erweiterung",
- "description": "Wir empfehlen, Taho an Ihre Taskleiste anzuheften, um schnelleren Zugriff auf Ihre Wallet zu haben."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "wigwam": {
- "extension": {
- "step1": {
- "title": "Installieren Sie die Wigwam-Erweiterung",
- "description": "Wir empfehlen, Wigwam an Ihre Taskleiste anzuheften, um einen schnelleren Zugriff auf Ihr Wallet zu ermöglichen."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "talisman": {
- "extension": {
- "step1": {
- "title": "Installieren Sie die Talisman-Erweiterung",
- "description": "Wir empfehlen, Talisman an Ihre Taskleiste anzuheften, um schnelleren Zugriff auf Ihre Wallet zu haben."
- },
- "step2": {
- "title": "Erstellen oder Importieren Sie eine Ethereum-Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihre Wallet auf sichere Weise sichern. Teilen Sie niemals Ihre Wiederherstellungsphrase mit anderen."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "xdefi": {
- "extension": {
- "step1": {
- "title": "Installieren Sie die XDEFI Wallet-Erweiterung",
- "description": "Wir empfehlen, die XDEFI Wallet an Ihre Taskleiste anzuheften, um schnelleren Zugriff auf Ihre Wallet zu haben."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "zeal": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die Zeal App",
- "description": "Fügen Sie die Zeal Wallet Ihrem Startbildschirm hinzu, um schneller auf Ihr Wallet zuzugreifen."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Tippen Sie auf das QR-Symbol und scannen Sie",
- "description": "Tippen Sie auf das QR-Symbol auf Ihrem Startbildschirm, scannen Sie den Code und bestätigen Sie die Eingabeaufforderung, um die Verbindung herzustellen."
- }
- },
- "extension": {
- "step1": {
- "title": "Installieren Sie die Zeal-Erweiterung",
- "description": "Wir empfehlen, Zeal an Ihre Taskleiste anzuheften, um schnelleren Zugriff auf Ihre Wallet zu haben."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "safepal": {
- "extension": {
- "step1": {
- "title": "Installieren Sie die SafePal Wallet-Erweiterung",
- "description": "Klicken Sie oben rechts in Ihrem Browser und heften Sie SafePal Wallet für einfachen Zugriff an."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie die SafePal Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- },
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die SafePal Wallet-App",
- "description": "Platzieren Sie SafePal Wallet auf Ihrem Startbildschirm, um schnelleren Zugriff auf Ihre Wallet zu haben."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Tippen Sie auf WalletConnect in den Einstellungen",
- "description": "Wählen Sie Neue Verbindung, dann scannen Sie den QR-Code und bestätigen Sie die Eingabeaufforderung, um die Verbindung herzustellen."
- }
- }
- },
- "desig": {
- "extension": {
- "step1": {
- "title": "Installieren Sie die Desig-Erweiterung",
- "description": "Wir empfehlen, Desig an Ihre Taskleiste anzuheften, um leichteren Zugriff auf Ihre Wallet zu haben."
- },
- "step2": {
- "title": "Erstellen Sie eine Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "subwallet": {
- "extension": {
- "step1": {
- "title": "Installieren Sie die SubWallet-Erweiterung",
- "description": "Wir empfehlen, SubWallet an Ihre Taskleiste zu heften, um schneller auf Ihr Wallet zugreifen zu können."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihre Wallet auf sichere Weise sichern. Teilen Sie niemals Ihre Wiederherstellungsphrase mit anderen."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- },
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die SubWallet-App",
- "description": "Wir empfehlen, SubWallet auf Ihrem Startbildschirm abzulegen, um schneller darauf zugreifen zu können."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Tippen Sie auf die Scan-Schaltfläche",
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden."
- }
- }
- },
- "clv": {
- "extension": {
- "step1": {
- "title": "Installieren Sie die CLV Wallet-Erweiterung",
- "description": "Wir empfehlen, CLV Wallet an Ihre Taskleiste zu heften, um schneller auf Ihr Wallet zugreifen zu können."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- },
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die CLV Wallet-App",
- "description": "Wir empfehlen, CLV Wallet auf Ihrem Startbildschirm abzulegen, um schneller darauf zugreifen zu können."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihr Wallet mit einer sicheren Methode sichern. Teilen Sie niemals Ihre geheime Phrase mit jemandem."
- },
- "step3": {
- "title": "Tippen Sie auf die Scan-Schaltfläche",
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden."
- }
- }
- },
- "okto": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die Okto-App",
- "description": "Fügen Sie Okto Ihrem Startbildschirm hinzu, um schnellen Zugriff zu erhalten"
- },
- "step2": {
- "title": "Erstellen Sie ein MPC-Wallet",
- "description": "Erstellen Sie ein Konto und generieren Sie ein Wallet"
- },
- "step3": {
- "title": "Tippen Sie auf WalletConnect in den Einstellungen",
- "description": "Tippen Sie auf das QR-Scan-Symbol oben rechts und bestätigen Sie die Aufforderung zum Verbinden."
- }
- }
- },
- "ledger": {
- "desktop": {
- "step1": {
- "title": "Öffnen Sie die Ledger Live-App",
- "description": "Wir empfehlen, Ledger Live auf Ihrem Startbildschirm abzulegen, um schneller darauf zugreifen zu können."
- },
- "step2": {
- "title": "Richten Sie Ihr Ledger ein",
- "description": "Richten Sie ein neues Ledger ein oder verbinden Sie sich mit einem bestehenden."
- },
- "step3": {
- "title": "Verbinden",
- "description": "Eine Verbindungsmeldung erscheint, um Ihr Wallet zu verbinden."
- }
- },
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die Ledger Live-App",
- "description": "Wir empfehlen, Ledger Live auf Ihrem Startbildschirm abzulegen, um schneller darauf zugreifen zu können."
- },
- "step2": {
- "title": "Richten Sie Ihr Ledger ein",
- "description": "Sie können entweder mit der Desktop-App synchronisieren oder Ihr Ledger verbinden."
- },
- "step3": {
- "title": "Code scannen",
- "description": "Tippen Sie auf WalletConnect und wechseln Sie dann zum Scanner. Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden."
- }
- }
- },
- "valora": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die Valora-App",
- "description": "Wir empfehlen, Valora für einen schnelleren Zugriff auf Ihrem Startbildschirm zu platzieren."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie eine Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Tippen Sie auf die Scan-Schaltfläche",
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden."
- }
- }
- },
- "gate": {
- "qr_code": {
- "step1": {
- "title": "Öffnen Sie die Gate-App",
- "description": "Wir empfehlen, Gate auf Ihrem Startbildschirm abzulegen, um schnellen Zugriff zu erhalten."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Tippen Sie auf die Scan-Schaltfläche",
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden."
- }
- },
- "extension": {
- "step1": {
- "title": "Installieren Sie die Gate-Erweiterung",
- "description": "Wir empfehlen, Gate in Ihre Taskleiste zu heften, um leichteren Zugriff auf Ihr Wallet zu haben."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Stellen Sie sicher, dass Sie Ihre Wallet auf sichere Weise sichern. Teilen Sie niemals Ihren geheimen Wiederherstellungssatz mit anderen."
- },
- "step3": {
- "title": "Aktualisieren Sie Ihren Browser",
- "description": "Sobald Sie Ihr Wallet eingerichtet haben, klicken Sie unten, um den Browser zu aktualisieren und die Erweiterung zu laden."
- }
- }
- },
- "xportal": {
- "qr_code": {
- "step1": {
- "description": "Legen Sie xPortal auf Ihrem Startbildschirm ab, um schneller auf Ihr Wallet zuzugreifen.",
- "title": "Öffnen Sie die xPortal-App"
- },
- "step2": {
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden.",
- "title": "Tippen Sie auf die Schaltfläche QR-Scan"
- }
- }
- },
- "mew": {
- "qr_code": {
- "step1": {
- "description": "Wir empfehlen, MEW Wallet auf Ihrem Startbildschirm abzulegen, um schneller darauf zugreifen zu können.",
- "title": "Öffnen Sie die MEW Wallet-App"
- },
- "step2": {
- "description": "Sie können Ihr Wallet problemlos mit der Cloud-Backup-Funktion sichern.",
- "title": "Erstellen oder importieren Sie ein Wallet"
- },
- "step3": {
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden.",
- "title": "Tippen Sie auf die Scan-Schaltfläche"
- }
- }
- }
- },
- "zilpay": {
- "qr_code": {
- "step1": {
- "title": "Öffne die ZilPay-App",
- "description": "Füge ZilPay zu deinem Startbildschirm hinzu, um schneller auf dein Wallet zuzugreifen."
- },
- "step2": {
- "title": "Erstellen oder importieren Sie ein Wallet",
- "description": "Erstellen Sie ein neues Wallet oder importieren Sie ein bestehendes."
- },
- "step3": {
- "title": "Tippen Sie auf die Scan-Schaltfläche",
- "description": "Nach dem Scannen erscheint eine Verbindungsmeldung, um Ihr Wallet zu verbinden."
- }
- }
- }
-}
-`;export{e as default};
diff --git a/client2/build/assets/degen-FQQ4XGHB-CeHTs88l.js b/client2/build/assets/degen-FQQ4XGHB-CeHTs88l.js
deleted file mode 100644
index 0b4d6dbfd..000000000
--- a/client2/build/assets/degen-FQQ4XGHB-CeHTs88l.js
+++ /dev/null
@@ -1 +0,0 @@
-var a="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cg%20transform%3D%22translate(0%2C0)%20scale(0.7)%22%3E%3Cg%20clip-path%3D%22url(%23a)%22%3E%3Cpath%20fill%3D%22%23A36EFD%22%20d%3D%22M0%200h40v40H0z%22%2F%3E%3Cpath%20fill%3D%22%234C2897%22%20d%3D%22m11.494%2022.367.097%201.764c.006.12.051.233.127.326.531.643%202.913%202.887%208.28%202.887%205.368%200%207.721-2.215%208.272-2.875.083-.1.13-.224.139-.354l.096-1.747a44.59%2044.59%200%200%200%201.298-.747c1.037-.562%202.195.245%202.197%201.43.004%201.915-1.493%203.883-3.512%205.124-2.276%201.398-5.674%201.979-8.488%201.979-2.814%200-6.212-.58-8.488-1.98C9.493%2026.935%207.996%2024.967%208%2023.05c.002-1.184%201.16-1.99%202.197-1.429%200%200%20.658.395%201.297.746Z%22%2F%3E%3Cpath%20fill%3D%22%234C2897%22%20d%3D%22M20%209.846c4.388%200%205.578.103%207.362.308.822.095%201.482.707%201.42%201.536l-.657%208.954c-.206.06-.43.135-.682.22-1.318.442-3.385%201.135-7.444%201.135s-6.125-.693-7.444-1.136c-.252-.084-.476-.16-.682-.22l-.657-8.953c-.06-.83.596-1.456%201.42-1.536%201.763-.171%203.598-.308%207.363-.308Zm-7.812%2015.088.002.032.046.01a7.876%207.876%200%200%201-.048-.042Zm15.579.041.04-.01.003-.028a6.056%206.056%200%200%201-.043.038Z%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22a%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M0%200h40v40H0z%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fg%3E%3C%2Fsvg%3E";export{a as default};
diff --git a/client2/build/assets/desktop-CjxZzngH.js b/client2/build/assets/desktop-CjxZzngH.js
deleted file mode 100644
index df321a90b..000000000
--- a/client2/build/assets/desktop-CjxZzngH.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import{b as c}from"./core-Cywc921C.js";import"./index-B6P9GsMd.js";import"./index.es-MB-v37Rm.js";import"./events-DQ172AOg.js";import"./index-nibyPLVP.js";const t=c``;export{t as desktopSvg};
diff --git a/client2/build/assets/disconnect-BjPBJH2l.js b/client2/build/assets/disconnect-BjPBJH2l.js
deleted file mode 100644
index c2a0f2667..000000000
--- a/client2/build/assets/disconnect-BjPBJH2l.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import{b as o}from"./core-Cywc921C.js";import"./index-B6P9GsMd.js";import"./index.es-MB-v37Rm.js";import"./events-DQ172AOg.js";import"./index-nibyPLVP.js";const l=o``;export{l as disconnectSvg};
diff --git a/client2/build/assets/discord-v3STQ10H.js b/client2/build/assets/discord-v3STQ10H.js
deleted file mode 100644
index 84a083be4..000000000
--- a/client2/build/assets/discord-v3STQ10H.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import{b as l}from"./core-Cywc921C.js";import"./index-B6P9GsMd.js";import"./index.es-MB-v37Rm.js";import"./events-DQ172AOg.js";import"./index-nibyPLVP.js";const r=l``;export{r as discordSvg};
diff --git a/client2/build/assets/es_419-JBX5FS3Q-Bk-MlIq_.js b/client2/build/assets/es_419-JBX5FS3Q-Bk-MlIq_.js
deleted file mode 100644
index b93c3bd7a..000000000
--- a/client2/build/assets/es_419-JBX5FS3Q-Bk-MlIq_.js
+++ /dev/null
@@ -1,1427 +0,0 @@
-var e=`{
- "connect_wallet": {
- "label": "Conectar la billetera",
- "wrong_network": {
- "label": "Red incorrecta"
- }
- },
- "intro": {
- "title": "¿Qué es una billetera?",
- "description": "Una billetera se usa para enviar, recibir, almacenar y mostrar activos digitales. También es una nueva forma de iniciar sesión, sin necesidad de crear nuevas cuentas y contraseñas en cada sitio web.",
- "digital_asset": {
- "title": "Un hogar para tus Activos Digitales",
- "description": "Las carteras se utilizan para enviar, recibir, almacenar y mostrar activos digitales como Ethereum y NFTs."
- },
- "login": {
- "title": "Una nueva forma de iniciar sesión",
- "description": "En lugar de crear nuevas cuentas y contraseñas en cada sitio web, simplemente conecta tu cartera."
- },
- "get": {
- "label": "Obtener una billetera"
- },
- "learn_more": {
- "label": "Obtener más información"
- }
- },
- "sign_in": {
- "label": "Verifica tu cuenta",
- "description": "Para terminar de conectar, debes firmar un mensaje en tu billetera para verificar que eres el propietario de esta cuenta.",
- "message": {
- "send": "Enviar mensaje",
- "preparing": "Preparando mensaje...",
- "cancel": "Cancelar",
- "preparing_error": "Error al preparar el mensaje, ¡intenta de nuevo!"
- },
- "signature": {
- "waiting": "Esperando firma...",
- "verifying": "Verificando firma...",
- "signing_error": "Error al firmar el mensaje, ¡intenta de nuevo!",
- "verifying_error": "Error al verificar la firma, ¡intenta de nuevo!",
- "oops_error": "¡Ups! Algo salió mal."
- }
- },
- "connect": {
- "label": "Conectar",
- "title": "Conectar una billetera",
- "new_to_ethereum": {
- "description": "¿Eres nuevo en las billeteras Ethereum?",
- "learn_more": {
- "label": "Obtener más información"
- }
- },
- "learn_more": {
- "label": "Obtener más información"
- },
- "recent": "Reciente",
- "status": {
- "opening": "Abriendo %{wallet}...",
- "connecting": "Conectando",
- "connect_mobile": "Continuar en %{wallet}",
- "not_installed": "%{wallet} no está instalado",
- "not_available": "%{wallet} no está disponible",
- "confirm": "Confirma la conexión en la extensión",
- "confirm_mobile": "Aceptar la solicitud de conexión en la cartera"
- },
- "secondary_action": {
- "get": {
- "description": "¿No tienes %{wallet}?",
- "label": "OBTENER"
- },
- "install": {
- "label": "INSTALAR"
- },
- "retry": {
- "label": "REINTENTAR"
- }
- },
- "walletconnect": {
- "description": {
- "full": "¿Necesitas el modal oficial de WalletConnect?",
- "compact": "¿Necesitas el modal de WalletConnect?"
- },
- "open": {
- "label": "ABRIR"
- }
- }
- },
- "connect_scan": {
- "title": "Escanea con %{wallet}",
- "fallback_title": "Escanea con tu teléfono"
- },
- "connector_group": {
- "installed": "Instalado",
- "recommended": "Recomendado",
- "other": "Otro",
- "popular": "Popular",
- "more": "Más",
- "others": "Otros"
- },
- "get": {
- "title": "Obtener una billetera",
- "action": {
- "label": "OBTENER"
- },
- "mobile": {
- "description": "Billetera Móvil"
- },
- "extension": {
- "description": "Extensión de navegador"
- },
- "mobile_and_extension": {
- "description": "Billetera móvil y extensión"
- },
- "mobile_and_desktop": {
- "description": "Billetera Móvil y de Escritorio"
- },
- "looking_for": {
- "title": "¿No es lo que estás buscando?",
- "mobile": {
- "description": "Seleccione una billetera en la pantalla principal para comenzar con un proveedor de billetera diferente."
- },
- "desktop": {
- "compact_description": "Seleccione una cartera en la pantalla principal para comenzar con un proveedor de cartera diferente.",
- "wide_description": "Seleccione una cartera a la izquierda para comenzar con un proveedor de cartera diferente."
- }
- }
- },
- "get_options": {
- "title": "Comienza con %{wallet}",
- "short_title": "Obtener %{wallet}",
- "mobile": {
- "title": "%{wallet} para móvil",
- "description": "Use la billetera móvil para explorar el mundo de Ethereum.",
- "download": {
- "label": "Obtener la aplicación"
- }
- },
- "extension": {
- "title": "%{wallet} para %{browser}",
- "description": "Acceda a su billetera directamente desde su navegador web favorito.",
- "download": {
- "label": "Añadir a %{browser}"
- }
- },
- "desktop": {
- "title": "%{wallet} para %{platform}",
- "description": "Acceda a su billetera de forma nativa desde su potente escritorio.",
- "download": {
- "label": "Añadir a %{platform}"
- }
- }
- },
- "get_mobile": {
- "title": "Instalar %{wallet}",
- "description": "Escanee con su teléfono para descargar en iOS o Android",
- "continue": {
- "label": "Continuar"
- }
- },
- "get_instructions": {
- "mobile": {
- "connect": {
- "label": "Conectar"
- },
- "learn_more": {
- "label": "Obtener más información"
- }
- },
- "extension": {
- "refresh": {
- "label": "Actualizar"
- },
- "learn_more": {
- "label": "Obtener más información"
- }
- },
- "desktop": {
- "connect": {
- "label": "Conectar"
- },
- "learn_more": {
- "label": "Obtener más información"
- }
- }
- },
- "chains": {
- "title": "Cambiar redes",
- "wrong_network": "Se detectó la red incorrecta, cambia o desconéctate para continuar.",
- "confirm": "Confirmar en la cartera",
- "switching_not_supported": "Tu cartera no admite cambiar las redes desde %{appName}. Intenta cambiar las redes desde tu cartera.",
- "switching_not_supported_fallback": "Su billetera no admite el cambio de redes desde esta aplicación. Intente cambiar de red desde dentro de su billetera en su lugar.",
- "disconnect": "Desconectar",
- "connected": "Conectado"
- },
- "profile": {
- "disconnect": {
- "label": "Desconectar"
- },
- "copy_address": {
- "label": "Copiar dirección",
- "copied": "¡Copiado!"
- },
- "explorer": {
- "label": "Ver más en el explorador"
- },
- "transactions": {
- "description": "%{appName} transacciones aparecerán aquí...",
- "description_fallback": "Tus transacciones aparecerán aquí...",
- "recent": {
- "title": "Transacciones recientes"
- },
- "clear": {
- "label": "Borrar Todo"
- }
- }
- },
- "wallet_connectors": {
- "argent": {
- "qr_code": {
- "step1": {
- "description": "Coloque Argent en su pantalla de inicio para un acceso más rápido a su billetera.",
- "title": "Abra la aplicación Argent"
- },
- "step2": {
- "description": "Cree una billetera y un nombre de usuario, o importe una billetera existente.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Después de escanear, aparecerá un mensaje de conexión para que conecte su billetera.",
- "title": "Toque el botón Escanear QR"
- }
- }
- },
- "berasig": {
- "extension": {
- "step1": {
- "title": "Instala la extensión BeraSig",
- "description": "Recomendamos anclar BeraSig a tu barra de tareas para acceder más fácilmente a tu cartera."
- },
- "step2": {
- "title": "Crea una Cartera",
- "description": "Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie."
- },
- "step3": {
- "title": "Refrescar tu navegador",
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión."
- }
- }
- },
- "best": {
- "qr_code": {
- "step1": {
- "title": "Abre la aplicación Best Wallet",
- "description": "Agrega Best Wallet a tu pantalla de inicio para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Toque el icono de QR y escanee",
- "description": "Toca el icono QR en tu pantalla de inicio, escanea el código y confirma el prompt para conectar."
- }
- }
- },
- "bifrost": {
- "qr_code": {
- "step1": {
- "description": "Recomendamos poner Bifrost Wallet en su pantalla de inicio para un acceso más rápido.",
- "title": "Abra la aplicación Bifrost Wallet"
- },
- "step2": {
- "description": "Cree o importe una billetera usando su frase de recuperación.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Después de escanear, aparecerá un aviso de conexión para que conecte su billetera.",
- "title": "Toque el botón de escaneo"
- }
- }
- },
- "bitget": {
- "qr_code": {
- "step1": {
- "description": "Recomendamos colocar Bitget Wallet en su pantalla de inicio para un acceso más rápido.",
- "title": "Abra la aplicación Bitget Wallet"
- },
- "step2": {
- "description": "Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Después de escanear, aparecerá un aviso de conexión para que pueda conectar su billetera.",
- "title": "Toque el botón de escanear"
- }
- },
- "extension": {
- "step1": {
- "description": "Recomendamos anclar Bitget Wallet a su barra de tareas para un acceso más rápido a su billetera.",
- "title": "Instale la extensión de la Billetera Bitget"
- },
- "step2": {
- "description": "Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión.",
- "title": "Refrescar tu navegador"
- }
- }
- },
- "bitski": {
- "extension": {
- "step1": {
- "description": "Recomendamos anclar Bitski a tu barra de tareas para un acceso más rápido a tu billetera.",
- "title": "Instala la extensión Bitski"
- },
- "step2": {
- "description": "Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Una vez que configure su billetera, haga clic abajo para actualizar el navegador y cargar la extensión.",
- "title": "Actualiza tu navegador"
- }
- }
- },
- "bitverse": {
- "qr_code": {
- "step1": {
- "title": "Abra la aplicación Bitverse Wallet",
- "description": "Agregue Bitverse Wallet a su pantalla de inicio para un acceso más rápido a su billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Toque el icono de QR y escanee",
- "description": "Toca el icono QR en tu pantalla de inicio, escanea el código y confirma el prompt para conectar."
- }
- }
- },
- "bloom": {
- "desktop": {
- "step1": {
- "title": "Abra la aplicación Bloom Wallet",
- "description": "Recomendamos colocar Bloom Wallet en su pantalla de inicio para un acceso más rápido."
- },
- "step2": {
- "description": "Cree o importe una billetera usando su frase de recuperación.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Después de tener una billetera, haga clic en Conectar para conectarse a través de Bloom. Aparecerá un aviso de conexión en la aplicación para que confirme la conexión.",
- "title": "Haga clic en Conectar"
- }
- }
- },
- "bybit": {
- "qr_code": {
- "step1": {
- "description": "Recomendamos poner Bybit en su pantalla de inicio para un acceso más rápido a su billetera.",
- "title": "Abra la aplicación Bybit"
- },
- "step2": {
- "description": "Puede respaldar fácilmente su billetera utilizando nuestra función de respaldo en su teléfono.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Después de escanear, aparecerá un mensaje de conexión para que conecte su billetera.",
- "title": "Toque el botón de escaneo"
- }
- },
- "extension": {
- "step1": {
- "description": "Haga clic en la parte superior derecha de su navegador y ancle Bybit Wallet para un acceso fácil.",
- "title": "Instale la extensión Bybit Wallet"
- },
- "step2": {
- "description": "Crea una nueva billetera o importa una existente.",
- "title": "Crear o Importar una billetera"
- },
- "step3": {
- "description": "Una vez que haya configurado Bybit Wallet, haga clic a continuación para actualizar el navegador y cargar la extensión.",
- "title": "Refrescar tu navegador"
- }
- }
- },
- "binance": {
- "qr_code": {
- "step1": {
- "description": "Recomendamos poner Binance en tu pantalla de inicio para un acceso más rápido a tu billetera.",
- "title": "Abre la aplicación Binance"
- },
- "step2": {
- "description": "Puede respaldar fácilmente su billetera utilizando nuestra función de respaldo en su teléfono.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Después de escanear, aparecerá un mensaje de conexión para que conecte su billetera.",
- "title": "Toque el botón WalletConnect"
- }
- }
- },
- "coin98": {
- "qr_code": {
- "step1": {
- "description": "Recomendamos poner Coin98 Wallet en la pantalla de inicio para un acceso más rápido a su billetera.",
- "title": "Abra la aplicación Coin98 Wallet"
- },
- "step2": {
- "description": "Puede respaldar fácilmente su billetera utilizando nuestra función de respaldo en su teléfono.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Después de escanear, aparecerá un aviso de conexión para que conecte su billetera.",
- "title": "Toque el botón WalletConnect"
- }
- },
- "extension": {
- "step1": {
- "description": "Haga clic en la parte superior derecha de su navegador y fije Coin98 Wallet para un fácil acceso.",
- "title": "Instale la extensión Coin98 Wallet"
- },
- "step2": {
- "description": "Crea una nueva billetera o importa una existente.",
- "title": "Crear o Importar una billetera"
- },
- "step3": {
- "description": "Una vez que configures Coin98 Wallet, haz clic a continuación para refrescar el navegador y cargar la extensión.",
- "title": "Refresca tu navegador"
- }
- }
- },
- "coinbase": {
- "qr_code": {
- "step1": {
- "description": "Recomendamos poner Coinbase Wallet en tu pantalla de inicio para un acceso más rápido.",
- "title": "Abre la aplicación de la Billetera Coinbase"
- },
- "step2": {
- "description": "Puedes respaldar tu billetera fácilmente utilizando la función de respaldo en la nube.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera.",
- "title": "Pulsa el botón de escanear"
- }
- },
- "extension": {
- "step1": {
- "description": "Te recomendamos anclar la Billetera Coinbase a tu barra de tareas para un acceso más rápido a tu billetera.",
- "title": "Instala la extensión de la Billetera Coinbase"
- },
- "step2": {
- "description": "Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Una vez que configure su billetera, haga clic abajo para refrescar el navegador y cargar la extensión.",
- "title": "Refresca tu navegador"
- }
- }
- },
- "compass": {
- "extension": {
- "step1": {
- "description": "Recomendamos anclar la Billetera Compass a tu barra de tareas para un acceso más rápido a tu billetera.",
- "title": "Instala la extensión de la Billetera Compass"
- },
- "step2": {
- "description": "Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión.",
- "title": "Refrescar tu navegador"
- }
- }
- },
- "core": {
- "qr_code": {
- "step1": {
- "description": "Recomendamos poner Core en su pantalla de inicio para un acceso más rápido a su billetera.",
- "title": "Abra la aplicación Core"
- },
- "step2": {
- "description": "Puedes respaldar fácilmente tu billetera utilizando nuestra función de respaldo en tu teléfono.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera.",
- "title": "Toque el botón WalletConnect"
- }
- },
- "extension": {
- "step1": {
- "description": "Recomendamos fijar Core a tu barra de tareas para acceder más rápido a tu billetera.",
- "title": "Instala la extensión Core"
- },
- "step2": {
- "description": "Asegúrate de hacer una copia de seguridad de tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión.",
- "title": "Refresca tu navegador"
- }
- }
- },
- "fox": {
- "qr_code": {
- "step1": {
- "description": "Recomendamos poner FoxWallet en tu pantalla de inicio para un acceso más rápido.",
- "title": "Abre la aplicación FoxWallet"
- },
- "step2": {
- "description": "Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Después de escanear, aparecerá una solicitud de conexión para que conectes tu billetera.",
- "title": "Toca el botón de escanear"
- }
- }
- },
- "frontier": {
- "qr_code": {
- "step1": {
- "description": "Recomendamos poner la Billetera Frontier en tu pantalla principal para un acceso más rápido.",
- "title": "Abre la aplicación de la Billetera Frontier"
- },
- "step2": {
- "description": "Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Después de escanear, aparecerá un mensaje para que conectes tu billetera.",
- "title": "Haz clic en el botón de escaneo"
- }
- },
- "extension": {
- "step1": {
- "description": "Recomendamos anclar la billetera Frontier a tu barra de tareas para un acceso más rápido a tu billetera.",
- "title": "Instala la extensión de la billetera Frontier"
- },
- "step2": {
- "description": "Asegúrese de hacer una copia de seguridad de su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Una vez que configure su billetera, haga clic a continuación para actualizar el navegador y cargar la extensión.",
- "title": "Actualizar tu navegador"
- }
- }
- },
- "im_token": {
- "qr_code": {
- "step1": {
- "title": "Abrir la aplicación imToken",
- "description": "Pon la aplicación imToken en tu pantalla de inicio para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Toca el Icono del Escáner en la esquina superior derecha",
- "description": "Elija Nueva Conexión, luego escanee el código QR y confirme el aviso para conectar."
- }
- }
- },
- "iopay": {
- "qr_code": {
- "step1": {
- "description": "Recomendamos poner ioPay en tu pantalla de inicio para un acceso más rápido a tu billetera.",
- "title": "Abre la aplicación ioPay"
- },
- "step2": {
- "description": "Puede respaldar fácilmente su billetera utilizando nuestra función de respaldo en su teléfono.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Después de escanear, aparecerá un mensaje de conexión para que conecte su billetera.",
- "title": "Toque el botón WalletConnect"
- }
- }
- },
- "kaikas": {
- "extension": {
- "step1": {
- "description": "Recomendamos anclar Kaikas a su barra de tareas para un acceso más rápido a su billetera.",
- "title": "Instale la extensión Kaikas"
- },
- "step2": {
- "description": "Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión.",
- "title": "Refrescar tu navegador"
- }
- },
- "qr_code": {
- "step1": {
- "title": "Abra la aplicación Kaikas",
- "description": "Ponga la aplicación Kaikas en su pantalla de inicio para un acceso más rápido a su billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Toca el Icono del Escáner en la esquina superior derecha",
- "description": "Elija Nueva Conexión, luego escanee el código QR y confirme el aviso para conectar."
- }
- }
- },
- "kaia": {
- "extension": {
- "step1": {
- "description": "Recomendamos anclar Kaia a tu barra de tareas para un acceso más rápido a tu billetera.",
- "title": "Instala la extensión Kaia"
- },
- "step2": {
- "description": "Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión.",
- "title": "Refrescar tu navegador"
- }
- },
- "qr_code": {
- "step1": {
- "title": "Abre la aplicación Kaia",
- "description": "Pon la aplicación Kaia en tu pantalla de inicio para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Toca el Icono del Escáner en la esquina superior derecha",
- "description": "Elija Nueva Conexión, luego escanee el código QR y confirme el aviso para conectar."
- }
- }
- },
- "kraken": {
- "qr_code": {
- "step1": {
- "title": "Abre la aplicación Kraken Wallet",
- "description": "Agrega la Billetera Kraken a tu pantalla de inicio para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Toque el icono de QR y escanee",
- "description": "Toca el icono QR en tu pantalla de inicio, escanea el código y confirma el prompt para conectar."
- }
- }
- },
- "kresus": {
- "qr_code": {
- "step1": {
- "title": "Abra la aplicación Kresus Wallet",
- "description": "Agregue Kresus Wallet a su pantalla de inicio para un acceso más rápido a su billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Toque el icono de QR y escanee",
- "description": "Toca el icono QR en tu pantalla de inicio, escanea el código y confirma el prompt para conectar."
- }
- }
- },
- "magicEden": {
- "extension": {
- "step1": {
- "title": "Instala la extensión de Magic Eden",
- "description": "Recomendamos anclar Magic Eden a tu barra de tareas para acceder más fácilmente a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrese de respaldar su billetera usando un método seguro. Nunca comparta su frase secreta de recuperación con nadie."
- },
- "step3": {
- "title": "Refrescar tu navegador",
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión."
- }
- }
- },
- "metamask": {
- "qr_code": {
- "step1": {
- "title": "Abre la aplicación MetaMask",
- "description": "Recomendamos colocar MetaMask en tu pantalla de inicio para un acceso más rápido."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."
- },
- "step3": {
- "title": "Toca el botón de escanear",
- "description": "Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera."
- }
- },
- "extension": {
- "step1": {
- "title": "Instala la extensión MetaMask",
- "description": "Recomendamos anclar MetaMask a tu barra de tareas para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrate de hacer una copia de seguridad de tu billetera usando un método seguro. Nunca compartas tu frase secreta con nadie."
- },
- "step3": {
- "title": "Refresca tu navegador",
- "description": "Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión."
- }
- }
- },
- "nestwallet": {
- "extension": {
- "step1": {
- "title": "Instala la extensión NestWallet",
- "description": "Recomendamos fijar NestWallet a tu barra de tareas para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie."
- },
- "step3": {
- "title": "Refrescar tu navegador",
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión."
- }
- }
- },
- "okx": {
- "qr_code": {
- "step1": {
- "title": "Abre la aplicación OKX Wallet",
- "description": "Recomendamos colocar OKX Wallet en tu pantalla de inicio para un acceso más rápido."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrate de respaldar tu billetera usando un método seguro. Nunca compartas tu frase secreta con nadie."
- },
- "step3": {
- "title": "Toca el botón de escanear",
- "description": "Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera."
- }
- },
- "extension": {
- "step1": {
- "title": "Instala la extensión de Billetera OKX",
- "description": "Recomendamos anclar la Billetera OKX a tu barra de tareas para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrate de respaldar tu billetera usando un método seguro. Nunca compartas tu frase secreta con nadie."
- },
- "step3": {
- "title": "Refresca tu navegador",
- "description": "Una vez que configure su billetera, haga clic abajo para actualizar el navegador y cargar la extensión."
- }
- }
- },
- "omni": {
- "qr_code": {
- "step1": {
- "title": "Abra la aplicación Omni",
- "description": "Agregue Omni a su pantalla de inicio para un acceso más rápido a su billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Crear una nueva billetera o importar una existente."
- },
- "step3": {
- "title": "Toque el icono de QR y escanee",
- "description": "Toca el icono QR en tu pantalla principal, escanea el código y confirma el aviso para conectar."
- }
- }
- },
- "1inch": {
- "qr_code": {
- "step1": {
- "description": "Ponga 1inch Wallet en su pantalla de inicio para un acceso más rápido a su billetera.",
- "title": "Abra la aplicación 1inch Wallet"
- },
- "step2": {
- "description": "Cree una billetera y un nombre de usuario, o importe una billetera existente.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Después de escanear, aparecerá un mensaje de conexión para que conecte su billetera.",
- "title": "Toque el botón Escanear QR"
- }
- }
- },
- "token_pocket": {
- "qr_code": {
- "step1": {
- "title": "Abre la aplicación TokenPocket",
- "description": "Recomendamos colocar TokenPocket en tu pantalla principal para un acceso más rápido."
- },
- "step2": {
- "title": "Crear o importar una Billetera",
- "description": "Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."
- },
- "step3": {
- "title": "Toca el botón de escaneo",
- "description": "Después de escanear, aparecerá una solicitud de conexión para que puedas conectar tu billetera."
- }
- },
- "extension": {
- "step1": {
- "title": "Instala la extensión TokenPocket",
- "description": "Recomendamos anclar TokenPocket a tu barra de tareas para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."
- },
- "step3": {
- "title": "Actualiza tu navegador",
- "description": "Una vez que configures tu billetera, haz clic a continuación para actualizar el navegador y cargar la extensión."
- }
- }
- },
- "trust": {
- "qr_code": {
- "step1": {
- "title": "Abre la aplicación Trust Wallet",
- "description": "Ubica Trust Wallet en tu pantalla de inicio para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Toca WalletConnect en Configuraciones",
- "description": "Elige Nueva Conexión, luego escanea el código QR y confirma el aviso para conectar."
- }
- },
- "extension": {
- "step1": {
- "title": "Instala la extensión de Trust Wallet",
- "description": "Haz clic en la parte superior derecha de tu navegador y fija Trust Wallet para un fácil acceso."
- },
- "step2": {
- "title": "Crea o Importa una billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Refresca tu navegador",
- "description": "Una vez que configures Trust Wallet, haz clic abajo para refrescar el navegador y cargar la extensión."
- }
- }
- },
- "uniswap": {
- "qr_code": {
- "step1": {
- "title": "Abre la aplicación Uniswap",
- "description": "Agrega la billetera Uniswap a tu pantalla de inicio para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Toca el icono QR y escanea",
- "description": "Toca el icono QR en tu pantalla de inicio, escanea el código y confirma el prompt para conectar."
- }
- }
- },
- "zerion": {
- "qr_code": {
- "step1": {
- "title": "Abre la aplicación Zerion",
- "description": "Recomendamos poner Zerion en tu pantalla de inicio para un acceso más rápido."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrate de hacer una copia de seguridad de tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."
- },
- "step3": {
- "title": "Toca el botón de escanear",
- "description": "Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera."
- }
- },
- "extension": {
- "step1": {
- "title": "Instala la extensión Zerion",
- "description": "Recomendamos anclar Zerion a tu barra de tareas para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrese de respaldar su billetera usando un método seguro. Nunca comparta su frase secreta con nadie."
- },
- "step3": {
- "title": "Actualiza tu navegador",
- "description": "Una vez que configures tu billetera, haz clic a continuación para actualizar el navegador y cargar la extensión."
- }
- }
- },
- "rainbow": {
- "qr_code": {
- "step1": {
- "title": "Abre la aplicación Rainbow",
- "description": "Recomendamos poner Rainbow en tu pantalla de inicio para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Puedes respaldar fácilmente tu billetera usando nuestra función de respaldo en tu teléfono."
- },
- "step3": {
- "title": "Toca el botón de escanear",
- "description": "Después de escanear, aparecerá una solicitud de conexión para que conectes tu billetera."
- }
- }
- },
- "enkrypt": {
- "extension": {
- "step1": {
- "description": "Recomendamos anclar la Billetera Enkrypt a tu barra de tareas para un acceso más rápido a tu billetera.",
- "title": "Instala la extensión de Billetera Enkrypt"
- },
- "step2": {
- "description": "Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión.",
- "title": "Refresca tu navegador"
- }
- }
- },
- "frame": {
- "extension": {
- "step1": {
- "description": "Recomendamos anclar Frame a tu barra de tareas para un acceso más rápido a tu billetera.",
- "title": "Instala Frame y la extensión complementaria"
- },
- "step2": {
- "description": "Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión.",
- "title": "Refresca tu navegador"
- }
- }
- },
- "one_key": {
- "extension": {
- "step1": {
- "title": "Instale la extensión de Billetera OneKey",
- "description": "Recomendamos anclar la Billetera OneKey a tu barra de tareas para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrese de respaldar su billetera usando un método seguro. Nunca comparta su frase secreta con nadie."
- },
- "step3": {
- "title": "Actualiza tu navegador",
- "description": "Una vez que configures tu billetera, haz clic a continuación para actualizar el navegador y cargar la extensión."
- }
- }
- },
- "paraswap": {
- "qr_code": {
- "step1": {
- "title": "Abre la aplicación ParaSwap",
- "description": "Agrega ParaSwap Wallet a tu pantalla de inicio para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Toque el icono de QR y escanee",
- "description": "Toca el icono QR en tu pantalla de inicio, escanea el código y confirma el prompt para conectar."
- }
- }
- },
- "phantom": {
- "extension": {
- "step1": {
- "title": "Instala la extensión Phantom",
- "description": "Recomendamos fijar Phantom a tu barra de tareas para un acceso más fácil a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrese de respaldar su billetera usando un método seguro. Nunca comparta su frase secreta de recuperación con nadie."
- },
- "step3": {
- "title": "Actualiza tu navegador",
- "description": "Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión."
- }
- }
- },
- "rabby": {
- "extension": {
- "step1": {
- "title": "Instala la extensión Rabby",
- "description": "Recomendamos anclar Rabby a tu barra de tareas para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrate de hacer una copia de seguridad de tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."
- },
- "step3": {
- "title": "Actualiza tu navegador",
- "description": "Una vez que configures tu billetera, haz clic abajo para actualizar el navegador y cargar la extensión."
- }
- }
- },
- "ronin": {
- "qr_code": {
- "step1": {
- "description": "Recomendamos poner Ronin Wallet en su pantalla de inicio para un acceso más rápido.",
- "title": "Abra la aplicación Ronin Wallet"
- },
- "step2": {
- "description": "Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Después de escanear, aparecerá un mensaje de conexión para que conecte su billetera.",
- "title": "Toque el botón de escaneo"
- }
- },
- "extension": {
- "step1": {
- "description": "Recomendamos anclar Ronin Wallet a su barra de tareas para un acceso más rápido a su billetera.",
- "title": "Instale la extensión Ronin Wallet"
- },
- "step2": {
- "description": "Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión.",
- "title": "Refrescar tu navegador"
- }
- }
- },
- "ramper": {
- "extension": {
- "step1": {
- "title": "Instale la extensión Ramper",
- "description": "Recomendamos anclar Ramper a su barra de tareas para un acceso más fácil a su billetera."
- },
- "step2": {
- "title": "Crea una Cartera",
- "description": "Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie."
- },
- "step3": {
- "title": "Refrescar tu navegador",
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión."
- }
- }
- },
- "safeheron": {
- "extension": {
- "step1": {
- "title": "Instala la extensión Core",
- "description": "Recomendamos anclar Safeheron a tu barra de tareas para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."
- },
- "step3": {
- "title": "Refresca tu navegador",
- "description": "Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión."
- }
- }
- },
- "taho": {
- "extension": {
- "step1": {
- "title": "Instala la extensión de Taho",
- "description": "Recomendamos anclar Taho a tu barra de tareas para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crea o Importa una Billetera",
- "description": "Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."
- },
- "step3": {
- "title": "Refresca tu navegador",
- "description": "Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión."
- }
- }
- },
- "wigwam": {
- "extension": {
- "step1": {
- "title": "Instale la extensión Wigwam",
- "description": "Recomendamos anclar Wigwam a tu barra de tareas para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie."
- },
- "step3": {
- "title": "Refrescar tu navegador",
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión."
- }
- }
- },
- "talisman": {
- "extension": {
- "step1": {
- "title": "Instala la extensión de Talisman",
- "description": "Recomendamos anclar Talisman a tu barra de tareas para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crea o importa una billetera Ethereum",
- "description": "Asegúrate de respaldar tu billetera usando un método seguro. Nunca compartas tu frase de recuperación con nadie."
- },
- "step3": {
- "title": "Recarga tu navegador",
- "description": "Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión."
- }
- }
- },
- "xdefi": {
- "extension": {
- "step1": {
- "title": "Instala la extensión de la billetera XDEFI",
- "description": "Recomendamos anclar XDEFI Wallet a su barra de tareas para un acceso más rápido a su billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie."
- },
- "step3": {
- "title": "Actualice su navegador",
- "description": "Una vez que configure su billetera, haga clic abajo para actualizar el navegador y cargar la extensión."
- }
- }
- },
- "zeal": {
- "qr_code": {
- "step1": {
- "title": "Abre la aplicación Zeal",
- "description": "Agrega Zeal Wallet a tu pantalla de inicio para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Toque el icono de QR y escanee",
- "description": "Toca el icono QR en tu pantalla de inicio, escanea el código y confirma el prompt para conectar."
- }
- },
- "extension": {
- "step1": {
- "title": "Instale la extensión Zeal",
- "description": "Recomendamos anclar Zeal a su barra de tareas para un acceso más rápido a su billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie."
- },
- "step3": {
- "title": "Refrescar tu navegador",
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión."
- }
- }
- },
- "safepal": {
- "extension": {
- "step1": {
- "title": "Instale la extensión de la billetera SafePal",
- "description": "Haga clic en la esquina superior derecha de su navegador y ancle SafePal Wallet para un fácil acceso."
- },
- "step2": {
- "title": "Crear o Importar una billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Refrescar tu navegador",
- "description": "Una vez que configure la Billetera SafePal, haga clic abajo para refrescar el navegador y cargar la extensión."
- }
- },
- "qr_code": {
- "step1": {
- "title": "Abra la aplicación Billetera SafePal",
- "description": "Coloque la Billetera SafePal en su pantalla de inicio para un acceso más rápido a su billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Toca WalletConnect en Configuraciones",
- "description": "Elija Nueva Conexión, luego escanee el código QR y confirme el aviso para conectar."
- }
- }
- },
- "desig": {
- "extension": {
- "step1": {
- "title": "Instala la extensión Desig",
- "description": "Recomendamos anclar Desig a tu barra de tareas para acceder más fácilmente a tu cartera."
- },
- "step2": {
- "title": "Crea una Cartera",
- "description": "Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie."
- },
- "step3": {
- "title": "Refrescar tu navegador",
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión."
- }
- }
- },
- "subwallet": {
- "extension": {
- "step1": {
- "title": "Instala la extensión SubWallet",
- "description": "Recomendamos anclar SubWallet a tu barra de tareas para acceder a tu cartera más rápidamente."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrate de respaldar tu billetera usando un método seguro. Nunca compartas tu frase de recuperación con nadie."
- },
- "step3": {
- "title": "Refrescar tu navegador",
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión."
- }
- },
- "qr_code": {
- "step1": {
- "title": "Abre la aplicación SubWallet",
- "description": "Recomendamos colocar SubWallet en tu pantalla principal para un acceso más rápido."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie."
- },
- "step3": {
- "title": "Toque el botón de escaneo",
- "description": "Después de escanear, aparecerá un mensaje de conexión para que conecte su billetera."
- }
- }
- },
- "clv": {
- "extension": {
- "step1": {
- "title": "Instala la extensión CLV Wallet",
- "description": "Recomendamos anclar la billetera CLV a tu barra de tareas para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie."
- },
- "step3": {
- "title": "Refrescar tu navegador",
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión."
- }
- },
- "qr_code": {
- "step1": {
- "title": "Abra la aplicación CLV Wallet",
- "description": "Recomendamos colocar la billetera CLV en tu pantalla de inicio para un acceso más rápido."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie."
- },
- "step3": {
- "title": "Toque el botón de escaneo",
- "description": "Después de escanear, aparecerá un mensaje de conexión para que conecte su billetera."
- }
- }
- },
- "okto": {
- "qr_code": {
- "step1": {
- "title": "Abra la aplicación Okto",
- "description": "Agrega Okto a tu pantalla de inicio para un acceso rápido"
- },
- "step2": {
- "title": "Crea una billetera MPC",
- "description": "Crea una cuenta y genera una billetera"
- },
- "step3": {
- "title": "Toca WalletConnect en Configuraciones",
- "description": "Toca el icono de Escanear QR en la parte superior derecha y confirma el mensaje para conectar."
- }
- }
- },
- "ledger": {
- "desktop": {
- "step1": {
- "title": "Abra la aplicación Ledger Live",
- "description": "Recomendamos poner Ledger Live en su pantalla de inicio para un acceso más rápido."
- },
- "step2": {
- "title": "Configure su Ledger",
- "description": "Configure un nuevo Ledger o conéctese a uno existente."
- },
- "step3": {
- "title": "Conectar",
- "description": "Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera."
- }
- },
- "qr_code": {
- "step1": {
- "title": "Abra la aplicación Ledger Live",
- "description": "Recomendamos poner Ledger Live en su pantalla de inicio para un acceso más rápido."
- },
- "step2": {
- "title": "Configure su Ledger",
- "description": "Puedes sincronizar con la aplicación de escritorio o conectar tu Ledger."
- },
- "step3": {
- "title": "Escanea el código",
- "description": "Toca WalletConnect y luego cambia a Scanner. Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera."
- }
- }
- },
- "valora": {
- "qr_code": {
- "step1": {
- "title": "Abre la aplicación Valora",
- "description": "Recomendamos poner Valora en tu pantalla de inicio para un acceso más rápido."
- },
- "step2": {
- "title": "Crear o Importar una billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Toque el botón de escaneo",
- "description": "Después de escanear, aparecerá un mensaje de conexión para que conecte su billetera."
- }
- }
- },
- "gate": {
- "qr_code": {
- "step1": {
- "title": "Abra la aplicación Gate",
- "description": "Recomendamos poner Gate en tu pantalla de inicio para un acceso más rápido."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Toque el botón de escaneo",
- "description": "Después de escanear, aparecerá un mensaje de conexión para que conecte su billetera."
- }
- },
- "extension": {
- "step1": {
- "title": "Instala la extensión de Gate",
- "description": "Recomendamos fijar Gate a tu barra de tareas para un acceso más fácil a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Asegúrese de respaldar su billetera usando un método seguro. Nunca comparta su frase secreta de recuperación con nadie."
- },
- "step3": {
- "title": "Refrescar tu navegador",
- "description": "Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión."
- }
- }
- },
- "xportal": {
- "qr_code": {
- "step1": {
- "description": "Coloque xPortal en su pantalla de inicio a su billetera para un acceso más rápido.",
- "title": "Abra la aplicación xPortal"
- },
- "step2": {
- "description": "Crea una billetera o importa una existente.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Después de escanear, aparecerá un mensaje de conexión para que conecte su billetera.",
- "title": "Toque el botón Escanear QR"
- }
- }
- },
- "mew": {
- "qr_code": {
- "step1": {
- "description": "Recomendamos colocar la billetera MEW en tu pantalla de inicio para un acceso más rápido.",
- "title": "Abre la aplicación MEW Wallet"
- },
- "step2": {
- "description": "Puedes respaldar tu billetera fácilmente utilizando la función de respaldo en la nube.",
- "title": "Crear o Importar una Billetera"
- },
- "step3": {
- "description": "Después de escanear, aparecerá un mensaje de conexión para que conecte su billetera.",
- "title": "Toque el botón de escaneo"
- }
- }
- }
- },
- "zilpay": {
- "qr_code": {
- "step1": {
- "title": "Abre la aplicación ZilPay",
- "description": "Agrega ZilPay a tu pantalla de inicio para un acceso más rápido a tu billetera."
- },
- "step2": {
- "title": "Crear o Importar una Billetera",
- "description": "Crea una nueva billetera o importa una existente."
- },
- "step3": {
- "title": "Toque el botón de escaneo",
- "description": "Después de escanear, aparecerá un mensaje de conexión para que conecte su billetera."
- }
- }
- }
-}
-`;export{e as default};
diff --git a/client2/build/assets/ethereum-RGGVA4PY-SWGOlkuk.js b/client2/build/assets/ethereum-RGGVA4PY-SWGOlkuk.js
deleted file mode 100644
index 63d865ae3..000000000
--- a/client2/build/assets/ethereum-RGGVA4PY-SWGOlkuk.js
+++ /dev/null
@@ -1 +0,0 @@
-var e="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2228%22%20fill%3D%22none%22%3E%3Cpath%20fill%3D%22%2325292E%22%20fill-rule%3D%22evenodd%22%20d%3D%22M14%2028a14%2014%200%201%200%200-28%2014%2014%200%200%200%200%2028Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20fill%3D%22url(%23a)%22%20fill-opacity%3D%22.3%22%20fill-rule%3D%22evenodd%22%20d%3D%22M14%2028a14%2014%200%201%200%200-28%2014%2014%200%200%200%200%2028Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20fill%3D%22url(%23b)%22%20d%3D%22M8.19%2014.77%2014%2018.21l5.8-3.44-5.8%208.19-5.81-8.19Z%22%2F%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22m14%2016.93-5.81-3.44L14%204.34l5.81%209.15L14%2016.93Z%22%2F%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22a%22%20x1%3D%220%22%20x2%3D%2214%22%20y1%3D%220%22%20y2%3D%2228%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23fff%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23fff%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b%22%20x1%3D%2214%22%20x2%3D%2214%22%20y1%3D%2214.77%22%20y2%3D%2222.96%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23fff%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23fff%22%20stop-opacity%3D%22.9%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E%0A";export{e as default};
diff --git a/client2/build/assets/etherscan-DSiRCote.js b/client2/build/assets/etherscan-DSiRCote.js
deleted file mode 100644
index f6b44e4d8..000000000
--- a/client2/build/assets/etherscan-DSiRCote.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import{b as c}from"./core-Cywc921C.js";import"./index-B6P9GsMd.js";import"./index.es-MB-v37Rm.js";import"./events-DQ172AOg.js";import"./index-nibyPLVP.js";const i=c``;export{i as etherscanSvg};
diff --git a/client2/build/assets/events-DQ172AOg.js b/client2/build/assets/events-DQ172AOg.js
deleted file mode 100644
index 565c01c07..000000000
--- a/client2/build/assets/events-DQ172AOg.js
+++ /dev/null
@@ -1 +0,0 @@
-var p={exports:{}},x;function T(){if(x)return p.exports;x=1;var a=typeof Reflect=="object"?Reflect:null,h=a&&typeof a.apply=="function"?a.apply:function(e,n,r){return Function.prototype.apply.call(e,n,r)},v;a&&typeof a.ownKeys=="function"?v=a.ownKeys:Object.getOwnPropertySymbols?v=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:v=function(e){return Object.getOwnPropertyNames(e)};function C(t){console&&console.warn&&console.warn(t)}var d=Number.isNaN||function(e){return e!==e};function o(){o.init.call(this)}p.exports=o,p.exports.once=M,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var L=10;function l(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return L},set:function(t){if(typeof t!="number"||t<0||d(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");L=t}}),o.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||d(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function m(t){return t._maxListeners===void 0?o.defaultMaxListeners:t._maxListeners}o.prototype.getMaxListeners=function(){return m(this)},o.prototype.emit=function(e){for(var n=[],r=1;r0&&(s=n[0]),s instanceof Error)throw s;var u=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw u.context=s,u}var c=f[e];if(c===void 0)return!1;if(typeof c=="function")h(c,this,n);else for(var O=c.length,P=b(c,O),r=0;r0&&s.length>i&&!s.warned){s.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=e,u.count=s.length,C(u)}return t}o.prototype.addListener=function(e,n){return y(this,e,n,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(e,n){return y(this,e,n,!0)};function R(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function g(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},i=R.bind(r);return i.listener=n,r.wrapFn=i,i}o.prototype.once=function(e,n){return l(n),this.on(e,g(this,e,n)),this},o.prototype.prependOnceListener=function(e,n){return l(n),this.prependListener(e,g(this,e,n)),this},o.prototype.removeListener=function(e,n){var r,i,f,s,u;if(l(n),i=this._events,i===void 0)return this;if(r=i[e],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,r.listener||n));else if(typeof r!="function"){for(f=-1,s=r.length-1;s>=0;s--)if(r[s]===n||r[s].listener===n){u=r[s].listener,f=s;break}if(f<0)return this;f===0?r.shift():j(r,f),r.length===1&&(i[e]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",e,u||n)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(e){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[e]),this;if(arguments.length===0){var f=Object.keys(r),s;for(i=0;i=0;i--)this.removeListener(e,n[i]);return this};function _(t,e,n){var r=t._events;if(r===void 0)return[];var i=r[e];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?N(i):b(i,i.length)}o.prototype.listeners=function(e){return _(this,e,!0)},o.prototype.rawListeners=function(e){return _(this,e,!1)},o.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):w.call(t,e)},o.prototype.listenerCount=w;function w(t){var e=this._events;if(e!==void 0){var n=e[t];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}o.prototype.eventNames=function(){return this._eventsCount>0?v(this._events):[]};function b(t,e){for(var n=new Array(e),r=0;r
-
-
-`;export{m as exclamationTriangleSvg};
diff --git a/client2/build/assets/extension-J_aXqB0y.js b/client2/build/assets/extension-J_aXqB0y.js
deleted file mode 100644
index 6208e7635..000000000
--- a/client2/build/assets/extension-J_aXqB0y.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import{b as a}from"./core-Cywc921C.js";import"./index-B6P9GsMd.js";import"./index.es-MB-v37Rm.js";import"./events-DQ172AOg.js";import"./index-nibyPLVP.js";const l=a``;export{l as extensionSvg};
diff --git a/client2/build/assets/external-link-2oDLjUyE.js b/client2/build/assets/external-link-2oDLjUyE.js
deleted file mode 100644
index 95eb12f89..000000000
--- a/client2/build/assets/external-link-2oDLjUyE.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import{b as o}from"./core-Cywc921C.js";import"./index-B6P9GsMd.js";import"./index.es-MB-v37Rm.js";import"./events-DQ172AOg.js";import"./index-nibyPLVP.js";const n=o``;export{n as externalLinkSvg};
diff --git a/client2/build/assets/facebook-B-haw1QZ.js b/client2/build/assets/facebook-B-haw1QZ.js
deleted file mode 100644
index 37354151e..000000000
--- a/client2/build/assets/facebook-B-haw1QZ.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import{b as l}from"./core-Cywc921C.js";import"./index-B6P9GsMd.js";import"./index.es-MB-v37Rm.js";import"./events-DQ172AOg.js";import"./index-nibyPLVP.js";const p=l``;export{p as facebookSvg};
diff --git a/client2/build/assets/farcaster-kmU5_tW-.js b/client2/build/assets/farcaster-kmU5_tW-.js
deleted file mode 100644
index b4653c21d..000000000
--- a/client2/build/assets/farcaster-kmU5_tW-.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import{b as h}from"./core-Cywc921C.js";import"./index-B6P9GsMd.js";import"./index.es-MB-v37Rm.js";import"./events-DQ172AOg.js";import"./index-nibyPLVP.js";const f=h``;export{f as farcasterSvg};
diff --git a/client2/build/assets/filters-VN7Rz8PT.js b/client2/build/assets/filters-VN7Rz8PT.js
deleted file mode 100644
index eafc6f87a..000000000
--- a/client2/build/assets/filters-VN7Rz8PT.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import{b as o}from"./core-Cywc921C.js";import"./index-B6P9GsMd.js";import"./index.es-MB-v37Rm.js";import"./events-DQ172AOg.js";import"./index-nibyPLVP.js";const t=o``;export{t as filtersSvg};
diff --git a/client2/build/assets/flow-5FQJFCTK-CUie2reO.js b/client2/build/assets/flow-5FQJFCTK-CUie2reO.js
deleted file mode 100644
index 3d20a4d5d..000000000
--- a/client2/build/assets/flow-5FQJFCTK-CUie2reO.js
+++ /dev/null
@@ -1 +0,0 @@
-var C="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Ccircle%20fill%3D%22%2300ef8b%22%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%2F%3E%3Crect%20fill%3D%22%23fff%22%20x%3D%2257.82%22%20y%3D%2242.18%22%20width%3D%2214.12%22%20height%3D%2214.12%22%2F%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M43.71%2C61.59a5.3%2C5.3%2C0%2C1%2C1-5.3-5.3h5.3V42.18h-5.3A19.41%2C19.41%2C0%2C1%2C0%2C57.82%2C61.59v-5.3H43.71Z%22%2F%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M63.12%2C35.12H79V21H63.12A19.43%2C19.43%2C0%2C0%2C0%2C43.71%2C40.41v1.77H57.82V40.41A5.3%2C5.3%2C0%2C0%2C1%2C63.12%2C35.12Z%22%2F%3E%3Cpolygon%20fill%3D%22%2316ff99%22%20points%3D%2243.71%2056.29%2057.82%2056.29%2057.82%2056.29%2057.82%2042.18%2057.82%2042.18%2043.71%2042.18%2043.71%2056.29%22%2F%3E%3C%2Fsvg%3E";export{C as default};
diff --git a/client2/build/assets/fr_FR-CM2EDAQC-DvlCXiU9.js b/client2/build/assets/fr_FR-CM2EDAQC-DvlCXiU9.js
deleted file mode 100644
index 05229c79e..000000000
--- a/client2/build/assets/fr_FR-CM2EDAQC-DvlCXiU9.js
+++ /dev/null
@@ -1,1427 +0,0 @@
-var e=`{
- "connect_wallet": {
- "label": "Connecter le portefeuille",
- "wrong_network": {
- "label": "Réseau incorrect"
- }
- },
- "intro": {
- "title": "Qu'est-ce qu'un portefeuille?",
- "description": "Un portefeuille est utilisé pour envoyer, recevoir, stocker et afficher des actifs numériques. C'est aussi une nouvelle façon de se connecter, sans avoir besoin de créer de nouveaux comptes et mots de passe sur chaque site.",
- "digital_asset": {
- "title": "Un foyer pour vos actifs numériques",
- "description": "Les portefeuilles sont utilisés pour envoyer, recevoir, stocker et afficher des actifs numériques comme Ethereum et les NFTs."
- },
- "login": {
- "title": "Une nouvelle façon de se connecter",
- "description": "Au lieu de créer de nouveaux comptes et mots de passe sur chaque site Web, connectez simplement votre portefeuille."
- },
- "get": {
- "label": "Obtenir un portefeuille"
- },
- "learn_more": {
- "label": "En savoir plus"
- }
- },
- "sign_in": {
- "label": "Vérifiez votre compte",
- "description": "Pour terminer la connexion, vous devez signer un message dans votre portefeuille pour vérifier que vous êtes le propriétaire de ce compte.",
- "message": {
- "send": "Envoyer le message",
- "preparing": "Préparation du message...",
- "cancel": "Annuler",
- "preparing_error": "Erreur lors de la préparation du message, veuillez réessayer!"
- },
- "signature": {
- "waiting": "En attente de la signature...",
- "verifying": "Vérification de la signature...",
- "signing_error": "Erreur lors de la signature du message, veuillez réessayer!",
- "verifying_error": "Erreur lors de la vérification de la signature, veuillez réessayer!",
- "oops_error": "Oups, quelque chose a mal tourné!"
- }
- },
- "connect": {
- "label": "Connecter",
- "title": "Connecter un portefeuille",
- "new_to_ethereum": {
- "description": "Nouveau aux portefeuilles Ethereum?",
- "learn_more": {
- "label": "En savoir plus"
- }
- },
- "learn_more": {
- "label": "En savoir plus"
- },
- "recent": "Récents",
- "status": {
- "opening": "Ouverture %{wallet}...",
- "connecting": "Connect :)ing",
- "connect_mobile": "Continuer dans %{wallet}",
- "not_installed": "%{wallet} n'est pas installé",
- "not_available": "%{wallet} n'est pas disponible",
- "confirm": "Confirmez la connexion dans l'extension",
- "confirm_mobile": "Accepter la demande de connexion dans le portefeuille"
- },
- "secondary_action": {
- "get": {
- "description": "Vous n'avez pas de %{wallet}?",
- "label": "OBTENIR"
- },
- "install": {
- "label": "INSTALLER"
- },
- "retry": {
- "label": "RÉESSAYER"
- }
- },
- "walletconnect": {
- "description": {
- "full": "Vous avez besoin du modal officiel de WalletConnect ?",
- "compact": "Besoin du modal de WalletConnect ?"
- },
- "open": {
- "label": "OUVRIR"
- }
- }
- },
- "connect_scan": {
- "title": "Scannez avec %{wallet}",
- "fallback_title": "Scannez avec votre téléphone"
- },
- "connector_group": {
- "installed": "Installé",
- "recommended": "Recommandé",
- "other": "Autre",
- "popular": "Populaire",
- "more": "Plus",
- "others": "Autres"
- },
- "get": {
- "title": "Obtenez un portefeuille",
- "action": {
- "label": "OBTENIR"
- },
- "mobile": {
- "description": "Portefeuille mobile"
- },
- "extension": {
- "description": "Extension de navigateur"
- },
- "mobile_and_extension": {
- "description": "Portefeuille mobile et extension"
- },
- "mobile_and_desktop": {
- "description": "Portefeuille mobile et de bureau"
- },
- "looking_for": {
- "title": "Ce n'est pas ce que vous cherchez ?",
- "mobile": {
- "description": "Sélectionnez un portefeuille sur l'écran principal pour commencer avec un autre fournisseur de portefeuille."
- },
- "desktop": {
- "compact_description": "Sélectionnez un portefeuille sur l'écran principal pour commencer avec un autre fournisseur de portefeuille.",
- "wide_description": "Sélectionnez un portefeuille sur la gauche pour commencer avec un autre fournisseur de portefeuille."
- }
- }
- },
- "get_options": {
- "title": "Commencez avec %{wallet}",
- "short_title": "Obtenez %{wallet}",
- "mobile": {
- "title": "%{wallet} pour mobile",
- "description": "Utilisez le portefeuille mobile pour explorer le monde d'Ethereum.",
- "download": {
- "label": "Obtenez l'application"
- }
- },
- "extension": {
- "title": "%{wallet} pour %{browser}",
- "description": "Accédez à votre portefeuille directement depuis votre navigateur web préféré.",
- "download": {
- "label": "Ajouter à %{browser}"
- }
- },
- "desktop": {
- "title": "%{wallet} pour %{platform}",
- "description": "Accédez à votre portefeuille nativement depuis votre puissant ordinateur de bureau.",
- "download": {
- "label": "Ajouter à %{platform}"
- }
- }
- },
- "get_mobile": {
- "title": "Installer %{wallet}",
- "description": "Scannez avec votre téléphone pour télécharger sur iOS ou Android",
- "continue": {
- "label": "Continuer"
- }
- },
- "get_instructions": {
- "mobile": {
- "connect": {
- "label": "Connecter"
- },
- "learn_more": {
- "label": "En savoir plus"
- }
- },
- "extension": {
- "refresh": {
- "label": "Rafraîchir"
- },
- "learn_more": {
- "label": "En savoir plus"
- }
- },
- "desktop": {
- "connect": {
- "label": "Connecter"
- },
- "learn_more": {
- "label": "En savoir plus"
- }
- }
- },
- "chains": {
- "title": "Changer de réseau",
- "wrong_network": "Mauvais réseau détecté, changez ou déconnectez-vous pour continuer.",
- "confirm": "Confirmer dans le portefeuille",
- "switching_not_supported": "Votre portefeuille ne supporte pas le changement de réseau depuis %{appName}. Essayez de changer de réseau depuis votre portefeuille.",
- "switching_not_supported_fallback": "Votre portefeuille ne prend pas en charge le changement de réseau à partir de cette application. Essayez de changer de réseau à partir de votre portefeuille à la place.",
- "disconnect": "Déconnecter",
- "connected": "Connecté"
- },
- "profile": {
- "disconnect": {
- "label": "Déconnecter"
- },
- "copy_address": {
- "label": "Copier l'adresse",
- "copied": "Copié !"
- },
- "explorer": {
- "label": "Voir plus sur l'explorateur"
- },
- "transactions": {
- "description": "%{appName} transactions apparaîtront ici...",
- "description_fallback": "Vos transactions apparaîtront ici...",
- "recent": {
- "title": "Transactions Récentes"
- },
- "clear": {
- "label": "Tout supprimer"
- }
- }
- },
- "wallet_connectors": {
- "argent": {
- "qr_code": {
- "step1": {
- "description": "Mettez Argent sur votre écran d'accueil pour un accès plus rapide à votre portefeuille.",
- "title": "Ouvrez l'application Argent"
- },
- "step2": {
- "description": "Créez un portefeuille et un nom d'utilisateur, ou importez un portefeuille existant.",
- "title": "Créer ou Importer un Portefeuille"
- },
- "step3": {
- "description": "Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",
- "title": "Appuyez sur le bouton Scan QR"
- }
- }
- },
- "berasig": {
- "extension": {
- "step1": {
- "title": "Installez l'extension BeraSig",
- "description": "Nous vous recommandons d'épingler BeraSig à votre barre des tâches pour un accès plus facile à votre portefeuille."
- },
- "step2": {
- "title": "Créer un Portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension."
- }
- }
- },
- "best": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application Best Wallet",
- "description": "Ajoutez Best Wallet à votre écran d'accueil pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Créez un nouveau portefeuille ou importez-en un existant."
- },
- "step3": {
- "title": "Touchez l'icône QR et scannez",
- "description": "Touchez l'icône QR sur votre écran d'accueil, scannez le code et confirmez l'invite pour vous connecter."
- }
- }
- },
- "bifrost": {
- "qr_code": {
- "step1": {
- "description": "Nous vous recommandons de mettre le portefeuille Bifrost sur votre écran d'accueil pour un accès plus rapide.",
- "title": "Ouvrez l'application Bifrost Wallet"
- },
- "step2": {
- "description": "Créez ou importez un portefeuille en utilisant votre phrase de récupération.",
- "title": "Créer ou Importer un portefeuille"
- },
- "step3": {
- "description": "Après votre scan, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",
- "title": "Appuyez sur le bouton de scan"
- }
- }
- },
- "bitget": {
- "qr_code": {
- "step1": {
- "description": "Nous vous recommandons de placer Bitget Wallet sur votre écran d'accueil pour un accès plus rapide.",
- "title": "Ouvrez l'application Bitget Wallet"
- },
- "step2": {
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque.",
- "title": "Créer ou Importer un portefeuille"
- },
- "step3": {
- "description": "Après le scan, une incitation de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",
- "title": "Appuyez sur le bouton de scan"
- }
- },
- "extension": {
- "step1": {
- "description": "Nous vous recommandons d'épingler Bitget Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille.",
- "title": "Installez l'extension de portefeuille Bitget"
- },
- "step2": {
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne.",
- "title": "Créez ou Importez un portefeuille"
- },
- "step3": {
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension.",
- "title": "Rafraîchissez votre navigateur"
- }
- }
- },
- "bitski": {
- "extension": {
- "step1": {
- "description": "Nous recommandons d'épingler Bitski à votre barre des tâches pour un accès plus rapide à votre portefeuille.",
- "title": "Installez l'extension Bitski"
- },
- "step2": {
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit.",
- "title": "Créer ou Importer un portefeuille"
- },
- "step3": {
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension.",
- "title": "Rafraîchissez votre navigateur"
- }
- }
- },
- "bitverse": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application Bitverse Wallet",
- "description": "Ajoutez Bitverse Wallet à votre écran d'accueil pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Créez un nouveau portefeuille ou importez-en un existant."
- },
- "step3": {
- "title": "Touchez l'icône QR et scannez",
- "description": "Touchez l'icône QR sur votre écran d'accueil, scannez le code et confirmez l'invite pour vous connecter."
- }
- }
- },
- "bloom": {
- "desktop": {
- "step1": {
- "title": "Ouvrez l'application Bloom Wallet",
- "description": "Nous recommandons de placer Bloom Wallet sur votre écran d'accueil pour un accès plus rapide."
- },
- "step2": {
- "description": "Créez ou importez un portefeuille en utilisant votre phrase de récupération.",
- "title": "Créer ou Importer un Portefeuille"
- },
- "step3": {
- "description": "Après avoir obtenu un portefeuille, cliquez sur Connecter pour vous connecter via Bloom. Une invite de connexion apparaîtra dans l'application pour que vous confirmiez la connexion.",
- "title": "Cliquez sur Connecter"
- }
- }
- },
- "bybit": {
- "qr_code": {
- "step1": {
- "description": "Nous recommandons de placer Bybit sur votre écran d'accueil pour un accès plus rapide à votre portefeuille.",
- "title": "Ouvrez l'application Bybit"
- },
- "step2": {
- "description": "Vous pouvez facilement sauvegarder votre portefeuille en utilisant notre fonction de sauvegarde sur votre téléphone.",
- "title": "Créer ou Importer un Portefeuille"
- },
- "step3": {
- "description": "Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",
- "title": "Appuyez sur le bouton de scan"
- }
- },
- "extension": {
- "step1": {
- "description": "Cliquez en haut à droite de votre navigateur et épinglez le portefeuille Bybit pour un accès facile.",
- "title": "Installez l'extension Bybit Wallet"
- },
- "step2": {
- "description": "Créez un nouveau portefeuille ou importez-en un existant.",
- "title": "Créer ou Importer un portefeuille"
- },
- "step3": {
- "description": "Une fois que vous avez configuré Bybit Wallet, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension.",
- "title": "Rafraîchissez votre navigateur"
- }
- }
- },
- "binance": {
- "qr_code": {
- "step1": {
- "description": "Nous vous recommandons de mettre Binance sur votre écran d'accueil pour un accès plus rapide à votre portefeuille.",
- "title": "Ouvrez l'application Binance"
- },
- "step2": {
- "description": "Vous pouvez facilement sauvegarder votre portefeuille en utilisant notre fonction de sauvegarde sur votre téléphone.",
- "title": "Créer ou Importer un Portefeuille"
- },
- "step3": {
- "description": "Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",
- "title": "Appuyez sur le bouton WalletConnect"
- }
- }
- },
- "coin98": {
- "qr_code": {
- "step1": {
- "description": "Nous vous recommandons de placer Coin98 Wallet sur votre écran d'accueil pour un accès plus rapide à votre portefeuille.",
- "title": "Ouvrez l'application Coin98 Wallet"
- },
- "step2": {
- "description": "Vous pouvez facilement sauvegarder votre portefeuille en utilisant notre fonction de sauvegarde sur votre téléphone.",
- "title": "Créer ou Importer un portefeuille"
- },
- "step3": {
- "description": "Après que vous ayez scanné, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",
- "title": "Appuyez sur le bouton WalletConnect"
- }
- },
- "extension": {
- "step1": {
- "description": "Cliquez en haut à droite de votre navigateur et épinglez Coin98 Wallet pour un accès facile.",
- "title": "Installez l'extension Coin98 Wallet"
- },
- "step2": {
- "description": "Créez un nouveau portefeuille ou importez-en un existant.",
- "title": "Créer ou Importer un portefeuille"
- },
- "step3": {
- "description": "Une fois que vous avez configuré Coin98 Wallet, cliquez ci-dessous pour actualiser le navigateur et charger l'extension.",
- "title": "Rafraîchissez votre navigateur"
- }
- }
- },
- "coinbase": {
- "qr_code": {
- "step1": {
- "description": "Nous recommandons de placer Coinbase Wallet sur votre écran d'accueil pour un accès plus rapide.",
- "title": "Ouvrez l'application Coinbase Wallet"
- },
- "step2": {
- "description": "Vous pouvez facilement sauvegarder votre portefeuille en utilisant la fonction de sauvegarde cloud.",
- "title": "Créer ou Importer un portefeuille"
- },
- "step3": {
- "description": "Après avoir scanné, une invite de connexion s'affichera pour que vous puissiez connecter votre portefeuille.",
- "title": "Appuyez sur le bouton de scan"
- }
- },
- "extension": {
- "step1": {
- "description": "Nous recommandons d'épingler Coinbase Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille.",
- "title": "Installez l'extension Coinbase Wallet"
- },
- "step2": {
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sûre. Ne partagez jamais votre phrase secrète avec quiconque.",
- "title": "Créer ou Importer un portefeuille"
- },
- "step3": {
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension.",
- "title": "Actualisez votre navigateur"
- }
- }
- },
- "compass": {
- "extension": {
- "step1": {
- "description": "Nous vous recommandons d'épingler Compass Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille.",
- "title": "Installez l'extension Compass Wallet"
- },
- "step2": {
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque.",
- "title": "Créer ou Importer un Portefeuille"
- },
- "step3": {
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension.",
- "title": "Rafraîchissez votre navigateur"
- }
- }
- },
- "core": {
- "qr_code": {
- "step1": {
- "description": "Nous recommandons de placer Core sur votre écran d'accueil pour un accès plus rapide à votre portefeuille.",
- "title": "Ouvrez l'application Core"
- },
- "step2": {
- "description": "Vous pouvez facilement sauvegarder votre portefeuille en utilisant notre fonction de sauvegarde sur votre téléphone.",
- "title": "Créer ou Importer un portefeuille"
- },
- "step3": {
- "description": "Après avoir scanné, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",
- "title": "Appuyez sur le bouton WalletConnect"
- }
- },
- "extension": {
- "step1": {
- "description": "Nous recommandons d'épingler Core à votre barre des tâches pour un accès plus rapide à votre portefeuille.",
- "title": "Installez l'extension Core"
- },
- "step2": {
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque.",
- "title": "Créez ou Importer un Portefeuille"
- },
- "step3": {
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension.",
- "title": "Rafraîchissez votre navigateur"
- }
- }
- },
- "fox": {
- "qr_code": {
- "step1": {
- "description": "Nous recommandons de mettre FoxWallet sur votre écran d'accueil pour un accès plus rapide.",
- "title": "Ouvrez l'application FoxWallet"
- },
- "step2": {
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne.",
- "title": "Créer ou Importer un portefeuille"
- },
- "step3": {
- "description": "Après avoir scanné, une invitation à la connexion apparaîtra pour vous permettre de connecter votre portefeuille.",
- "title": "Appuyez sur le bouton de scan"
- }
- }
- },
- "frontier": {
- "qr_code": {
- "step1": {
- "description": "Nous vous recommandons de placer le portefeuille Frontier sur votre écran d'accueil pour un accès plus rapide.",
- "title": "Ouvrez l'application Frontier Wallet"
- },
- "step2": {
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne.",
- "title": "Créer ou Importer un portefeuille"
- },
- "step3": {
- "description": "Après avoir scanné, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",
- "title": "Appuyez sur le bouton de scan"
- }
- },
- "extension": {
- "step1": {
- "description": "Nous recommandons d'épingler Frontier Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille.",
- "title": "Installez l'extension Frontier Wallet"
- },
- "step2": {
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne.",
- "title": "Créez ou importez un portefeuille"
- },
- "step3": {
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension.",
- "title": "Rafraîchissez votre navigateur"
- }
- }
- },
- "im_token": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application imToken",
- "description": "Placez l'application imToken sur votre écran d'accueil pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créez ou importez un portefeuille",
- "description": "Créez un nouveau portefeuille ou importez-en un existant ."
- },
- "step3": {
- "title": "Appuyez sur l'icône du scanner dans le coin supérieur droit",
- "description": "Choisissez Nouvelle Connexion, puis scannez le code QR et confirmez l'invite pour vous connecter."
- }
- }
- },
- "iopay": {
- "qr_code": {
- "step1": {
- "description": "Nous recommandons de placer ioPay sur votre écran d'accueil pour un accès plus rapide à votre portefeuille.",
- "title": "Ouvrez l'application ioPay"
- },
- "step2": {
- "description": "Vous pouvez facilement sauvegarder votre portefeuille en utilisant notre fonction de sauvegarde sur votre téléphone.",
- "title": "Créer ou Importer un Portefeuille"
- },
- "step3": {
- "description": "Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",
- "title": "Appuyez sur le bouton WalletConnect"
- }
- }
- },
- "kaikas": {
- "extension": {
- "step1": {
- "description": "Nous recommandons d'épingler Kaikas à votre barre des tâches pour un accès plus rapide à votre portefeuille.",
- "title": "Installez l'extension Kaikas"
- },
- "step2": {
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque.",
- "title": "Créer ou Importer un Portefeuille"
- },
- "step3": {
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension.",
- "title": "Rafraîchissez votre navigateur"
- }
- },
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application Kaikas",
- "description": "Placez l'application Kaikas sur votre écran d'accueil pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Créez un nouveau portefeuille ou importez-en un existant."
- },
- "step3": {
- "title": "Appuyez sur l'icône du scanner dans le coin supérieur droit",
- "description": "Choisissez Nouvelle Connexion, puis scannez le code QR et confirmez l'invite pour vous connecter."
- }
- }
- },
- "kaia": {
- "extension": {
- "step1": {
- "description": "Nous vous recommandons d'épingler Kaia à votre barre des tâches pour un accès plus rapide à votre portefeuille.",
- "title": "Installez l'extension Kaia"
- },
- "step2": {
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque.",
- "title": "Créer ou Importer un Portefeuille"
- },
- "step3": {
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension.",
- "title": "Rafraîchissez votre navigateur"
- }
- },
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application Kaia",
- "description": "Mettez l'application Kaia sur votre écran d'accueil pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Créez un nouveau portefeuille ou importez-en un existant."
- },
- "step3": {
- "title": "Appuyez sur l'icône du scanner dans le coin supérieur droit",
- "description": "Choisissez Nouvelle Connexion, puis scannez le code QR et confirmez l'invite pour vous connecter."
- }
- }
- },
- "kraken": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application Kraken Wallet",
- "description": "Ajoutez Kraken Wallet à votre écran d'accueil pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Créez un nouveau portefeuille ou importez-en un existant."
- },
- "step3": {
- "title": "Touchez l'icône QR et scannez",
- "description": "Touchez l'icône QR sur votre écran d'accueil, scannez le code et confirmez l'invite pour vous connecter."
- }
- }
- },
- "kresus": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application Kresus Wallet",
- "description": "Ajoutez Kresus Wallet sur votre écran d'accueil pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Créez un nouveau portefeuille ou importez-en un existant."
- },
- "step3": {
- "title": "Touchez l'icône QR et scannez",
- "description": "Touchez l'icône QR sur votre écran d'accueil, scannez le code et confirmez l'invite pour vous connecter."
- }
- }
- },
- "magicEden": {
- "extension": {
- "step1": {
- "title": "Installez l'extension Magic Eden",
- "description": "Nous vous recommandons d'épingler Magic Eden à votre barre des tâches pour un accès plus facile à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase de récupération secrète avec personne."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension."
- }
- }
- },
- "metamask": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application MetaMask",
- "description": "Nous vous recommandons de mettre MetaMask sur votre écran d'accueil pour un accès plus rapide."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Veillez à sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit."
- },
- "step3": {
- "title": "Appuyez sur le bouton de scan",
- "description": "Après avoir scanné, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille."
- }
- },
- "extension": {
- "step1": {
- "title": "Installez l’extension de MetaMask",
- "description": "Nous recommandons d'épingler MetaMask à votre barre des tâches pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."
- }
- }
- },
- "nestwallet": {
- "extension": {
- "step1": {
- "title": "Installez l'extension NestWallet",
- "description": "Nous vous recommandons d'épingler NestWallet à votre barre des tâches pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension."
- }
- }
- },
- "okx": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application OKX Wallet",
- "description": "Nous recommandons de mettre OKX Wallet sur votre écran d'accueil pour un accès plus rapide."
- },
- "step2": {
- "title": "Créer ou Importer un portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."
- },
- "step3": {
- "title": "Appuyez sur le bouton de numérisation",
- "description": "Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille."
- }
- },
- "extension": {
- "step1": {
- "title": "Installez l'extension de portefeuille OKX",
- "description": "Nous vous recommandons d'épingler le portefeuille OKX à votre barre des tâches pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension."
- }
- }
- },
- "omni": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application Omni",
- "description": "Ajoutez Omni à votre écran d'accueil pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Créez un nouveau portefeuille ou importez-en un existant."
- },
- "step3": {
- "title": "Touchez l'icône QR et scannez",
- "description": "Appuyez sur l'icône QR sur votre écran d'accueil, scannez le code et confirmez l'invite pour vous connecter."
- }
- }
- },
- "1inch": {
- "qr_code": {
- "step1": {
- "description": "Placez 1inch Wallet sur votre écran d'accueil pour un accès plus rapide à votre portefeuille.",
- "title": "Ouvrez l'application 1inch Wallet"
- },
- "step2": {
- "description": "Créez un portefeuille et un nom d'utilisateur, ou importez un portefeuille existant.",
- "title": "Créer ou Importer un Portefeuille"
- },
- "step3": {
- "description": "Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",
- "title": "Appuyez sur le bouton Scan QR"
- }
- }
- },
- "token_pocket": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application TokenPocket",
- "description": "Nous vous recommandons de mettre TokenPocket sur votre écran d'accueil pour un accès plus rapide."
- },
- "step2": {
- "title": "Créez ou Importer un portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille à l'aide d'une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit."
- },
- "step3": {
- "title": "Appuyez sur le bouton de scan",
- "description": "Après votre scan, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille."
- }
- },
- "extension": {
- "step1": {
- "title": "Installez l'extension TokenPocket",
- "description": "Nous recommandons d'épingler TokenPocket à votre barre des tâches pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."
- }
- }
- },
- "trust": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application Trust Wallet",
- "description": "Placez Trust Wallet sur votre écran d'accueil pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un portefeuille",
- "description": "Créer un nouveau portefeuille ou en importer un existant."
- },
- "step3": {
- "title": "Appuyez sur WalletConnect dans les paramètres",
- "description": "Choisissez Nouvelle Connexion, puis scannez le code QR et confirmez l'invite pour vous connecter."
- }
- },
- "extension": {
- "step1": {
- "title": "Installez l'extension Trust Wallet",
- "description": "Cliquez en haut à droite de votre navigateur et épinglez Trust Wallet pour un accès facile."
- },
- "step2": {
- "title": "Créer ou importer un portefeuille",
- "description": "Créer un nouveau portefeuille ou en importer un existant."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré Trust Wallet, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."
- }
- }
- },
- "uniswap": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application Uniswap",
- "description": "Ajoutez Uniswap Wallet à votre écran d'accueil pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créez ou importez un portefeuille",
- "description": "Créez un nouveau portefeuille ou importez-en un existant."
- },
- "step3": {
- "title": "Tapez sur l'icône QR et scannez",
- "description": "Touchez l'icône QR sur votre écran d'accueil, scannez le code et confirmez l'invite pour vous connecter."
- }
- }
- },
- "zerion": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application Zerion",
- "description": "Nous vous recommandons de mettre Zerion sur votre écran d'accueil pour un accès plus rapide."
- },
- "step2": {
- "title": "Créer ou Importer un portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne."
- },
- "step3": {
- "title": "Appuyez sur le bouton de scan",
- "description": "Une fois que vous avez scanné, une invite de connexion apparaîtra pour que vous puissiez connecter votre portefeuille."
- }
- },
- "extension": {
- "step1": {
- "title": "Installer l'extension Zerion",
- "description": "Nous recommandons d'épingler Zerion à votre barre des tâches pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créez ou Importez un portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."
- }
- }
- },
- "rainbow": {
- "qr_code": {
- "step1": {
- "title": "Ouvre l'application Rainbow",
- "description": "Nous vous recommandons de mettre Rainbow sur votre écran d'accueil pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créez ou Importez un portefeuille",
- "description": "Vous pouvez facilement sauvegarder votre portefeuille en utilisant notre fonction de sauvegarde sur votre téléphone."
- },
- "step3": {
- "title": "Appuyez sur le bouton de scan",
- "description": "Après avoir scanné, une invite de connexion apparaîtra pour que vous connectiez votre portefeuille."
- }
- }
- },
- "enkrypt": {
- "extension": {
- "step1": {
- "description": "Nous vous recommandons d'épingler Enkrypt Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille.",
- "title": "Installez l'extension Enkrypt Wallet"
- },
- "step2": {
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quelqu'un.",
- "title": "Créer ou Importer un portefeuille"
- },
- "step3": {
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l’extension.",
- "title": "Rafraîchissez votre navigateur"
- }
- }
- },
- "frame": {
- "extension": {
- "step1": {
- "description": "Nous vous recommandons d'épingler Frame à votre barre des tâches pour un accès plus rapide à votre portefeuille.",
- "title": "Installez Frame & l'extension complémentaire"
- },
- "step2": {
- "description": "Assurez-vous de sauvegarder votre portefeuille à l'aide d'une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne.",
- "title": "Créer ou Importer un portefeuille"
- },
- "step3": {
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension.",
- "title": "Rafraîchissez votre navigateur"
- }
- }
- },
- "one_key": {
- "extension": {
- "step1": {
- "title": "Installez l'extension OneKey Wallet",
- "description": "Nous vous recommandons d'épingler OneKey Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."
- }
- }
- },
- "paraswap": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application ParaSwap",
- "description": "Ajoutez ParaSwap Wallet à votre écran d'accueil pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Créez un nouveau portefeuille ou importez-en un existant."
- },
- "step3": {
- "title": "Touchez l'icône QR et scannez",
- "description": "Touchez l'icône QR sur votre écran d'accueil, scannez le code et confirmez l'invite pour vous connecter."
- }
- }
- },
- "phantom": {
- "extension": {
- "step1": {
- "title": "Installez l'extension Phantom",
- "description": "Nous vous recommandons d'épingler Phantom à votre barre des tâches pour un accès plus facile à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase de récupération secrète avec personne."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."
- }
- }
- },
- "rabby": {
- "extension": {
- "step1": {
- "title": "Installez l'extension Rabby",
- "description": "Nous recommandons d'épingler Rabby à votre barre des tâches pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit."
- },
- "step3": {
- "title": "Actualisez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension."
- }
- }
- },
- "ronin": {
- "qr_code": {
- "step1": {
- "description": "Nous recommandons de placer Ronin Wallet sur votre écran d'accueil pour un accès plus rapide.",
- "title": "Ouvrez l'application Ronin Wallet"
- },
- "step2": {
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque.",
- "title": "Créer ou Importer un Portefeuille"
- },
- "step3": {
- "description": "Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",
- "title": "Appuyez sur le bouton de scan"
- }
- },
- "extension": {
- "step1": {
- "description": "Nous recommandons d'épingler Ronin Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille.",
- "title": "Installez l'extension Ronin Wallet"
- },
- "step2": {
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque.",
- "title": "Créer ou Importer un Portefeuille"
- },
- "step3": {
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension.",
- "title": "Rafraîchissez votre navigateur"
- }
- }
- },
- "ramper": {
- "extension": {
- "step1": {
- "title": "Installez l'extension Ramper",
- "description": "Nous recommandons d'épingler Ramper à votre barre des tâches pour un accès plus facile à votre portefeuille."
- },
- "step2": {
- "title": "Créer un Portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension."
- }
- }
- },
- "safeheron": {
- "extension": {
- "step1": {
- "title": "Installez l'extension Core",
- "description": "Nous recommandons d'épingler Safeheron à votre barre des tâches pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quelqu'un."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."
- }
- }
- },
- "taho": {
- "extension": {
- "step1": {
- "title": "Installez l'extension Taho",
- "description": "Nous vous recommandons d'épingler Taho à votre barre des tâches pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créez ou Importez un portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quelqu'un."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."
- }
- }
- },
- "wigwam": {
- "extension": {
- "step1": {
- "title": "Installez l'extension Wigwam",
- "description": "Nous vous recommandons d'épingler Wigwam à votre barre des tâches pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension."
- }
- }
- },
- "talisman": {
- "extension": {
- "step1": {
- "title": "Installez l'extension Talisman",
- "description": "Nous vous recommandons d'épingler Talisman à votre barre des tâches pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou importer un portefeuille Ethereum",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase de récupération avec personne."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."
- }
- }
- },
- "xdefi": {
- "extension": {
- "step1": {
- "title": "Installez l'extension du portefeuille XDEFI",
- "description": "Nous vous recommandons d'épingler XDEFI Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."
- }
- }
- },
- "zeal": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application Zeal",
- "description": "Ajoutez Zeal Wallet à votre écran d'accueil pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Créez un nouveau portefeuille ou importez-en un existant."
- },
- "step3": {
- "title": "Touchez l'icône QR et scannez",
- "description": "Touchez l'icône QR sur votre écran d'accueil, scannez le code et confirmez l'invite pour vous connecter."
- }
- },
- "extension": {
- "step1": {
- "title": "Installez l'extension Zeal",
- "description": "Nous vous recommandons d'épingler Zeal à votre barre des tâches pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension."
- }
- }
- },
- "safepal": {
- "extension": {
- "step1": {
- "title": "Installez l'extension SafePal Wallet",
- "description": "Cliquez en haut à droite de votre navigateur et épinglez SafePal Wallet pour un accès facile."
- },
- "step2": {
- "title": "Créer ou Importer un portefeuille",
- "description": "Créez un nouveau portefeuille ou importez-en un existant."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré SafePal Wallet, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."
- }
- },
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application SafePal Wallet",
- "description": "Mettez SafePal Wallet sur votre écran d'accueil pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Créez un nouveau portefeuille ou importez-en un existant."
- },
- "step3": {
- "title": "Appuyez sur WalletConnect dans les paramètres",
- "description": "Choisissez Nouvelle Connexion, puis scannez le code QR et confirmez l'invite pour vous connecter."
- }
- }
- },
- "desig": {
- "extension": {
- "step1": {
- "title": "Installez l'extension Desig",
- "description": "Nous vous recommandons d'épingler Desig à votre barre des tâches pour un accès plus facile à votre portefeuille."
- },
- "step2": {
- "title": "Créer un Portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension."
- }
- }
- },
- "subwallet": {
- "extension": {
- "step1": {
- "title": "Installez l'extension SubWallet",
- "description": "Nous vous recommandons d'épingler SubWallet à votre barre des tâches pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase de récupération avec personne."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension."
- }
- },
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application SubWallet",
- "description": "Nous vous recommandons de mettre SubWallet sur votre écran d'accueil pour un accès plus rapide."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."
- },
- "step3": {
- "title": "Appuyez sur le bouton de scan",
- "description": "Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille."
- }
- }
- },
- "clv": {
- "extension": {
- "step1": {
- "title": "Installez l'extension CLV Wallet",
- "description": "Nous vous recommandons d'épingler CLV Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension."
- }
- },
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application CLV Wallet",
- "description": "Nous vous recommandons de mettre CLV Wallet sur votre écran d'accueil pour un accès plus rapide."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."
- },
- "step3": {
- "title": "Appuyez sur le bouton de scan",
- "description": "Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille."
- }
- }
- },
- "okto": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application Okto",
- "description": "Ajoutez Okto à votre écran d'accueil pour un accès rapide"
- },
- "step2": {
- "title": "Créer un portefeuille MPC",
- "description": "Créez un compte et générez un portefeuille"
- },
- "step3": {
- "title": "Appuyez sur WalletConnect dans les paramètres",
- "description": "Touchez l'icône 'Scan QR' en haut à droite et confirmez l'invite pour vous connecter."
- }
- }
- },
- "ledger": {
- "desktop": {
- "step1": {
- "title": "Ouvrez l'application Ledger Live",
- "description": "Nous vous recommandons de mettre Ledger Live sur votre écran d'accueil pour un accès plus rapide."
- },
- "step2": {
- "title": "Configurez votre Ledger",
- "description": "Configurez un nouveau Ledger ou connectez-vous à un existant."
- },
- "step3": {
- "title": "Connecter",
- "description": "Une fois que vous avez scanné, une invite de connexion apparaîtra pour que vous puissiez connecter votre portefeuille."
- }
- },
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application Ledger Live",
- "description": "Nous vous recommandons de mettre Ledger Live sur votre écran d'accueil pour un accès plus rapide."
- },
- "step2": {
- "title": "Configurez votre Ledger",
- "description": "Vous pouvez soit synchroniser avec l'application de bureau, soit connecter votre Ledger."
- },
- "step3": {
- "title": "Scannez le code",
- "description": "Appuyez sur WalletConnect puis passez au Scanner. Une fois que vous avez scanné, une invite de connexion apparaîtra pour que vous puissiez connecter votre portefeuille."
- }
- }
- },
- "valora": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application Valora",
- "description": "Nous vous recommandons de mettre Valora sur votre écran d'accueil pour un accès plus rapide."
- },
- "step2": {
- "title": "Créer ou importer un portefeuille",
- "description": "Créez un nouveau portefeuille ou importez-en un existant."
- },
- "step3": {
- "title": "Appuyez sur le bouton de scan",
- "description": "Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille."
- }
- }
- },
- "gate": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application Gate",
- "description": "Nous vous recommandons de mettre Gate sur votre écran d'accueil pour un accès plus rapide."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Créez un nouveau portefeuille ou importez-en un existant."
- },
- "step3": {
- "title": "Appuyez sur le bouton de scan",
- "description": "Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille."
- }
- },
- "extension": {
- "step1": {
- "title": "Installez l'extension Gate",
- "description": "Nous vous recommandons d'épingler Gate à votre barre des tâches pour un accès plus facile à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase de récupération secrète avec personne."
- },
- "step3": {
- "title": "Rafraîchissez votre navigateur",
- "description": "Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension."
- }
- }
- },
- "xportal": {
- "qr_code": {
- "step1": {
- "description": "Mettez xPortal sur votre écran d'accueil pour un accès plus rapide à votre portefeuille.",
- "title": "Ouvrez l'application xPortal"
- },
- "step2": {
- "description": "Créez un portefeuille ou importez-en un existant.",
- "title": "Créer ou Importer un Portefeuille"
- },
- "step3": {
- "description": "Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",
- "title": "Appuyez sur le bouton Scan QR"
- }
- }
- },
- "mew": {
- "qr_code": {
- "step1": {
- "description": "Nous vous recommandons de mettre MEW Wallet sur votre écran d'accueil pour un accès plus rapide.",
- "title": "Ouvrez l'application MEW Wallet"
- },
- "step2": {
- "description": "Vous pouvez facilement sauvegarder votre portefeuille en utilisant la fonction de sauvegarde cloud.",
- "title": "Créer ou Importer un Portefeuille"
- },
- "step3": {
- "description": "Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",
- "title": "Appuyez sur le bouton de scan"
- }
- }
- }
- },
- "zilpay": {
- "qr_code": {
- "step1": {
- "title": "Ouvrez l'application ZilPay",
- "description": "Ajoutez ZilPay à votre écran d'accueil pour un accès plus rapide à votre portefeuille."
- },
- "step2": {
- "title": "Créer ou Importer un Portefeuille",
- "description": "Créez un nouveau portefeuille ou importez-en un existant."
- },
- "step3": {
- "title": "Appuyez sur le bouton de scan",
- "description": "Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille."
- }
- }
- }
-}
-`;export{e as default};
diff --git a/client2/build/assets/github-BxTJgXcz.js b/client2/build/assets/github-BxTJgXcz.js
deleted file mode 100644
index 71c63ed71..000000000
--- a/client2/build/assets/github-BxTJgXcz.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import{b as i}from"./core-Cywc921C.js";import"./index-B6P9GsMd.js";import"./index.es-MB-v37Rm.js";import"./events-DQ172AOg.js";import"./index-nibyPLVP.js";const h=i``;export{h as githubSvg};
diff --git a/client2/build/assets/gnosis-37ZC4RBL-B137OtHZ.js b/client2/build/assets/gnosis-37ZC4RBL-B137OtHZ.js
deleted file mode 100644
index b839bfa27..000000000
--- a/client2/build/assets/gnosis-37ZC4RBL-B137OtHZ.js
+++ /dev/null
@@ -1 +0,0 @@
-var a="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cg%20transform%3D%22translate(0%2C0)%20scale(0.7)%22%3E%3Cg%20clip-path%3D%22url(%23a)%22%3E%3Cpath%20fill%3D%22%23133629%22%20d%3D%22M0%200h40v40H0z%22%2F%3E%3Cpath%20fill%3D%22%23F0EBDE%22%20d%3D%22M8.26%2017.907a4.468%204.468%200%200%201%20.935-2.806l6.377%206.38a4.52%204.52%200%200%201-2.805.935%204.525%204.525%200%200%201-4.507-4.51ZM27.233%2022.411a4.522%204.522%200%200%200%204.202-2.8%204.528%204.528%200%200%200%20.342-1.742%204.528%204.528%200%200%200-.935-2.806l-6.396%206.399a4.469%204.469%200%200%200%202.787.95Z%22%2F%3E%3Cpath%20fill%3D%22%23F0EBDE%22%20d%3D%22M32.165%2013.768a6.39%206.39%200%200%201%201.524%204.139%206.437%206.437%200%200%201-6.433%206.431%206.394%206.394%200%200%201-4.124-1.501l-3.095%203.096-3.095-3.096a6.385%206.385%200%200%201-4.128%201.501%206.434%206.434%200%200%201-4.956-10.561l-1.445-1.445-1.38-1.404a17.414%2017.414%200%200%200-2.533%209.07A17.503%2017.503%200%200%200%2013.302%2036.17a17.501%2017.501%200%200%200%2019.064-3.793A17.515%2017.515%200%200%200%2037.5%2020.013c.029-3.198-.84-6.34-2.506-9.07l-2.829%202.825Z%22%2F%3E%3Cpath%20fill%3D%22%23F0EBDE%22%20d%3D%22M32.675%207.926A17.448%2017.448%200%200%200%2020.014%202.5%2017.475%2017.475%200%200%200%207.348%207.926c-.425.467-.841.935-1.23%201.436L20%2023.244%2033.88%209.348c-.366-.504-.769-.979-1.205-1.422ZM20.014%2020.002%209.26%209.245a15.036%2015.036%200%200%201%2010.754-4.462%2014.989%2014.989%200%200%201%2010.753%204.462L20.014%2020.002Z%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22a%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M0%200h40v40H0z%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fg%3E%3C%2Fsvg%3E";export{a as default};
diff --git a/client2/build/assets/google-7Ltvkps4.js b/client2/build/assets/google-7Ltvkps4.js
deleted file mode 100644
index a251354d4..000000000
--- a/client2/build/assets/google-7Ltvkps4.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import{b as l}from"./core-Cywc921C.js";import"./index-B6P9GsMd.js";import"./index.es-MB-v37Rm.js";import"./events-DQ172AOg.js";import"./index-nibyPLVP.js";const v=l``;export{v as googleSvg};
diff --git a/client2/build/assets/gravity-J5YQHTYH-Bj6B0uod.js b/client2/build/assets/gravity-J5YQHTYH-Bj6B0uod.js
deleted file mode 100644
index 022d1f094..000000000
--- a/client2/build/assets/gravity-J5YQHTYH-Bj6B0uod.js
+++ /dev/null
@@ -1 +0,0 @@
-var a="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cg%20transform%3D%22translate(0%2C0)%20scale(0.7)%22%3E%3Cg%20clip-path%3D%22url(%23a)%22%3E%3Cpath%20fill%3D%22url(%23b)%22%20d%3D%22M0%200h40v40H0z%22%2F%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M34.027%2011.935a.723.723%200%200%200-1.001-.256L14.436%2022.97a6.317%206.317%200%200%201%205.578-9.283c1.499%200%202.875.522%203.958%201.393l-3.955%202.712%2010.278-5.928a.461.461%200%201%200-.493-.78l-2.517%201.725a10.205%2010.205%200%200%200-7.271-3.03C14.362%209.779%209.78%2014.355%209.78%2020c0%201.818.476%203.524%201.308%205.003l-5.212%203.166%205.351-2.927a10.23%2010.23%200%200%200%208.787%204.98c5.652%200%2010.233-4.577%2010.233-10.222v-1.22c0-.957.389-2.18%201.765-2.917a.237.237%200%201%200-.23-.413L19.58%2022.487c1.362-.578%202.404-.93%203.784-1.207%202.876-.577%202.949.793%201.838%202.337-.743%201.034-2.423%202.695-5.186%202.695a6.318%206.318%200%200%201-5.35-2.95L33.748%2012.93a.721.721%200%200%200%20.279-.994Z%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22b%22%20x1%3D%223.995%22%20x2%3D%2229.453%22%20y1%3D%2240%22%20y2%3D%220%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%22.023%22%20stop-color%3D%22%23E57536%22%2F%3E%3Cstop%20offset%3D%22.605%22%2F%3E%3C%2FlinearGradient%3E%3CclipPath%20id%3D%22a%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M0%200h40v40H0z%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fg%3E%3C%2Fsvg%3E";export{a as default};
diff --git a/client2/build/assets/hardhat-TX56IT5N-CV1FY-wE.js b/client2/build/assets/hardhat-TX56IT5N-CV1FY-wE.js
deleted file mode 100644
index 258b219e4..000000000
--- a/client2/build/assets/hardhat-TX56IT5N-CV1FY-wE.js
+++ /dev/null
@@ -1 +0,0 @@
-var D="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2228%22%20fill%3D%22none%22%3E%3Crect%20width%3D%2228%22%20height%3D%2228%22%20fill%3D%22url(%23a)%22%20rx%3D%2214%22%2F%3E%3Cg%20clip-path%3D%22url(%23b)%22%3E%3Cpath%20fill%3D%22%23FFF100%22%20d%3D%22M22.458%2018.409v-.875c0-.162-.258-.317-.72-.457l.011-1.088c0-1.676-.49-3.312-1.402-4.685a7.833%207.833%200%200%200-3.702-2.994l-.033-.218a.639.639%200%200%200-.138-.315.592.592%200%200%200-.277-.188%207.429%207.429%200%200%200-4.395%200%20.592.592%200%200%200-.278.188.64.64%200%200%200-.14.315l-.031.203a7.83%207.83%200%200%200-3.727%202.991%208.474%208.474%200%200%200-1.414%204.703v1.093c-.456.139-.71.292-.71.454v.874a.224.224%200%200%200%20.03.147c.227-.178.487-.303.764-.366.704-.181%201.42-.307%202.143-.378.202-.024.407-.003.601.063s.372.174.523.318a2.945%202.945%200%200%200%202.043.836h4.748c.756%200%201.485-.299%202.043-.836a1.42%201.42%200%200%201%20.522-.32c.194-.067.4-.09.602-.066a14.2%2014.2%200%200%201%202.143.376c.262.053.51.167.724.334.012.013.027.024.037.036a.227.227%200%200%200%20.033-.145Z%22%2F%3E%3Cpath%20fill%3D%22url(%23c)%22%20d%3D%22M9.574%2016.569c-.006-.2-.01-.402-.01-.604.003-3.04.677-5.765%201.79-7.668a7.83%207.83%200%200%200-3.728%202.99%208.474%208.474%200%200%200-1.414%204.702v1.093a17.98%2017.98%200%200%201%203.362-.513Z%22%2F%3E%3Cpath%20fill%3D%22url(%23d)%22%20d%3D%22M21.749%2015.989a8.409%208.409%200%200%200-1.773-5.199c.498%201.674.746%203.42.735%205.173%200%20.296-.008.59-.02.88a9.2%209.2%200%200%201%201.045.234l.013-1.088Z%22%2F%3E%3Cpath%20fill%3D%22url(%23e)%22%20d%3D%22M21.664%2018.187c-.705-.18-1.42-.306-2.143-.377a1.365%201.365%200%200%200-.602.064%201.416%201.416%200%200%200-.523.32%202.943%202.943%200%200%201-2.043.835h-4.745a2.945%202.945%200%200%201-2.043-.835%201.417%201.417%200%200%200-.522-.322%201.366%201.366%200%200%200-.602-.065%2014.18%2014.18%200%200%200-2.143.377%201.962%201.962%200%200%200-.764.367c.36.58%204.006%201.19%208.448%201.19s8.086-.612%208.447-1.19c-.013-.012-.027-.023-.037-.035a1.8%201.8%200%200%200-.728-.329Z%22%2F%3E%3Cpath%20fill%3D%22%230A0A0A%22%20d%3D%22m13.98%209.823-1.818%203.258%201.817%201.188V9.824Z%22%2F%3E%3Cpath%20fill%3D%22%234B4D4D%22%20d%3D%22M13.98%209.824v4.444l1.817-1.186-1.817-3.258Zm0%205.09v1.55c.034-.052%201.817-2.738%201.817-2.74l-1.817%201.19Z%22%2F%3E%3Cpath%20fill%3D%22%230A0A0A%22%20d%3D%22m13.98%2014.914-1.818-1.187%201.818%202.737v-1.55Z%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22a%22%20x1%3D%2214%22%20x2%3D%2214%22%20y1%3D%220%22%20y2%3D%2228%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23F7F1FD%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FBFCDC%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22c%22%20x1%3D%228.783%22%20x2%3D%228.783%22%20y1%3D%2217.082%22%20y2%3D%228.297%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23EDCF00%22%2F%3E%3Cstop%20offset%3D%22.33%22%20stop-color%3D%22%23F0D500%22%2F%3E%3Cstop%20offset%3D%22.77%22%20stop-color%3D%22%23F9E500%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FFF100%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22d%22%20x1%3D%2220.862%22%20x2%3D%2220.862%22%20y1%3D%2217.146%22%20y2%3D%2210.79%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23EDCF00%22%2F%3E%3Cstop%20offset%3D%22.59%22%20stop-color%3D%22%23F7E100%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FFF100%22%2F%3E%3C%2FlinearGradient%3E%3CradialGradient%20id%3D%22e%22%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221%22%20gradientTransform%3D%22matrix(6.30353%200%200%206.64935%206.45%2023.084)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23FFF100%22%2F%3E%3Cstop%20offset%3D%22.23%22%20stop-color%3D%22%23F9E500%22%2F%3E%3Cstop%20offset%3D%22.67%22%20stop-color%3D%22%23F0D500%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23EDCF00%22%2F%3E%3C%2FradialGradient%3E%3CclipPath%20id%3D%22b%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M0%200h17v13H0z%22%20transform%3D%22translate(5.5%207)%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E%0A";export{D as default};
diff --git a/client2/build/assets/help-circle-CEbjHEWd.js b/client2/build/assets/help-circle-CEbjHEWd.js
deleted file mode 100644
index 2a5669795..000000000
--- a/client2/build/assets/help-circle-CEbjHEWd.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import{b as l}from"./core-Cywc921C.js";import"./index-B6P9GsMd.js";import"./index.es-MB-v37Rm.js";import"./events-DQ172AOg.js";import"./index-nibyPLVP.js";const c=l``;export{c as helpCircleSvg};
diff --git a/client2/build/assets/hi_IN-GYVCUYRD-CQnOa8U_.js b/client2/build/assets/hi_IN-GYVCUYRD-CQnOa8U_.js
deleted file mode 100644
index 8146df114..000000000
--- a/client2/build/assets/hi_IN-GYVCUYRD-CQnOa8U_.js
+++ /dev/null
@@ -1,1427 +0,0 @@
-var u=`{
- "connect_wallet": {
- "label": "वॉलेट को कनेक्ट करें",
- "wrong_network": {
- "label": "गलत नेटवर्क"
- }
- },
- "intro": {
- "title": "वॉलेट क्या है?",
- "description": "एक वॉलेट का उपयोग डिजिटल संपत्तियों को भेजने, प्राप्त करने, संग्रहित करने और प्रदर्शित करने के लिए किया जाता है। यह एक नया तरीका भी है लॉग इन करने का, हर वेबसाइट पर नए खाते और पासवर्ड बनाने की जरूरत के बिना।",
- "digital_asset": {
- "title": "अपने डिजिटल संपत्तियों के लिए एक घर",
- "description": "वॉलेट का उपयोग Ethereum और NFTs जैसी डिजिटल संपत्तियों को भेजने, प्राप्त करने, संग्रहित करने और प्रदर्शित करने के लिए किया जाता है."
- },
- "login": {
- "title": "लॉग इन करने का एक नया तरीका",
- "description": "हर वेबसाइट पर नए खाते और पासवर्ड बनाने की बजाय, बस अपना वॉलेट कनेक्ट करें."
- },
- "get": {
- "label": "एक वॉलेट प्राप्त करें"
- },
- "learn_more": {
- "label": "और जानें"
- }
- },
- "sign_in": {
- "label": "अपने खाते की पुष्टि करें",
- "description": "जुड़ने को पूरा करने के लिए, आपको अपने बटुए में एक संदेश पर हस्ताक्षर करना होगा ताकि पुष्टि हो सके कि आप इस खाते के मालिक हैं।",
- "message": {
- "send": "संदेश भेजें",
- "preparing": "संदेश तैयार कर रहा है...",
- "cancel": "रद्द करें",
- "preparing_error": "संदेश तैयार करते समय त्रुटि, कृपया पुनः प्रयास करें!"
- },
- "signature": {
- "waiting": "हस्ताक्षर का इंतजार कर रहा है...",
- "verifying": "हस्ताक्षर की पुष्टि की जा रही है...",
- "signing_error": "संदेश पर हस्ताक्षर करते समय त्रुटि, कृपया पुनः प्रयास करें!",
- "verifying_error": "हस्ताक्षर की पुष्टि में त्रुटि, कृपया पुनः प्रयास करें!",
- "oops_error": "ओह, कुछ गलत हो गया!"
- }
- },
- "connect": {
- "label": "कनेक्ट करें",
- "title": "वॉलेट को कनेक्ट करें",
- "new_to_ethereum": {
- "description": "Ethereum वॉलेट्स में नए हैं?",
- "learn_more": {
- "label": "और जानें"
- }
- },
- "learn_more": {
- "label": "और जानें।"
- },
- "recent": "हाल ही में",
- "status": {
- "opening": "%{wallet}खोल रहा है...",
- "connecting": "जोड़ रहा है",
- "connect_mobile": "जारी रखें %{wallet}",
- "not_installed": "%{wallet} स्थापित नहीं है",
- "not_available": "%{wallet} उपलब्ध नहीं है",
- "confirm": "एक्सटेंशन में कनेक्शन की पुष्टि करें",
- "confirm_mobile": "वॉलेट में कनेक्शन अनुरोध स्वीकार करें"
- },
- "secondary_action": {
- "get": {
- "description": "क्या आपके पास %{wallet}नहीं है ?",
- "label": "प्राप्त करें"
- },
- "install": {
- "label": "स्थापित करें"
- },
- "retry": {
- "label": "पुनः प्रयास करें"
- }
- },
- "walletconnect": {
- "description": {
- "full": "क्या आपको आधिकारिक WalletConnect मोडल की आवश्यकता है?",
- "compact": "क्या आपको WalletConnect मोडल की आवश्यकता है?"
- },
- "open": {
- "label": "खोलें"
- }
- }
- },
- "connect_scan": {
- "title": "स्कैन करें विथ %{wallet}",
- "fallback_title": "अपने फोन से स्कैन करें"
- },
- "connector_group": {
- "installed": "स्थापित",
- "recommended": "अनुशंसित",
- "other": "अन्य",
- "popular": "लोकप्रिय",
- "more": "अधिक",
- "others": "अन्य लोग"
- },
- "get": {
- "title": "एक वॉलेट प्राप्त करें",
- "action": {
- "label": "प्राप्त करें"
- },
- "mobile": {
- "description": "मोबाइल वॉलेट"
- },
- "extension": {
- "description": "ब्राउज़र एक्सटेंशन"
- },
- "mobile_and_extension": {
- "description": "मोबाइल वॉलेट और एक्सटेंशन"
- },
- "mobile_and_desktop": {
- "description": "मोबाइल और डेस्कटॉप वॉलेट"
- },
- "looking_for": {
- "title": "क्या आपको जो चाहिए वह नहीं मिल रहा है?",
- "mobile": {
- "description": "मुख्य स्क्रीन पर एक बटुआ चुनें ताकि आप एक अलग बटुआ प्रदाता के साथ शुरू कर सकें।"
- },
- "desktop": {
- "compact_description": "मुख्य स्क्रीन पर एक बटुआ चुनें ताकि आप एक अलग बटुआ प्रदाता के साथ शुरू कर सकें।",
- "wide_description": "बाएं एक बटुआ चुनें ताकि आप एक अलग बटुआ प्रदाता के साथ शुरू कर सकें।"
- }
- }
- },
- "get_options": {
- "title": "%{wallet}के साथ शुरू करें",
- "short_title": "%{wallet}प्राप्त करें",
- "mobile": {
- "title": "मोबाइल के लिए %{wallet}",
- "description": "मोबाइल वॉलेट का उपयोग करके Ethereum की दुनिया का अन्वेषण करें।",
- "download": {
- "label": "ऐप प्राप्त करें"
- }
- },
- "extension": {
- "title": "%{wallet} के लिए %{browser}",
- "description": "अपने पसंदीदा वेब ब्राउज़र से अपने वॉलेट तक पहुंचें।",
- "download": {
- "label": "करें जोड़ें %{browser}"
- }
- },
- "desktop": {
- "title": "%{wallet} के लिए %{platform}",
- "description": "अपने शक्तिशाली डेस्कटॉप से आपके वॉलेट की स्वतंत्रता द्वारा पहुंच।",
- "download": {
- "label": "को जोड़ें %{platform}"
- }
- }
- },
- "get_mobile": {
- "title": "स्थापित करें %{wallet}",
- "description": "iOS या Android पर डाउनलोड करने के लिए अपने फोन से स्कैन करें",
- "continue": {
- "label": "जारी रखें"
- }
- },
- "get_instructions": {
- "mobile": {
- "connect": {
- "label": "जोड़ें"
- },
- "learn_more": {
- "label": "और जानें"
- }
- },
- "extension": {
- "refresh": {
- "label": "ताज़ा करें"
- },
- "learn_more": {
- "label": "और जानें"
- }
- },
- "desktop": {
- "connect": {
- "label": "कनेक्ट करें"
- },
- "learn_more": {
- "label": "और जानें"
- }
- }
- },
- "chains": {
- "title": "नेटवर्क स्विच करें",
- "wrong_network": "गलत नेटवर्क का पता चला, जारी रखने के लिए स्विच करें या कनेक्ट करें।",
- "confirm": "वॉलेट में पुष्टि करें",
- "switching_not_supported": "आपका वॉलेट नेटवर्क्स को %{appName}से स्विच करना समर्थन नहीं करता . बजाय अपने वॉलेट के भीतर से नेटवर्क स्विच करने का प्रयास करें।",
- "switching_not_supported_fallback": "आपका वॉलेट इस एप से नेटवर्क्स स्विच करने का समर्थन नहीं करता। बजाय उसके, अपना वॉलेट द्वारा नेटवर्क्स स्विच करने की कोशिश करें।",
- "disconnect": "डिकनेक्ट",
- "connected": "कनेक्ट किया गया"
- },
- "profile": {
- "disconnect": {
- "label": "डिकनेक्ट"
- },
- "copy_address": {
- "label": "पता कॉपी करें",
- "copied": "कॉपी कर दिया गया!"
- },
- "explorer": {
- "label": "एक्सप्लोरर पर अधिक देखें"
- },
- "transactions": {
- "description": "%{appName} लेन - देन यहां दिखाई देंगे...",
- "description_fallback": "आपके लेन-देन यहां दिखाई देंगे...",
- "recent": {
- "title": "हाल के लेन - देन"
- },
- "clear": {
- "label": "सभी को हटाएं"
- }
- }
- },
- "wallet_connectors": {
- "argent": {
- "qr_code": {
- "step1": {
- "description": "अपने वॉलेट को जल्दी से एक्सेस करने के लिए आपके होम स्क्रीन पर Argent डालें।",
- "title": "Argent ऐप खोलें"
- },
- "step2": {
- "description": "वॉलेट और उपयोगकर्ता नाम बनाएं, या मौजूदा वॉलेट को आयात करें।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "जैसे ही आप स्कैन करेंगे, एक कनेक्शन संकेत आपके वॉलेट को कनेक्ट करने के लिए प्रकट होगा।",
- "title": "QR स्कैन बटन को टैप करें"
- }
- }
- },
- "berasig": {
- "extension": {
- "step1": {
- "title": "BeraSig एक्सटेंशन स्थापित करें",
- "description": "हम आपको अपने वॉलेट के लिए आसानी से पहुंच पाने के लिए BeraSig को अपने टास्कबार में पिन करने की सलाह देते हैं।"
- },
- "step2": {
- "title": "एक वॉलेट बनाएँ",
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।"
- }
- }
- },
- "best": {
- "qr_code": {
- "step1": {
- "title": "Best Wallet ऐप खोलें",
- "description": "अपने होम स्क्रीन पर Best Wallet जोड़ें, इससे आपके वॉलेट तक तेजी से पहुंचने की सुविधा होगी।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "नया बटुआ बनाएं या मौजूदा को आयात करें।"
- },
- "step3": {
- "title": "QR आइकन पर टैप करें और स्कैन करें",
- "description": "अपने होमस्क्रीन पर QR आइकन पर टैप करें, कोड स्कैन करें और प्रम्प्ट को कनेक्ट करने की पुष्टि करें।"
- }
- }
- },
- "bifrost": {
- "qr_code": {
- "step1": {
- "description": "हम आपको सलाह देते हैं कि Bifrost Wallet को अपने होम स्क्रीन पर लगाएं, ताकि त्वरित एक्सेस को सुनिश्चित किया जा सके।",
- "title": "Bifrost Wallet ऐप को खोलें"
- },
- "step2": {
- "description": "अपने रिकवरी फ़्रेज़ का उपयोग करके एक वॉलेट बनाएं या इंपोर्ट करें।",
- "title": "वॉलेट बनाएं या इंपोर्ट करें"
- },
- "step3": {
- "description": "स्कैन करने के बाद, आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन संकेत दिखाई देगा।",
- "title": "स्कैन बटन को टैप करें"
- }
- }
- },
- "bitget": {
- "qr_code": {
- "step1": {
- "description": "हम इसे सुझाव देते हैं कि आप अपने होम स्क्रीन पर Bitget वॉलेट को रखें ताकि जल्दी एक्सेस कर सकें।",
- "title": "Bitget वॉलेट एप को खोलें"
- },
- "step2": {
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "स्कैन करने के बाद, आपके वॉलेट को कनेक्ट करने का एक संकेत दिखाई देगा।",
- "title": "स्कैन बटन पर टैप करें"
- }
- },
- "extension": {
- "step1": {
- "description": "हम इसे सुझाव देते हैं कि आप Bitget वॉलेट को आपके टास्कबार में पिन करें ताकि आपके वॉलेट तक जल्दी पहुंच सकें।",
- "title": "Bitget Wallet एक्सटेंशन स्थापित करें"
- },
- "step2": {
- "description": "सुनिश्चित करें कि आप अपने वॉलेट का बैकअप किसी सुरक्षित तरीके से ले रहे हैं। अपनी गुप्त वाक्यांश को कभी किसी के साथ साझा न करें।",
- "title": "एक वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।",
- "title": "अपने ब्राउज़र को ताज़ा करें"
- }
- }
- },
- "bitski": {
- "extension": {
- "step1": {
- "description": "हम आपको अपने वॉलेट तक जल्दी पहुंचने के लिए Bitski को अपने टास्कबार में पिन करने की सलाह देते हैं।",
- "title": "Bitski एक्सटेंशन स्थापित करें"
- },
- "step2": {
- "description": "सुनिश्चित करें कि आप एक सुरक्षित तरीके से अपने वॉलेट का बैकअप बना रहे हैं। कभी भी किसी के साथ अपने गोपनीय वाक्यांश को साझा न करें।",
- "title": "एक वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "एक बार जब आप अपना वॉलेट सेट कर लेते हैं, तो ब्राउज़र को ताज़ा करने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।",
- "title": "अपने ब्राउज़र को ताज़ा करें"
- }
- }
- },
- "bitverse": {
- "qr_code": {
- "step1": {
- "title": "Bitverse Wallet ऐप को खोलें",
- "description": "अपने वॉलेट तक तेजी से पहुँचने के लिए Bitverse Wallet को अपनी होम स्क्रीन पर जोड़ें।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "नया बटुआ बनाएं या मौजूदा को आयात करें।"
- },
- "step3": {
- "title": "QR आइकन पर टैप करें और स्कैन करें",
- "description": "अपने होमस्क्रीन पर QR आइकन पर टैप करें, कोड स्कैन करें और प्रम्प्ट को कनेक्ट करने की पुष्टि करें।"
- }
- }
- },
- "bloom": {
- "desktop": {
- "step1": {
- "title": "Bloom वॉलेट ऐप खोलें",
- "description": "आपकी सुविधा के लिए हम Bloom वॉलेट को होम स्क्रीन पर रखने की सलाह देते हैं।"
- },
- "step2": {
- "description": "अपने रिकवरी फ़्रेज़ का उपयोग करके एक वॉलेट बनाएं या इंपोर्ट करें।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "जब आपके पास वॉलेट हो, तो Bloom के माध्यम से जुड़ने के लिए Connect पर क्लिक करें। ऐप में एक कनेक्शन प्रॉम्प्ट दिखाई देगा जिसे आपको कनेक्शन की पुष्टि करनी होगी।",
- "title": "Connect पर क्लिक करें"
- }
- }
- },
- "bybit": {
- "qr_code": {
- "step1": {
- "description": "हम आपके वॉलेट तक तेजी से पहुँचने के लिए Bybit को आपकी होम स्क्रीन पर रखने की सलाह देते हैं।",
- "title": "Bybit ऐप को खोलें"
- },
- "step2": {
- "description": "आप अपने फोन पर हमारे बैकअप फीचर का उपयोग करके आसानी से अपने वॉलेट का बैकअप कर सकते हैं।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "जैसे ही आप स्कैन करेंगे, एक कनेक्शन संकेत आपके वॉलेट को कनेक्ट करने के लिए प्रकट होगा।",
- "title": "स्कैन बटन को टैप करें"
- }
- },
- "extension": {
- "step1": {
- "description": "अपने ब्राउज़र के ऊपरी दाएँ कोने पर क्लिक करें और आसान पहुँच के लिए Bybit Wallet को पिन करें।",
- "title": "Bybit Wallet एक्सटेंशन को इंस्टॉल करें"
- },
- "step2": {
- "description": "नया बटुआ बनाएं या मौजूदा को आयात करें।",
- "title": "एक बटुआ बनाएं या आयात करें"
- },
- "step3": {
- "description": "Bybit Wallet सेट अप करने के बाद, ब्राउज़र को रिफ्रेश करने के लिए नीचे क्लिक करें और एक्सटेंशन को लोड करें।",
- "title": "अपने ब्राउज़र को ताज़ा करें"
- }
- }
- },
- "binance": {
- "qr_code": {
- "step1": {
- "description": "हम अपने वॉलेट के तेज एक्सेस के लिए Binance को अपने होम स्क्रीन पर रखने की सलाह देते हैं।",
- "title": "Binance ऐप को खोलें"
- },
- "step2": {
- "description": "आप अपने फोन पर हमारे बैकअप फीचर का उपयोग करके आसानी से अपने वॉलेट का बैकअप कर सकते हैं।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "जैसे ही आप स्कैन करेंगे, एक कनेक्शन संकेत आपके वॉलेट को कनेक्ट करने के लिए प्रकट होगा।",
- "title": "WalletConnect बटन पर टैप करें"
- }
- }
- },
- "coin98": {
- "qr_code": {
- "step1": {
- "description": "हम आपके वॉलेट तक तेजी से पहुंचने के लिए अपने होम स्क्रीन पर Coin98 वॉलेट रखने की सलाह देते हैं।",
- "title": "Coin98 वॉलेट ऐप को खोलें"
- },
- "step2": {
- "description": "आप अपने फोन पर हमारे बैकअप फीचर का उपयोग करके आसानी से अपने वॉलेट का बैकअप कर सकते हैं।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "स्कैन करने के बाद, आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन प्रांप्ट दिखाई देगा।",
- "title": "WalletConnect बटन पर टैप करें"
- }
- },
- "extension": {
- "step1": {
- "description": "अपने ब्राउज़र के ऊपरी दाएं हिस्से पर क्लिक करें और आसानी से पहुंच के लिए Coin98 वॉलेट को पिन करें।",
- "title": "Coin98 वॉलेट एक्सटेंशन स्थापित करें"
- },
- "step2": {
- "description": "नया बटुआ बनाएं या मौजूदा को आयात करें।",
- "title": "एक बटुआ बनाएं या आयात करें"
- },
- "step3": {
- "description": "एक बार जब आप Coin98 वॉलेट सेट करते हैं, तो नीचे क्लिक करके ब्राउजर को ताजा करें और एक्सटेंशन को लोड करें।",
- "title": "अपने ब्राउज़र को ताज़ा करें"
- }
- }
- },
- "coinbase": {
- "qr_code": {
- "step1": {
- "description": "हम आपको सलाह देते हैं कि आपकी मुख्य बिल्ड स्क्रीन पर Coinbase वॉलेट को रखें जिससे आपकी पहुंच तेज हो।",
- "title": "Coinbase वॉलेट ऐप खोलें"
- },
- "step2": {
- "description": "आप बादल बैकअप सुविधा का उपयोग करके आसानी से अपने वॉलेट का बैकअप ले सकते हैं।",
- "title": "एक वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "जैसे ही आप स्कैन करते हैं, आपको अपने वॉलेट से कनेक्ट करने के लिए एक कनेक्शन संकेत दिखाई देगा।",
- "title": "स्कैन बटन को छूना"
- }
- },
- "extension": {
- "step1": {
- "description": "हमारा सिफारिश है कि आप अपने वॉलेट तक जल्दी पहुंचने के लिए Coinbase वॉलेट को अपने टास्कबार पर पिन पर रखें।",
- "title": "Coinbase वॉलेट एक्सटेंशन स्थापित करें"
- },
- "step2": {
- "description": "सुरक्षित विधि का उपयोग करके अपने बटुए का बैकअप लेना सुनिश्चित करें। अपना गुप्त पुनर्प्राप्ति वाक्यांश कभी भी किसी के साथ साझा न करें।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "एक बार जब आप अपना वॉलेट सेट अप करते हैं, तो ब्राउज़र को ताजगी देने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें.",
- "title": "अपना ब्राउज़र ताजा करें"
- }
- }
- },
- "compass": {
- "extension": {
- "step1": {
- "description": "हम अपने वॉलेट तक त्वरित पहुंच के लिए Compass Wallet को अपने कार्यपट्टी में पिन करने की सलाह देते हैं।",
- "title": "Compass Wallet एक्सटेंशन स्थापित करें"
- },
- "step2": {
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।",
- "title": "अपने ब्राउज़र को ताज़ा करें"
- }
- }
- },
- "core": {
- "qr_code": {
- "step1": {
- "description": "हम आपकी वॉलेट के तेज एक्सेस के लिए Core को आपके होम स्क्रीन पर डालने की सलाह देते हैं.",
- "title": "Core एप खोलें"
- },
- "step2": {
- "description": "आप आसानी से अपने फ़ोन पर हमारे बैकअप फीचर का उपयोग करके अपना वॉलेट बैकअप कर सकते हैं.",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "स्कैन करने के बाद, आपके वॉलेट को कनेक्ट करने के लिए आपके लिए कनेक्शन प्राम्प्ट प्रकट होगा.",
- "title": "WalletConnect बटन को छूने के साथ"
- }
- },
- "extension": {
- "step1": {
- "description": "हम अपने वॉलेट के लिए तेज एक्सेस के लिए कोर को अपने टास्कबार में पिन करने की सिफारिश करते हैं।",
- "title": "कोर एक्सटेंशन स्थापित करें"
- },
- "step2": {
- "description": "सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से ले। कभी भी किसी के साथ अपनी गुप्त वाक्यांश साझा न करें।",
- "title": "एक वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "एक बार जब आप अपने वॉलेट की स्थापना कर लें, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा कर सकें और एक्सटेंशन को लोड कर सकें।",
- "title": "अपने ब्राउज़र को ताज़ा करें"
- }
- }
- },
- "fox": {
- "qr_code": {
- "step1": {
- "description": "हम FoxWallet को अपने होम स्क्रीन पर रखने की सिफारिश करते हैं ताकि त्वरित एक्सेस मिल सके।",
- "title": "FoxWallet ऐप खोलें"
- },
- "step2": {
- "description": "सुनिश्चित करें कि आप एक सुरक्षित तरीके का उपयोग करके अपने वॉलेट का बैकअप ले रहे हैं। कभी भी किसी के साथ अपना गुप्त वाक्यांश साझा न करें।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "जब आप स्कैन करेंगे, तो आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन संकेत प्रकट होगा।",
- "title": "स्कैन बटन पर टैप करें"
- }
- }
- },
- "frontier": {
- "qr_code": {
- "step1": {
- "description": "हमारी सिफारिश है कि आप अपने होम स्क्रीन पर फ्रंटियर वॉलेट रखें जिससे कि आपको त्वरित पहुंच मिले।",
- "title": "फ्रंटियर वॉलेट ऐप को खोलें"
- },
- "step2": {
- "description": "सुनिश्चित करें कि आप एक सुरक्षित तरीके का उपयोग करके अपने वॉलेट का बैकअप ले रहे हैं। कभी भी किसी के साथ अपना गुप्त वाक्यांश साझा न करें।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "जब आप स्कैन करते हैं, तो आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन संकेत प्रकट होगा।",
- "title": "स्कैन बटन को टैप करें"
- }
- },
- "extension": {
- "step1": {
- "description": "हम आपके वॉलेट की तेजी से पहुंच के लिए Frontier Wallet को अपने टास्कबार में पिन करने की सिफारिश करते हैं।",
- "title": "Frontier Wallet एक्सटेंशन इंस्टॉल करें"
- },
- "step2": {
- "description": "सुनिश्चित करें कि आप एक सुरक्षित तरीके से अपना वॉलेट बैकअप कर रहे हैं। कभी भी किसी के साथ अपना गुप्त वाक्यांश साझा न करें।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "वॉलेट सेटअप होने के बाद, ब्राउज़र को रिफ्रेश करने के लिए नीचे क्लिक करें और एक्सटेंशन लोड करें।",
- "title": "अपना ब्राउज़र रिफ्रेश करें"
- }
- }
- },
- "im_token": {
- "qr_code": {
- "step1": {
- "title": "imToken ऐप खोलें",
- "description": "अपने वॉलेट के तेजी से पहुँच के लिए imToken एप्लीकेशन को अपने होम स्क्रीन पर रखें।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "एक नया वॉलेट बनाएं या मौजूदा एक को आयात करें।"
- },
- "step3": {
- "title": "ऊपरी दाएं कोने में स्कैनर आइकॉन पर टैप करें",
- "description": "नया कनेक्शन चुनें, फिर QR कोड स्कैन करें और कनेक्ट करने के लिए प्रॉम्प्ट की पुष्टि करें।"
- }
- }
- },
- "iopay": {
- "qr_code": {
- "step1": {
- "description": "हम आपकी वॉलेट के तेज एक्सेस के लिए ioPay को आपके होम स्क्रीन पर डालने की सलाह देते हैं.",
- "title": "ioPay ऐप खोलें"
- },
- "step2": {
- "description": "आप अपने फोन पर हमारे बैकअप फीचर का उपयोग करके आसानी से अपने वॉलेट का बैकअप कर सकते हैं।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "जैसे ही आप स्कैन करेंगे, एक कनेक्शन संकेत आपके वॉलेट को कनेक्ट करने के लिए प्रकट होगा।",
- "title": "WalletConnect बटन पर टैप करें"
- }
- }
- },
- "kaikas": {
- "extension": {
- "step1": {
- "description": "हम आपके वॉलेट तक जल्दी पहुँचने के लिए Kaikas को आपके टास्कबार पर पिन करने की सलाह देते हैं।",
- "title": "Kaikas एक्सटेंशन को इंस्टॉल करें"
- },
- "step2": {
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।",
- "title": "अपने ब्राउज़र को ताज़ा करें"
- }
- },
- "qr_code": {
- "step1": {
- "title": "Kaikas ऐप को खोलें",
- "description": "अपने वॉलेट तक तेजी से पहुँचने के लिए Kaikas ऐप को अपनी होम स्क्रीन पर रखें।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "नया बटुआ बनाएं या मौजूदा को आयात करें।"
- },
- "step3": {
- "title": "ऊपरी दाएं कोने में स्कैनर आइकॉन पर टैप करें",
- "description": "नया कनेक्शन चुनें, फिर QR कोड स्कैन करें और कनेक्ट करने के लिए प्रॉम्प्ट की पुष्टि करें।"
- }
- }
- },
- "kaia": {
- "extension": {
- "step1": {
- "description": "हम आपके वॉलेट तक त्वरित पहुँच के लिए Kaia को अपने टास्कबार में पिन करने की सलाह देते हैं।",
- "title": "Kaia एक्सटेंशन स्थापित करें"
- },
- "step2": {
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।",
- "title": "अपने ब्राउज़र को ताज़ा करें"
- }
- },
- "qr_code": {
- "step1": {
- "title": "Kaia ऐप को खोलें",
- "description": "अपने वॉलेट के तेज एक्सेस के लिए Kaia ऐप को अपने होम स्क्रीन पर रखें।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "नया बटुआ बनाएं या मौजूदा को आयात करें।"
- },
- "step3": {
- "title": "ऊपरी दाएं कोने में स्कैनर आइकॉन पर टैप करें",
- "description": "नया कनेक्शन चुनें, फिर QR कोड स्कैन करें और कनेक्ट करने के लिए प्रॉम्प्ट की पुष्टि करें।"
- }
- }
- },
- "kraken": {
- "qr_code": {
- "step1": {
- "title": "Kraken Wallet ऐप खोलें",
- "description": "हम आपके वॉलेट तक तेजी से पहुंचने के लिए अपने होम स्क्रीन पर Kraken Wallet रखने की सलाह देते हैं।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "नया बटुआ बनाएं या मौजूदा को आयात करें।"
- },
- "step3": {
- "title": "QR आइकन पर टैप करें और स्कैन करें",
- "description": "अपने होमस्क्रीन पर QR आइकन पर टैप करें, कोड स्कैन करें और प्रम्प्ट को कनेक्ट करने की पुष्टि करें।"
- }
- }
- },
- "kresus": {
- "qr_code": {
- "step1": {
- "title": "Kresus वॉलेट ऐप खोलें",
- "description": "अपने वॉलेट तक तेज़ी से पहुँचने के लिए Kresus Wallet को अपने होम स्क्रीन पर जोड़ें।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "नया बटुआ बनाएं या मौजूदा को आयात करें।"
- },
- "step3": {
- "title": "QR आइकन पर टैप करें और स्कैन करें",
- "description": "अपने होमस्क्रीन पर QR आइकन पर टैप करें, कोड स्कैन करें और प्रम्प्ट को कनेक्ट करने की पुष्टि करें।"
- }
- }
- },
- "magicEden": {
- "extension": {
- "step1": {
- "title": "Magic Eden एक्सटेंशन स्थापित करें",
- "description": "हम आपके वॉलेट के आसान उपयोग के लिए Magic Eden को अपने टास्कबार में पिन करने की सलाह देते हैं।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से ले रहे हैं। अपना गुप्त वसूली वाक्यांश किसी के साथ भी साझा न करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।"
- }
- }
- },
- "metamask": {
- "qr_code": {
- "step1": {
- "title": "MetaMask ऐप को खोलें",
- "description": "हम आपको MetaMask को आपकी होम स्क्रीन पर रखने की सलाह देते हैं, इससे आपको त्वरित पहुँच मिलेगी।"
- },
- "step2": {
- "title": "एक वॉलेट बनाएं या इम्पोर्ट करें",
- "description": "सुरक्षित विधि का उपयोग करके अपने बटुए का बैकअप लेना सुनिश्चित करें। अपना गुप्त वाक्यांश कभी भी किसी के साथ साझा न करें।"
- },
- "step3": {
- "title": "स्कैन बटन पर टैप करें",
- "description": "स्कैन करने के बाद, आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन प्रॉम्प्ट दिखाई देगा।"
- }
- },
- "extension": {
- "step1": {
- "title": "MetaMask एक्सटेंशन स्थापित करें",
- "description": "हम अपने वॉलेट तक जल्दी से पहुँचने के लिए MetaMask को अपने टास्कबार में पिन करने की सलाह देते हैं।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेना सुनिश्चित करें। अपनी गुप्त वाक्यांश को किसी के साथ शेयर न करें।"
- },
- "step3": {
- "title": "अपना ब्राउज़र ताज़ा करें",
- "description": "एक बार जब आप अपना वॉलेट सेट अप करते हैं, तो ब्राउजर को ताज़ा करने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।"
- }
- }
- },
- "nestwallet": {
- "extension": {
- "step1": {
- "title": "NestWallet एक्सटेंशन स्थापित करें",
- "description": "हम आपके वॉलेट के तेज एक्सेस के लिए NestWallet को आपके टास्कबार में पिन करने की सलाह देते हैं।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।"
- }
- }
- },
- "okx": {
- "qr_code": {
- "step1": {
- "title": "OKX Wallet ऐप खोलें",
- "description": "हम आपको OKX Wallet को अपने होम स्क्रीन पर रखने की सलाह देते हैं, जिससे आप जल्दी से पहुंच सकें।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने का यकीन करें। कभी भी किसी के साथ अपने गुप्त वाक्यांश साझा न करें।"
- },
- "step3": {
- "title": "स्कैन बटन पर टैप करें",
- "description": "जब आप स्कैन करते हैं, तो आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन संकेत प्रकट होगा।"
- }
- },
- "extension": {
- "step1": {
- "title": "OKX वॉलेट एक्सटेंशन स्थापित करें",
- "description": "हम अपने वॉलेट तक तेज़ी से पहुंचने के लिए आपको OKX वॉलेट को अपने कार्यपट्टी में पिन करने की सलाह देते हैं।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने का यकीन करें। कभी भी किसी के साथ अपने गुप्त वाक्यांश साझा न करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "जब आप अपना वॉलेट सेट अप कर लेते हैं, तो नीचे क्लिक करके ब्राउज़र को ताजा करें और एक्सटेंशन को लोड करें।"
- }
- }
- },
- "omni": {
- "qr_code": {
- "step1": {
- "title": "Omni ऐप को खोलें",
- "description": "अपने वॉलेट तक अधिक जल्दी पहुंचने के लिए Omni को अपने होम स्क्रीन पर जोड़ें।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "एक नया वॉलेट बनाएं या मौजूदा एक को आयात करें।"
- },
- "step3": {
- "title": "QR आइकन पर टैप करें और स्कैन करें",
- "description": "अपने होम स्क्रीन पर QR आइकन पर टैप करें, कोड स्कैन करें और कनेक्ट करने के लिए प्रॉम्प्ट की पुष्टि करें।"
- }
- }
- },
- "1inch": {
- "qr_code": {
- "step1": {
- "description": "अपने वॉलेट तक तेजी से पहुँचने के लिए 1inch Wallet को अपनी होम स्क्रीन पर रखें।",
- "title": "1inch Wallet ऐप को खोलें"
- },
- "step2": {
- "description": "वॉलेट और उपयोगकर्ता नाम बनाएं, या मौजूदा वॉलेट को आयात करें।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "जैसे ही आप स्कैन करेंगे, एक कनेक्शन संकेत आपके वॉलेट को कनेक्ट करने के लिए प्रकट होगा।",
- "title": "QR स्कैन बटन को टैप करें"
- }
- }
- },
- "token_pocket": {
- "qr_code": {
- "step1": {
- "title": "TokenPocket ऐप को खोलें",
- "description": "हम आपको TokenPocket को अपने होम स्क्रीन पर रखने की सलाह देते हैं ताकि आपको तेज एक्सेस मिल सके।"
- },
- "step2": {
- "title": "एक वॉलेट बनाएँ या आयात करें",
- "description": "सुरक्षित विधि का उपयोग करके अपने बटुए का बैकअप लेना सुनिश्चित करें। अपना गुप्त वाक्यांश कभी भी किसी के साथ साझा न करें।"
- },
- "step3": {
- "title": "स्कैन बटन पर टैप करें",
- "description": "एक बार स्कैन करने के बाद, आपके लिए एक कनेक्शन प्रॉम्प्ट प्रकट होगा ताकि आप अपने वॉलेट को कनेक्ट कर सकें।"
- }
- },
- "extension": {
- "step1": {
- "title": "TokenPocket एक्सटेंशन स्थापित करें",
- "description": "हम अपने वॉलेट तक त्वरित पहुंच के लिए TokenPocket को अपने taskbar पर pin करने की सिफारिश करते हैं।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेते हैं। कभी किसी के साथ अपना गुप्त वाक्यांश साझा न करें।"
- },
- "step3": {
- "title": "अपना ब्राउज़र ताज़ा करें",
- "description": "एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताज़ा ब्राउज़र लोड करें और एक्सटेंशन अप करें।"
- }
- }
- },
- "trust": {
- "qr_code": {
- "step1": {
- "title": "Trust Wallet ऐप खोलें",
- "description": "अपने वॉलेट तक तेज़ी से पहुंचने के लिए Trust Wallet को अपने होम स्क्रीन पर रखें।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "एक नया वॉलेट बनाएं या मौजूदा वॉलेट आयात करें।"
- },
- "step3": {
- "title": "सेटिंग्स में WalletConnect को टैप करें",
- "description": "नया कनेक्शन चुनें, फिर QR कोड स्कैन करें और प्रम्प्ट की पुष्टि करें।"
- }
- },
- "extension": {
- "step1": {
- "title": "Trust Wallet एक्सटेंशन को इंस्टॉल करें",
- "description": "अपने ब्राउज़र के ऊपरी दाएं कोने पर क्लिक करें और Trust Wallet को आसानी से प्रवेश के लिए पिन करें।"
- },
- "step2": {
- "title": "एक वॉलेट बनाएं या आयात करें",
- "description": "एक नया वॉलेट बनाएं या मौजूदा वॉलेट आयात करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार Trust Wallet सेट अप करने के बाद, नीचे क्लिक करें ब्राउज़र को ताज़ा करने और एक्सटेंशन लोड करने के लिए।"
- }
- }
- },
- "uniswap": {
- "qr_code": {
- "step1": {
- "title": "Uniswap ऐप को खोलें",
- "description": "अपने होम स्क्रीन पर Uniswap वॉलेट जोड़ें, इससे आपके वॉलेट तक तेजी से पहुंचने की सुविधा होगी।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "एक नया वॉलेट बनाएं या मौजूदा वॉलेट को आयात करें।"
- },
- "step3": {
- "title": "QR आइकन पर टैप करें और स्कैन करें",
- "description": "अपने होमस्क्रीन पर QR आइकन पर टैप करें, कोड स्कैन करें और प्रम्प्ट को कनेक्ट करने की पुष्टि करें।"
- }
- }
- },
- "zerion": {
- "qr_code": {
- "step1": {
- "title": "Zerion ऐप को खोलें",
- "description": "हम सलाह देते हैं कि आप Zerion को अपने होम स्क्रीन पर रखें, इससे तेजी से एक्सेस करने में आसानी होगी।"
- },
- "step2": {
- "title": "एक वॉलेट बनाएं या आयात करें",
- "description": "सुरक्षित विधि का उपयोग करके अपने बटुए का बैकअप लेना सुनिश्चित करें। अपना गुप्त वाक्यांश कभी भी किसी के साथ साझा न करें।"
- },
- "step3": {
- "title": "स्कैन बटन को टैप करें",
- "description": "आप स्कैन करने के बाद, एक कनेक्शन प्रोम्प्ट आपके बटुए को कनेक्ट करने के लिए प्रकट होगा।"
- }
- },
- "extension": {
- "step1": {
- "title": "Zerion एक्सटेंशन स्थापित करें",
- "description": "हमारी सिफारिश है कि आप अपने वॉलेट तक जल्दी पहुँचने के लिए Zerion को अपने टास्कबार में पिन करें।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "सुनिश्चित करें कि आप एक सुरक्षित विधि का उपयोग करके अपने वॉलेट का बैकअप ले रहे हैं। अपना गुप्त वाक्य कभी किसी के साथ साझा न करें।"
- },
- "step3": {
- "title": "अपना ब्राउज़र ताज़ा करें",
- "description": "एक बार जब आप अपने वॉलेट की स्थापना कर लें, तो ब्राउज़र को ताज़ा करने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।"
- }
- }
- },
- "rainbow": {
- "qr_code": {
- "step1": {
- "title": "Rainbow ऐप को खोलें",
- "description": "हम अपने वॉलेट के तेज एक्सेस के लिए Rainbow को अपने होम स्क्रीन पर रखने की सलाह देते हैं।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "आप अपने फ़ोन पर हमारे बैकअप फीचर का उपयोग करके अपने वॉलेट का बैकअप आसानी से ले सकते हैं।"
- },
- "step3": {
- "title": "स्कैन बटन पर टैप करें",
- "description": "जब आप स्कैन करते हैं, तो आपकी वॉलेट से कनेक्ट करने के लिए एक कनेक्शन संकेत दिखाई देगा।"
- }
- }
- },
- "enkrypt": {
- "extension": {
- "step1": {
- "description": "हम अपनी वॉलेट तक तेज़ी से पहुँच के लिए Enkrypt वॉलेट को अपने टास्कबार में पिन करने की सलाह देते हैं।",
- "title": "Enkrypt वॉलेट एक्सटेंशन स्थापित करें"
- },
- "step2": {
- "description": "सुनिश्चित करें कि आप अपनी वॉलेट का बैकअप एक सुरक्षित तरीके से ले। अपनी गुप्त वाक्यांश को कभी भी किसी के साथ साझा न करें।",
- "title": "एक वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "एक बार जब आप अपनी वॉलेट सेट कर लें, तो नीचे क्लिक करें ब्राउज़र को ताज़ा करने और एक्सटेंशन लोड करने के लिए।",
- "title": "अपने ब्राउज़र को ताज़ा करें"
- }
- }
- },
- "frame": {
- "extension": {
- "step1": {
- "description": "हम अपनी वॉलेट तक तेज़ी से पहुँच के लिए Frame को अपने टास्कबार में पिन करने की सलाह देते हैं।",
- "title": "Frame और साथी एक्सटेंशन स्थापित करें"
- },
- "step2": {
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेना सुनिश्चित करें। कभी भी अपनी गुप्त वाक्यांश को किसी के साथ साझा न करें।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "एक बार जब आप अपने वॉलेट की सेटअप कर लेते हैं, तो नीचे क्लिक करके ब्राउज़र को ताज़ा करें और एक्सटेंशन को लोड करें।",
- "title": "अपना ब्राउज़र ताज़ा करें"
- }
- }
- },
- "one_key": {
- "extension": {
- "step1": {
- "title": "OneKey Wallet एक्सटेंशन स्थापित करें",
- "description": "हम आपको अपने वॉलेट की तेज एक्सेस के लिए OneKey Wallet को अपने टास्कबार में पिन करने की सलाह देते हैं।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से ले रहे हैं। अपना गुप्त वाक्यांश किसी के साथ भी साझा न करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आप अपना वॉलेट सेट अप कर लेते हैं, तो ब्राउज़र को ताज़ा करने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।"
- }
- }
- },
- "paraswap": {
- "qr_code": {
- "step1": {
- "title": "ParaSwap ऐप खोलें",
- "description": "अपने होम स्क्रीन पर ParaSwap Wallet जोड़ें, इससे आपके वॉलेट तक तेजी से पहुंचने की सुविधा होगी।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "नया बटुआ बनाएं या मौजूदा को आयात करें।"
- },
- "step3": {
- "title": "QR आइकन पर टैप करें और स्कैन करें",
- "description": "अपने होमस्क्रीन पर QR आइकन पर टैप करें, कोड स्कैन करें और प्रम्प्ट को कनेक्ट करने की पुष्टि करें।"
- }
- }
- },
- "phantom": {
- "extension": {
- "step1": {
- "title": "फैंटम एक्सटेंशन स्थापित करें",
- "description": "हम आपके वॉलेट के आसान उपयोग के लिए फैंटम को अपने टास्कबार में पिन करने की सलाह देते हैं।"
- },
- "step2": {
- "title": "एक वॉलेट बनाएं या आयात करें",
- "description": "सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से ले रहे हैं। अपना गुप्त वसूली वाक्यांश किसी के साथ भी साझा न करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आप अपना वॉलेट सेट कर लें, तो ब्राउज़र को ताजगी देने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।"
- }
- }
- },
- "rabby": {
- "extension": {
- "step1": {
- "title": "Rabby एक्सटेंशन स्थापित करें",
- "description": "हम आपको सलाह देते हैं कि अपने वॉलेट की जल्दी से पहुँच के लिए Rabby को अपने टास्कबार में पिन करें।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेते हैं। कभी भी किसी के साथ अपना गुप्त वाक्यांश साझा न करें।"
- },
- "step3": {
- "title": "अपना ब्राउज़र ताज़ा करें",
- "description": "जब आप अपना वॉलेट सेट अप कर लेते हैं, तो ब्राउज़र को ताज़ा करने और एक्सटेंशन लोड करने के लिए नीचे क्लिक करें।"
- }
- }
- },
- "ronin": {
- "qr_code": {
- "step1": {
- "description": "हम आपके वॉलेट तक जल्दी पहुँच के लिए Ronin Wallet को आपके होम स्क्रीन पर डालने की सलाह देते हैं।",
- "title": "Ronin Wallet ऐप खोलें"
- },
- "step2": {
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "जैसे ही आप स्कैन करेंगे, एक कनेक्शन संकेत आपके वॉलेट को कनेक्ट करने के लिए प्रकट होगा।",
- "title": "स्कैन बटन को टैप करें"
- }
- },
- "extension": {
- "step1": {
- "description": "अपने वॉलेट तक जल्दी पहुँच के लिए हम Ronin Wallet को आपके टास्कबार पर पिन करने की सलाह देते हैं।",
- "title": "Ronin Wallet एक्सटेंशन इंस्टॉल करें"
- },
- "step2": {
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।",
- "title": "अपने ब्राउज़र को ताज़ा करें"
- }
- }
- },
- "ramper": {
- "extension": {
- "step1": {
- "title": "Ramper एक्सटेंशन इंस्टॉल करें",
- "description": "अपने वॉलेट तक आसान पहुँच के लिए हम Ramper को आपके टास्कबार पर पिन करने की सलाह देते हैं।"
- },
- "step2": {
- "title": "एक वॉलेट बनाएँ",
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।"
- }
- }
- },
- "safeheron": {
- "extension": {
- "step1": {
- "title": "कोर एक्सटेंशन स्थापित करें",
- "description": "हम आपको सलाह देते हैं कि अपने वॉलेट की जल्दी से पहुँच के लिए Safeheron को अपने टास्कबार में पिन करें।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "सुनिश्चित करें कि आप एक सुरक्षित तरीके से अपना वॉलेट बैकअप कर रहे हैं। कभी भी किसी के साथ अपने गुप्त वाक्यांश को साझा न करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आप अपने वॉलेट को सेट अप करते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन को लोड करें।"
- }
- }
- },
- "taho": {
- "extension": {
- "step1": {
- "title": "ताहो एक्सटेंशन स्थापित करें",
- "description": "हम आपके वॉलेट तक त्वरित पहुँच के लिए ताहो को अपने टास्कबार में पिन करने की सलाह देते हैं।"
- },
- "step2": {
- "title": "एक वॉलेट बनाएँ या आयात करें",
- "description": "सुनिश्चित करें कि आप एक सुरक्षित तरीके से अपना वॉलेट बैकअप कर रहे हैं। कभी भी किसी के साथ अपने गुप्त वाक्यांश को साझा न करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आप अपना बटुआ सेट कर लेते हैं, तो नीचे क्लिक करके ब्राउज़र को ताज़ा करें और एक्सटेंशन को लोड करें।"
- }
- }
- },
- "wigwam": {
- "extension": {
- "step1": {
- "title": "Wigwam एक्सटेंशन स्थापित करें",
- "description": "हम अपनी वॉलेट तक तेज़ी से पहुँच के लिए Wigwam को अपने टास्कबार में पिन करने की सलाह देते हैं।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।"
- }
- }
- },
- "talisman": {
- "extension": {
- "step1": {
- "title": "तालिसमान एक्सटेंशन स्थापित करें",
- "description": "हम आपके बटुए के त्वरित पहुँच के लिए तालिसमान को अपने टास्कबार में पिन करने की सिफारिश करते हैं।"
- },
- "step2": {
- "title": "एक ईथेरियम बटुए बनाएं या आयात करें",
- "description": "अपने बटुए का बैकअप एक सुरक्षित तरीके से लेने का ध्यान रखें। कभी भी अपनी वसूली वाक्यांश को किसी के साथ साझा न करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आप अपना बटुआ सेट कर लेते हैं, तो नीचे क्लिक करके ब्राउज़र को ताज़ा करें और एक्सटेंशन को लोड करें।"
- }
- }
- },
- "xdefi": {
- "extension": {
- "step1": {
- "title": "XDEFI वॉलेट एक्सटेंशन स्थापित करें",
- "description": "हम आपकी वॉलेट की जल्दी से पहुँच के लिए XDEFI Wallet को अपने टास्कबार में पिन करने की सलाह देते हैं।"
- },
- "step2": {
- "title": "एक वॉलेट बनाएं या आयात करें",
- "description": "निश्चित रूप से अपने वॉलेट का बैकअप किसी सुरक्षित तरीके से लें। अपनी गोपनीय वाक्यांश को किसी के साथ शेयर ना करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आपने अपनी वॉलेट सेट अप कर ली हो, तो ब्राउज़र को ताज़ा करने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।"
- }
- }
- },
- "zeal": {
- "qr_code": {
- "step1": {
- "title": "Zeal ऐप को खोलें",
- "description": "अपने वॉलेट तक तेजी से पहुंचने के लिए अपने होम स्क्रीन पर Zeal वॉलेट जोड़ें।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "नया बटुआ बनाएं या मौजूदा को आयात करें।"
- },
- "step3": {
- "title": "QR आइकन पर टैप करें और स्कैन करें",
- "description": "अपने होमस्क्रीन पर QR आइकन पर टैप करें, कोड स्कैन करें और प्रम्प्ट को कनेक्ट करने की पुष्टि करें।"
- }
- },
- "extension": {
- "step1": {
- "title": "Zeal एक्सटेंशन स्थापित करें",
- "description": "हम आपको अपने वॉलेट तक जल्दी पहुँचने के लिए Zeal को अपने टास्कबार में पिन करने की सलाह देते हैं।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।"
- }
- }
- },
- "safepal": {
- "extension": {
- "step1": {
- "title": "SafePal Wallet एक्सटेंशन स्थापित करें",
- "description": "अपने ब्राउज़र के शीर्ष दाएं में क्लिक करें और SafePal Wallet को आसानी से पहुंच के लिए पिन करें।"
- },
- "step2": {
- "title": "एक बटुआ बनाएं या आयात करें",
- "description": "नया बटुआ बनाएं या मौजूदा को आयात करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आप SafePal वॉलेट सेट अप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को रिफ्रेश करें और एक्सटेंशन लोड करें।"
- }
- },
- "qr_code": {
- "step1": {
- "title": "SafePal वॉलेट ऐप खोलें",
- "description": "अपने वॉलेट तक जल्दी पहुंचने के लिए SafePal वॉलेट को अपनी होम स्क्रीन पर रखें।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "नया बटुआ बनाएं या मौजूदा को आयात करें।"
- },
- "step3": {
- "title": "सेटिंग्स में WalletConnect को टैप करें",
- "description": "नया कनेक्शन चुनें, फिर QR कोड स्कैन करें और कनेक्ट करने के लिए प्रॉम्प्ट की पुष्टि करें।"
- }
- }
- },
- "desig": {
- "extension": {
- "step1": {
- "title": "Desig एक्सटेंशन स्थापित करें",
- "description": "हम आपको अपने वॉलेट के लिए आसानी से पहुंच पाने के लिए Desig को अपने टास्कबार में पिन करने की सलाह देते हैं।"
- },
- "step2": {
- "title": "एक वॉलेट बनाएँ",
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।"
- }
- }
- },
- "subwallet": {
- "extension": {
- "step1": {
- "title": "SubWallet एक्सटेंशन स्थापित करें",
- "description": "हम आपको अपने वॉलेट तक तेजी से पहुंचने के लिए SubWallet को अपने टास्कबार में पिन करने की सलाह देते हैं।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "अपने बटुए का बैकअप एक सुरक्षित तरीके से लेने का ध्यान रखें। कभी भी अपनी वसूली वाक्यांश को किसी के साथ साझा न करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।"
- }
- },
- "qr_code": {
- "step1": {
- "title": "SubWallet ऐप खोलें",
- "description": "हम आपको तेजी से पहुंचने के लिए SubWallet को अपने होम स्क्रीन पर रखने की सलाह देते हैं।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।"
- },
- "step3": {
- "title": "स्कैन बटन को टैप करें",
- "description": "जैसे ही आप स्कैन करेंगे, एक कनेक्शन संकेत आपके वॉलेट को कनेक्ट करने के लिए प्रकट होगा।"
- }
- }
- },
- "clv": {
- "extension": {
- "step1": {
- "title": "CLV Wallet एक्सटेंशन स्थापित करें",
- "description": "हम आपको अपने वॉलेट तक तेजी से पहुंचने के लिए CLV Wallet को अपने टास्कबार में पिन करने की सलाह देते हैं।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।"
- }
- },
- "qr_code": {
- "step1": {
- "title": "CLV वॉलेट ऐप खोलें",
- "description": "हम तीव्र पहुंच के लिए आपके होम स्क्रीन पर CLV वॉलेट रखने की सलाह देते हैं।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।"
- },
- "step3": {
- "title": "स्कैन बटन को टैप करें",
- "description": "जैसे ही आप स्कैन करेंगे, एक कनेक्शन संकेत आपके वॉलेट को कनेक्ट करने के लिए प्रकट होगा।"
- }
- }
- },
- "okto": {
- "qr_code": {
- "step1": {
- "title": "Okto ऐप को खोलें",
- "description": "त्वरित पहुंच के लिए अपने होम स्क्रीन पर Okto जोड़ें"
- },
- "step2": {
- "title": "एक MPC वॉलेट बनाएं",
- "description": "एक खाता बनाएं और वॉलेट उत्पन्न करें"
- },
- "step3": {
- "title": "सेटिंग्स में WalletConnect को टैप करें",
- "description": "ऊपरी दाएँ में स्कैन QR आइकन को टैप करें और कनेक्ट करने के लिए संकेत दें।"
- }
- }
- },
- "ledger": {
- "desktop": {
- "step1": {
- "title": "लेजर लाइव ऐप खोलें",
- "description": "हम तेज एक्सेस के लिए अपने होम स्क्रीन पर Ledger Live डालने की सिफारिश करते हैं।"
- },
- "step2": {
- "title": "अपना लेजर सेट करें",
- "description": "एक नया लेजर सेट अप करें या मौजूदा वाले से कनेक्ट करें।"
- },
- "step3": {
- "title": "कनेक्ट करें",
- "description": "स्कैन करने के बाद, आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन प्रॉम्प्ट दिखाई देगा।"
- }
- },
- "qr_code": {
- "step1": {
- "title": "लेजर लाइव ऐप खोलें",
- "description": "हम तेज एक्सेस के लिए अपने होम स्क्रीन पर Ledger Live डालने की सिफारिश करते हैं।"
- },
- "step2": {
- "title": "अपना लेजर सेट करें",
- "description": "आप डेस्कटॉप ऐप के साथ सिंक कर सकते हैं या अपने Ledger को कनेक्ट कर सकते हैं।"
- },
- "step3": {
- "title": "कोड स्कैन करें",
- "description": "WalletConnect पर टैप करें फिर स्कैनर पर स्विच करें। जब आप स्कैन करेंगे, तो आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन संकेत प्रकट होगा।"
- }
- }
- },
- "valora": {
- "qr_code": {
- "step1": {
- "title": "Valora ऐप खोलें",
- "description": "हम सलाह देते हैं कि आप Valora को अपने होम स्क्रीन पर रखें, इससे तेजी से एक्सेस करने में आसानी होगी।"
- },
- "step2": {
- "title": "एक वॉलेट बनाएं या आयात करें",
- "description": "नया बटुआ बनाएं या मौजूदा को आयात करें।"
- },
- "step3": {
- "title": "स्कैन बटन को टैप करें",
- "description": "जैसे ही आप स्कैन करेंगे, एक कनेक्शन संकेत आपके वॉलेट को कनेक्ट करने के लिए प्रकट होगा।"
- }
- }
- },
- "gate": {
- "qr_code": {
- "step1": {
- "title": "गेट ऐप खोलें",
- "description": "हम आपको गेट को अपने होम स्क्रीन पर रखने की सलाह देते हैं ताकि तेज़ी से एक्सेस मिल सके।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "नया बटुआ बनाएं या मौजूदा को आयात करें।"
- },
- "step3": {
- "title": "स्कैन बटन को टैप करें",
- "description": "जैसे ही आप स्कैन करेंगे, एक कनेक्शन संकेत आपके वॉलेट को कनेक्ट करने के लिए प्रकट होगा।"
- }
- },
- "extension": {
- "step1": {
- "title": "गेट एक्सटेंशन स्थापित करें",
- "description": "हम आपको अपने वॉलेट के आसान उपयोग के लिए गेट को अपने टास्कबार में पिन करने की सलाह देते हैं।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से ले रहे हैं। अपना गुप्त वसूली वाक्यांश किसी के साथ भी साझा न करें।"
- },
- "step3": {
- "title": "अपने ब्राउज़र को ताज़ा करें",
- "description": "एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।"
- }
- }
- },
- "xportal": {
- "qr_code": {
- "step1": {
- "description": "तेजी से अपने वॉलेट को खोलने के लिए xPortal को अपने होम स्क्रीन पर रखें।",
- "title": "xPortal ऐप खोलें"
- },
- "step2": {
- "description": "नया बटुआ बनाएं या मौजूदा को आयात करें।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "जैसे ही आप स्कैन करेंगे, एक कनेक्शन संकेत आपके वॉलेट को कनेक्ट करने के लिए प्रकट होगा।",
- "title": "QR स्कैन बटन को टैप करें"
- }
- }
- },
- "mew": {
- "qr_code": {
- "step1": {
- "description": "हम तीव्र पहुंच के लिए आपके होम स्क्रीन पर MEW वॉलेट रखने की सलाह देते हैं।",
- "title": "MEW वॉलेट ऐप खोलें"
- },
- "step2": {
- "description": "आप बादल बैकअप सुविधा का उपयोग करके आसानी से अपने वॉलेट का बैकअप ले सकते हैं।",
- "title": "वॉलेट बनाएं या आयात करें"
- },
- "step3": {
- "description": "जैसे ही आप स्कैन करेंगे, एक कनेक्शन संकेत आपके वॉलेट को कनेक्ट करने के लिए प्रकट होगा।",
- "title": "स्कैन बटन को टैप करें"
- }
- }
- }
- },
- "zilpay": {
- "qr_code": {
- "step1": {
- "title": "ZilPay ऐप को खोलें",
- "description": "अपने वॉलेट तक अधिक जल्दी पहुंचने के लिए ZilPay को अपने होम स्क्रीन पर जोड़ें।"
- },
- "step2": {
- "title": "वॉलेट बनाएं या आयात करें",
- "description": "नया बटुआ बनाएं या मौजूदा को आयात करें।"
- },
- "step3": {
- "title": "स्कैन बटन को टैप करें",
- "description": "जैसे ही आप स्कैन करेंगे, एक कनेक्शन संकेत आपके वॉलेट को कनेक्ट करने के लिए प्रकट होगा।"
- }
- }
- }
-}
-`;export{u as default};
diff --git a/client2/build/assets/hyperevm-VKPAA4SA-CHwraEsx.js b/client2/build/assets/hyperevm-VKPAA4SA-CHwraEsx.js
deleted file mode 100644
index 60befc014..000000000
--- a/client2/build/assets/hyperevm-VKPAA4SA-CHwraEsx.js
+++ /dev/null
@@ -1 +0,0 @@
-var C="data:image/svg+xml,%3Csvg%20width%3D%22144%22%20height%3D%22144%22%20viewBox%3D%220%200%20144%20144%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M144%2071.6991C144%20119.306%20114.866%20134.582%2099.5156%20120.98C86.8804%20109.889%2083.1211%2086.4521%2064.116%2084.0456C39.9942%2081.0113%2037.9057%20113.133%2022.0334%20113.133C3.5504%20113.133%200%2086.2428%200%2072.4315C0%2058.3063%203.96809%2039.0542%2019.736%2039.0542C38.1146%2039.0542%2039.1588%2066.5722%2062.132%2065.1073C85.0007%2063.5379%2085.4184%2034.8689%20100.247%2022.6271C113.195%2012.0593%20144%2023.4641%20144%2071.6991Z%22%20fill%3D%22%2397FCE4%22%2F%3E%0A%3C%2Fsvg%3E%0A";export{C as default};
diff --git a/client2/build/assets/id-K6pABLYK.js b/client2/build/assets/id-K6pABLYK.js
deleted file mode 100644
index be2de2d66..000000000
--- a/client2/build/assets/id-K6pABLYK.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import{b as c}from"./core-Cywc921C.js";import"./index-B6P9GsMd.js";import"./index.es-MB-v37Rm.js";import"./events-DQ172AOg.js";import"./index-nibyPLVP.js";const e=c``;export{e as idSvg};
diff --git a/client2/build/assets/id_ID-7ZWSMOOE-ZzIoBaiI.js b/client2/build/assets/id_ID-7ZWSMOOE-ZzIoBaiI.js
deleted file mode 100644
index c49942fca..000000000
--- a/client2/build/assets/id_ID-7ZWSMOOE-ZzIoBaiI.js
+++ /dev/null
@@ -1,1427 +0,0 @@
-var n=`{
- "connect_wallet": {
- "label": "Hubungkan Dompet",
- "wrong_network": {
- "label": "Jaringan yang salah"
- }
- },
- "intro": {
- "title": "Apa itu Dompet?",
- "description": "Sebuah dompet digunakan untuk mengirim, menerima, menyimpan, dan menampilkan aset digital. Ini juga cara baru untuk masuk, tanpa perlu membuat akun dan kata sandi baru di setiap situs web.",
- "digital_asset": {
- "title": "Sebuah Rumah untuk Aset Digital Anda",
- "description": "Dompet digunakan untuk mengirim, menerima, menyimpan, dan menampilkan aset digital seperti Ethereum dan NFTs."
- },
- "login": {
- "title": "Cara Baru untuk Masuk",
- "description": "Alih-alih membuat akun dan kata sandi baru di setiap situs web, cukup hubungkan dompet Anda."
- },
- "get": {
- "label": "Dapatkan Dompet"
- },
- "learn_more": {
- "label": "Pelajari lebih lanjut"
- }
- },
- "sign_in": {
- "label": "Verifikasi akun Anda",
- "description": "Untuk menyelesaikan koneksi, Anda harus menandatangani sebuah pesan di dompet Anda untuk memastikan bahwa Anda adalah pemilik dari akun ini.",
- "message": {
- "send": "Kirim pesan",
- "preparing": "Mempersiapkan pesan...",
- "cancel": "Batal",
- "preparing_error": "Kesalahan dalam mempersiapkan pesan, silakan coba lagi!"
- },
- "signature": {
- "waiting": "Menunggu tanda tangan...",
- "verifying": "Memverifikasi tanda tangan...",
- "signing_error": "Kesalahan dalam menandatangani pesan, silakan coba lagi!",
- "verifying_error": "Kesalahan dalam memverifikasi tanda tangan, silakan coba lagi!",
- "oops_error": "Ups, ada yang salah!"
- }
- },
- "connect": {
- "label": "Hubungkan",
- "title": "Hubungkan Dompet",
- "new_to_ethereum": {
- "description": "Baru dalam dompet Ethereum?",
- "learn_more": {
- "label": "Pelajari lebih lanjut"
- }
- },
- "learn_more": {
- "label": "Pelajari lebih lanjut"
- },
- "recent": "Terkini",
- "status": {
- "opening": "Membuka %{wallet}...",
- "connecting": "Menghubungkan",
- "connect_mobile": "Lanjutkan di %{wallet}",
- "not_installed": "%{wallet} tidak terpasang",
- "not_available": "%{wallet} tidak tersedia",
- "confirm": "Konfirmasikan koneksi di ekstensi",
- "confirm_mobile": "Terima permintaan koneksi di dompet"
- },
- "secondary_action": {
- "get": {
- "description": "Tidak memiliki %{wallet}?",
- "label": "DAPATKAN"
- },
- "install": {
- "label": "PASANG"
- },
- "retry": {
- "label": "COBA LAGI"
- }
- },
- "walletconnect": {
- "description": {
- "full": "Perlu modal resmi WalletConnect?",
- "compact": "Perlu modal WalletConnect?"
- },
- "open": {
- "label": "BUKA"
- }
- }
- },
- "connect_scan": {
- "title": "Pindai dengan %{wallet}",
- "fallback_title": "Pindai dengan ponsel Anda"
- },
- "connector_group": {
- "installed": "Terinstal",
- "recommended": "Direkomendasikan",
- "other": "Lainnya",
- "popular": "Populer",
- "more": "Lebih Banyak",
- "others": "Lainnya"
- },
- "get": {
- "title": "Dapatkan Dompet",
- "action": {
- "label": "DAPATKAN"
- },
- "mobile": {
- "description": "Dompet Mobile"
- },
- "extension": {
- "description": "Ekstensi Browser"
- },
- "mobile_and_extension": {
- "description": "Dompet Mobile dan Ekstensi"
- },
- "mobile_and_desktop": {
- "description": "Dompet Seluler dan Desktop"
- },
- "looking_for": {
- "title": "Bukan yang Anda cari?",
- "mobile": {
- "description": "Pilih dompet di layar utama untuk memulai dengan penyedia dompet yang berbeda."
- },
- "desktop": {
- "compact_description": "Pilih dompet di layar utama untuk memulai dengan penyedia dompet yang berbeda.",
- "wide_description": "Pilih dompet di sebelah kiri untuk memulai dengan penyedia dompet yang berbeda."
- }
- }
- },
- "get_options": {
- "title": "Mulai dengan %{wallet}",
- "short_title": "Dapatkan %{wallet}",
- "mobile": {
- "title": "%{wallet} untuk Mobile",
- "description": "Gunakan dompet mobile untuk menjelajahi dunia Ethereum.",
- "download": {
- "label": "Dapatkan aplikasinya"
- }
- },
- "extension": {
- "title": "%{wallet} untuk %{browser}",
- "description": "Akses dompet Anda langsung dari browser web favorit Anda.",
- "download": {
- "label": "Tambahkan ke %{browser}"
- }
- },
- "desktop": {
- "title": "%{wallet} untuk %{platform}",
- "description": "Akses dompet Anda secara native dari desktop yang kuat Anda.",
- "download": {
- "label": "Tambahkan ke %{platform}"
- }
- }
- },
- "get_mobile": {
- "title": "Instal %{wallet}",
- "description": "Pindai dengan ponsel Anda untuk mengunduh di iOS atau Android",
- "continue": {
- "label": "Lanjutkan"
- }
- },
- "get_instructions": {
- "mobile": {
- "connect": {
- "label": "Hubungkan"
- },
- "learn_more": {
- "label": "Pelajari lebih lanjut"
- }
- },
- "extension": {
- "refresh": {
- "label": "Segarkan"
- },
- "learn_more": {
- "label": "Pelajari lebih lanjut"
- }
- },
- "desktop": {
- "connect": {
- "label": "Hubungkan"
- },
- "learn_more": {
- "label": "Pelajari lebih lanjut"
- }
- }
- },
- "chains": {
- "title": "Alihkan Jaringan",
- "wrong_network": "Jaringan yang salah terdeteksi, alihkan atau diskonek untuk melanjutkan.",
- "confirm": "Konfirmasi di Dompet",
- "switching_not_supported": "Dompet Anda tidak mendukung pengalihan jaringan dari %{appName}. Coba alihkan jaringan dari dalam dompet Anda.",
- "switching_not_supported_fallback": "Wallet Anda tidak mendukung penggantian jaringan dari aplikasi ini. Cobalah ganti jaringan dari dalam wallet Anda.",
- "disconnect": "Putuskan koneksi",
- "connected": "Terkoneksi"
- },
- "profile": {
- "disconnect": {
- "label": "Putuskan koneksi"
- },
- "copy_address": {
- "label": "Salin Alamat",
- "copied": "Tersalin!"
- },
- "explorer": {
- "label": "Lihat lebih banyak di penjelajah"
- },
- "transactions": {
- "description": "%{appName} transaksi akan muncul di sini...",
- "description_fallback": "Transaksi Anda akan muncul di sini...",
- "recent": {
- "title": "Transaksi Terbaru"
- },
- "clear": {
- "label": "Hapus Semua"
- }
- }
- },
- "wallet_connectors": {
- "argent": {
- "qr_code": {
- "step1": {
- "description": "Letakkan Argent di layar utama Anda untuk akses lebih cepat ke dompet Anda.",
- "title": "Buka aplikasi Argent"
- },
- "step2": {
- "description": "Buat dompet dan nama pengguna, atau impor dompet yang ada.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menghubungkan dompet Anda.",
- "title": "Tekan tombol Scan QR"
- }
- }
- },
- "berasig": {
- "extension": {
- "step1": {
- "title": "Instal ekstensi BeraSig",
- "description": "Kami merekomendasikan menempelkan BeraSig ke taskbar Anda untuk akses dompet Anda lebih mudah."
- },
- "step2": {
- "title": "Buat Dompet",
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "best": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi Best Wallet",
- "description": "Tambahkan Best Wallet ke layar utama Anda untuk akses ke wallet Anda lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Buat dompet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Ketuk ikon QR dan scan",
- "description": "Ketuk ikon QR di layar utama Anda, pindai kode dan konfirmasi prompt untuk terhubung."
- }
- }
- },
- "bifrost": {
- "qr_code": {
- "step1": {
- "description": "Kami merekomendasikan untuk menempatkan Bifrost Wallet di layar utama anda untuk akses yang lebih cepat.",
- "title": "Buka aplikasi Bifrost Wallet"
- },
- "step2": {
- "description": "Buat atau impor sebuah dompet menggunakan frasa pemulihan Anda.",
- "title": "Buat atau Impor sebuah Wallet"
- },
- "step3": {
- "description": "Setelah Anda memindai, sebuah pesan akan muncul untuk menghubungkan dompet Anda.",
- "title": "Tekan tombol scan"
- }
- }
- },
- "bitget": {
- "qr_code": {
- "step1": {
- "description": "Kami menyarankan untuk meletakkan Bitget Wallet di layar depan Anda untuk akses yang lebih cepat.",
- "title": "Buka aplikasi Bitget Wallet"
- },
- "step2": {
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun.",
- "title": "Buat atau Impor Wallet"
- },
- "step3": {
- "description": "Setelah Anda pindai, akan muncul petunjuk untuk menghubungkan wallet Anda.",
- "title": "Tekan tombol pindai"
- }
- },
- "extension": {
- "step1": {
- "description": "Kami menyarankan untuk memasang Bitget Wallet ke taskbar Anda untuk akses yang lebih cepat ke wallet Anda.",
- "title": "Instal ekstensi Dompet Bitget"
- },
- "step2": {
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frasa rahasia Anda kepada siapa pun.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",
- "title": "Segarkan browser Anda"
- }
- }
- },
- "bitski": {
- "extension": {
- "step1": {
- "description": "Kami merekomendasikan untuk memasang Bitski ke taskbar Anda untuk akses dompet Anda yang lebih cepat.",
- "title": "Pasang ekstensi Bitski"
- },
- "step2": {
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",
- "title": "Segarkan browser Anda"
- }
- }
- },
- "bitverse": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi Bitverse Wallet",
- "description": "Tambahkan Bitverse Wallet ke layar utama Anda untuk akses yang lebih cepat ke dompet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Buat dompet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Ketuk ikon QR dan scan",
- "description": "Ketuk ikon QR di layar utama Anda, pindai kode dan konfirmasi prompt untuk terhubung."
- }
- }
- },
- "bloom": {
- "desktop": {
- "step1": {
- "title": "Buka aplikasi Bloom Wallet",
- "description": "Kami merekomendasikan untuk meletakkan Bloom Wallet di layar utama Anda untuk akses yang lebih cepat."
- },
- "step2": {
- "description": "Buat atau impor sebuah dompet menggunakan frasa pemulihan Anda.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda memiliki dompet, klik pada Sambungkan untuk terhubung melalui Bloom. Sebuah permintaan sambungan akan muncul di aplikasi untuk Anda konfirmasi.",
- "title": "Klik pada Sambungkan"
- }
- }
- },
- "bybit": {
- "qr_code": {
- "step1": {
- "description": "Kami menyarankan menempatkan Bybit di layar utama Anda untuk akses yang lebih cepat ke dompet Anda.",
- "title": "Buka aplikasi Bybit"
- },
- "step2": {
- "description": "Anda dapat dengan mudah mencadangkan wallet Anda menggunakan fitur cadangan kami di telepon Anda.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menghubungkan dompet Anda.",
- "title": "Tekan tombol scan"
- }
- },
- "extension": {
- "step1": {
- "description": "Klik di pojok kanan atas browser Anda dan sematkan Wallet Bybit untuk akses yang mudah.",
- "title": "Pasang ekstensi Wallet Bybit"
- },
- "step2": {
- "description": "Buat dompet baru atau impor yang sudah ada.",
- "title": "Buat atau Impor sebuah dompet"
- },
- "step3": {
- "description": "Setelah Anda mengatur Wallet Bybit, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",
- "title": "Segarkan browser Anda"
- }
- }
- },
- "binance": {
- "qr_code": {
- "step1": {
- "description": "Kami merekomendasikan untuk meletakkan Binance di layar utama Anda untuk akses lebih cepat ke wallet Anda.",
- "title": "Buka aplikasi Binance"
- },
- "step2": {
- "description": "Anda dapat dengan mudah mencadangkan wallet Anda menggunakan fitur cadangan kami di telepon Anda.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menghubungkan dompet Anda.",
- "title": "Ketuk tombol WalletConnect"
- }
- }
- },
- "coin98": {
- "qr_code": {
- "step1": {
- "description": "Kami merekomendasikan untuk menaruh Coin98 Wallet di layar utama Anda untuk akses wallet Anda lebih cepat.",
- "title": "Buka aplikasi Coin98 Wallet"
- },
- "step2": {
- "description": "Anda dapat dengan mudah mencadangkan wallet Anda menggunakan fitur cadangan kami di telepon Anda.",
- "title": "Buat atau Impor Wallet"
- },
- "step3": {
- "description": "Setelah Anda melakukan pemindaian, akan muncul prompt koneksi untuk Anda menghubungkan wallet Anda.",
- "title": "Ketuk tombol WalletConnect"
- }
- },
- "extension": {
- "step1": {
- "description": "Klik di pojok kanan atas browser Anda dan sematkan Coin98 Wallet untuk akses mudah.",
- "title": "Pasang ekstensi Coin98 Wallet"
- },
- "step2": {
- "description": "Buat dompet baru atau impor yang sudah ada.",
- "title": "Buat atau Impor sebuah dompet"
- },
- "step3": {
- "description": "Setelah Anda menyiapkan Coin98 Wallet, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",
- "title": "Segarkan browser Anda"
- }
- }
- },
- "coinbase": {
- "qr_code": {
- "step1": {
- "description": "Kami merekomendasikan memasang Coinbase Wallet di layar utama Anda untuk akses yang lebih cepat.",
- "title": "Buka aplikasi Coinbase Wallet"
- },
- "step2": {
- "description": "Anda dapat dengan mudah mencadangkan dompet Anda menggunakan fitur cadangan awan.",
- "title": "Buat atau Impor sebuah Dompet"
- },
- "step3": {
- "description": "Setelah Anda memindai, akan muncul sebuah petunjuk koneksi untuk Anda menyambungkan dompet Anda.",
- "title": "Ketuk tombol pindai"
- }
- },
- "extension": {
- "step1": {
- "description": "Kami merekomendasikan untuk menempel Coinbase Wallet ke taskbar Anda untuk akses lebih cepat ke dompet Anda.",
- "title": "Instal ekstensi Coinbase Wallet"
- },
- "step2": {
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase pemulihan rahasia Anda kepada siapa pun.",
- "title": "Buat atau Import Wallet"
- },
- "step3": {
- "description": "Setelah Anda menyiapkan wallet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",
- "title": "Segarkan browser Anda"
- }
- }
- },
- "compass": {
- "extension": {
- "step1": {
- "description": "Kami merekomendasikan untuk menempelkan Compass Wallet ke taskbar Anda untuk akses lebih cepat ke dompet Anda.",
- "title": "Instal ekstensi Compass Wallet"
- },
- "step2": {
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",
- "title": "Segarkan browser Anda"
- }
- }
- },
- "core": {
- "qr_code": {
- "step1": {
- "description": "Kami merekomendasikan untuk meletakkan Core di layar utama Anda untuk akses lebih cepat ke wallet Anda.",
- "title": "Buka aplikasi Core"
- },
- "step2": {
- "description": "Anda dapat dengan mudah mencadangkan wallet Anda dengan menggunakan fitur cadangan kami di telepon Anda.",
- "title": "Buat atau Import Wallet"
- },
- "step3": {
- "description": "Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menyambungkan wallet Anda.",
- "title": "Ketuk tombol WalletConnect"
- }
- },
- "extension": {
- "step1": {
- "description": "Kami merekomendasikan untuk menempelkan Core pada taskbar Anda untuk akses ke dompet Anda lebih cepat.",
- "title": "Pasang ekstensi Core"
- },
- "step2": {
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",
- "title": "Segarkan browser Anda"
- }
- }
- },
- "fox": {
- "qr_code": {
- "step1": {
- "description": "Kami merekomendasikan untuk menaruh FoxWallet pada layar utama Anda untuk akses lebih cepat.",
- "title": "Buka aplikasi FoxWallet"
- },
- "step2": {
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun.",
- "title": "Buat atau Impor Wallet"
- },
- "step3": {
- "description": "Setelah Anda memindai, prompt koneksi akan muncul untuk Anda hubungkan dompet Anda.",
- "title": "Ketuk tombol pindai"
- }
- }
- },
- "frontier": {
- "qr_code": {
- "step1": {
- "description": "Kami merekomendasikan untuk meletakkan Frontier Wallet di layar awal Anda untuk akses yang lebih cepat.",
- "title": "Buka aplikasi Frontier Wallet"
- },
- "step2": {
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun.",
- "title": "Buat atau Impor Wallet"
- },
- "step3": {
- "description": "Setelah Anda memindai, prompt koneksi akan muncul untuk Anda menghubungkan dompet Anda.",
- "title": "Ketuk tombol pindai"
- }
- },
- "extension": {
- "step1": {
- "description": "Kami menyarankan menempelkan Frontier Wallet ke taskbar Anda untuk akses yang lebih cepat ke dompet Anda.",
- "title": "Instal ekstensi Frontier Wallet"
- },
- "step2": {
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",
- "title": "Segarkan browser Anda"
- }
- }
- },
- "im_token": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi imToken",
- "description": "Letakkan aplikasi imToken di layar utama Anda untuk akses yang lebih cepat ke dompet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Buat dompet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Ketuk Ikon Scanner di pojok kanan atas",
- "description": "Pilih Koneksi Baru, lalu pindai kode QR dan konfirmasi petunjuk untuk terhubung."
- }
- }
- },
- "iopay": {
- "qr_code": {
- "step1": {
- "description": "Kami merekomendasikan untuk menaruh ioPay di layar utama Anda untuk akses wallet Anda lebih cepat.",
- "title": "Buka aplikasi ioPay"
- },
- "step2": {
- "description": "Anda dapat dengan mudah mencadangkan wallet Anda menggunakan fitur cadangan kami di telepon Anda.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menghubungkan dompet Anda.",
- "title": "Ketuk tombol WalletConnect"
- }
- }
- },
- "kaikas": {
- "extension": {
- "step1": {
- "description": "Kami menyarankan memasang Kaikas di taskbar Anda untuk akses yang lebih cepat ke dompet Anda.",
- "title": "Pasang ekstensi Kaikas"
- },
- "step2": {
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",
- "title": "Segarkan browser Anda"
- }
- },
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi Kaikas",
- "description": "Letakkan aplikasi Kaikas di layar utama Anda untuk akses yang lebih cepat ke dompet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Buat dompet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Ketuk Ikon Scanner di pojok kanan atas",
- "description": "Pilih Koneksi Baru, lalu pindai kode QR dan konfirmasi petunjuk untuk terhubung."
- }
- }
- },
- "kaia": {
- "extension": {
- "step1": {
- "description": "Kami merekomendasikan menempelkan Kaia ke taskbar Anda untuk akses dompet Anda lebih cepat.",
- "title": "Instal ekstensi Kaia"
- },
- "step2": {
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",
- "title": "Segarkan browser Anda"
- }
- },
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi Kaia",
- "description": "Letakkan aplikasi Kaia di layar utama Anda untuk akses yang lebih cepat ke dompet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Buat dompet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Ketuk Ikon Scanner di pojok kanan atas",
- "description": "Pilih Koneksi Baru, lalu pindai kode QR dan konfirmasi petunjuk untuk terhubung."
- }
- }
- },
- "kraken": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi Kraken Wallet",
- "description": "Tambahkan Kraken Wallet ke layar utama Anda untuk akses lebih cepat ke dompet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Buat dompet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Ketuk ikon QR dan scan",
- "description": "Ketuk ikon QR di layar utama Anda, pindai kode dan konfirmasi prompt untuk terhubung."
- }
- }
- },
- "kresus": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi Kresus Wallet",
- "description": "Tambahkan Kresus Wallet ke layar utama Anda untuk akses yang lebih cepat ke wallet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Buat dompet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Ketuk ikon QR dan scan",
- "description": "Ketuk ikon QR di layar utama Anda, pindai kode dan konfirmasi prompt untuk terhubung."
- }
- }
- },
- "magicEden": {
- "extension": {
- "step1": {
- "title": "Instal ekstensi Magic Eden",
- "description": "Kami menyarankan untuk menempelkan Magic Eden ke taskbar Anda untuk akses lebih cepat ke dompet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase pemulihan rahasia Anda kepada siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "metamask": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi MetaMask",
- "description": "Kami merekomendasikan untuk meletakkan MetaMask di layar beranda Anda untuk akses yang lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun."
- },
- "step3": {
- "title": "Ketuk tombol pindai",
- "description": "Setelah Anda memindai, petunjuk koneksi akan muncul untuk Anda menyambungkan dompet Anda."
- }
- },
- "extension": {
- "step1": {
- "title": "Pasang ekstensi MetaMask",
- "description": "Kami menyarankan untuk memasang MetaMask pada taskbar Anda untuk akses wallet lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Wallet",
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan wallet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "nestwallet": {
- "extension": {
- "step1": {
- "title": "Instal ekstensi NestWallet",
- "description": "Kami menyarankan untuk memasang NestWallet ke taskbar Anda untuk akses dompet yang lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "okx": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi OKX Wallet",
- "description": "Kami menyarankan untuk menaruh OKX Wallet di layar utama Anda untuk akses lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Wallet",
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frasa rahasia Anda kepada siapa pun."
- },
- "step3": {
- "title": "Ketuk tombol scan",
- "description": "Setelah Anda memindai, prompt koneksi akan muncul untuk Anda hubungkan dompet Anda."
- }
- },
- "extension": {
- "step1": {
- "title": "Instal ekstensi OKX Wallet",
- "description": "Kami menyarankan untuk menempelkan OKX Wallet ke taskbar Anda untuk akses lebih cepat ke dompet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frasa rahasia Anda kepada siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda mengatur wallet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "omni": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi Omni",
- "description": "Tambahkan Omni ke layar utama Anda untuk akses yang lebih cepat ke wallet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Wallet",
- "description": "Buat wallet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Ketuk ikon QR dan scan",
- "description": "Ketuk ikon QR di layar utama Anda, pindai kode dan konfirmasi petunjuk untuk terhubung."
- }
- }
- },
- "1inch": {
- "qr_code": {
- "step1": {
- "description": "Letakkan Wallet 1inch di layar utama Anda untuk akses yang lebih cepat ke dompet Anda.",
- "title": "Buka aplikasi Wallet 1inch"
- },
- "step2": {
- "description": "Buat dompet dan nama pengguna, atau impor dompet yang ada.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menghubungkan dompet Anda.",
- "title": "Tekan tombol Scan QR"
- }
- }
- },
- "token_pocket": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi TokenPocket",
- "description": "Kami sarankan meletakkan TokenPocket di layar utama Anda untuk akses yang lebih cepat."
- },
- "step2": {
- "title": "Buat atau impor Dompet",
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase pemulihan rahasia Anda kepada siapa pun."
- },
- "step3": {
- "title": "Ketuk tombol pindai",
- "description": "Setelah Anda memindai, Indikasi sambungan akan muncul untuk Anda menghubungkan dompet Anda."
- }
- },
- "extension": {
- "step1": {
- "title": "Instal ekstensi TokenPocket",
- "description": "Kami merekomendasikan penambatan TokenPocket ke taskbar Anda untuk akses dompet Anda lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Wallet",
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagi frasa rahasia Anda dengan siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda mengatur dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "trust": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi Trust Wallet",
- "description": "Pasang Trust Wallet di layar utama Anda untuk akses dompet Anda lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Wallet",
- "description": "Buat dompet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Ketuk WalletConnect di Pengaturan",
- "description": "Pilih Koneksi Baru, kemudian pindai kode QR dan konfirmasi perintah untuk terhubung."
- }
- },
- "extension": {
- "step1": {
- "title": "Instal ekstensi Trust Wallet",
- "description": "Klik di pojok kanan atas browser Anda dan sematkan Trust Wallet untuk akses mudah."
- },
- "step2": {
- "title": "Buat atau Impor dompet",
- "description": "Buat dompet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda mengatur Trust Wallet, klik di bawah untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "uniswap": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi Uniswap",
- "description": "Tambahkan Uniswap Wallet ke layar utama Anda untuk akses ke wallet Anda lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Wallet",
- "description": "Buat wallet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Ketuk ikon QR dan pindai",
- "description": "Ketuk ikon QR di layar utama Anda, pindai kode dan konfirmasi prompt untuk terhubung."
- }
- }
- },
- "zerion": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi Zerion",
- "description": "Kami merekomendasikan untuk meletakkan Zerion di layar utama Anda untuk akses lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase pemulihan rahasia Anda kepada siapa pun."
- },
- "step3": {
- "title": "Ketuk tombol scan",
- "description": "Setelah Anda scan, muncul prompt koneksi untuk Anda menghubungkan dompet Anda."
- }
- },
- "extension": {
- "step1": {
- "title": "Instal ekstensi Zerion",
- "description": "Kami menyarankan untuk menempelkan Zerion ke taskbar Anda untuk akses lebih cepat ke dompet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Wallet",
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda mengatur wallet Anda, klik di bawah untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "rainbow": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi Rainbow",
- "description": "Kami menyarankan menempatkan Rainbow di layar home Anda untuk akses yang lebih cepat ke wallet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Wallet",
- "description": "Anda dapat dengan mudah mencadangkan wallet Anda menggunakan fitur cadangan kami di telepon Anda."
- },
- "step3": {
- "title": "Tekan tombol scan",
- "description": "Setelah Anda memindai, akan muncul pesan untuk menghubungkan dompet Anda."
- }
- }
- },
- "enkrypt": {
- "extension": {
- "step1": {
- "description": "Kami menyarankan untuk memasang Enkrypt Wallet ke taskbar Anda untuk akses dompet yang lebih cepat.",
- "title": "Instal ekstensi Enkrypt Wallet"
- },
- "step2": {
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah berbagi frase rahasia Anda dengan siapa pun.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda menyiapkan dompet, klik di bawah ini untuk memuat ulang peramban dan meload ekstensi.",
- "title": "Segarkan browser Anda"
- }
- }
- },
- "frame": {
- "extension": {
- "step1": {
- "description": "Kami menyarankan untuk memasang Frame ke taskbar Anda untuk akses dompet yang lebih cepat.",
- "title": "Instal Frame & ekstensi pendamping"
- },
- "step2": {
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun.",
- "title": "Buat atau Impor Wallet"
- },
- "step3": {
- "description": "Setelah Anda menyetel wallet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",
- "title": "Segarkan browser Anda"
- }
- }
- },
- "one_key": {
- "extension": {
- "step1": {
- "title": "Instal ekstensi OneKey Wallet",
- "description": "Kami menyarankan untuk menempelkan OneKey Wallet ke taskbar Anda untuk akses wallet yang lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Wallet",
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "paraswap": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi ParaSwap",
- "description": "Tambahkan ParaSwap Wallet ke layar utama Anda untuk akses ke wallet Anda lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Buat dompet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Ketuk ikon QR dan scan",
- "description": "Ketuk ikon QR di layar utama Anda, pindai kode dan konfirmasi prompt untuk terhubung."
- }
- }
- },
- "phantom": {
- "extension": {
- "step1": {
- "title": "Instal ekstensi Phantom",
- "description": "Kami menyarankan untuk mem-pin Phantom ke taskbar Anda untuk akses dompet yang lebih mudah."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase pemulihan rahasia Anda kepada siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "rabby": {
- "extension": {
- "step1": {
- "title": "Instal ekstensi Rabby",
- "description": "Kami merekomendasikan menempelkan Rabby ke taskbar Anda untuk akses lebih cepat ke wallet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Wallet",
- "description": "Pastikan untuk mencadangkan wallet Anda dengan metode yang aman. Jangan pernah berbagi frase rahasia Anda dengan siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan wallet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "ronin": {
- "qr_code": {
- "step1": {
- "description": "Kami merekomendasikan untuk meletakkan Ronin Wallet di layar utama Anda untuk akses yang lebih cepat.",
- "title": "Buka aplikasi Ronin Wallet"
- },
- "step2": {
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menghubungkan dompet Anda.",
- "title": "Tekan tombol scan"
- }
- },
- "extension": {
- "step1": {
- "description": "Kami merekomendasikan untuk memasang Ronin Wallet di taskbar Anda untuk akses yang lebih cepat ke wallet Anda.",
- "title": "Pasang ekstensi Ronin Wallet"
- },
- "step2": {
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",
- "title": "Segarkan browser Anda"
- }
- }
- },
- "ramper": {
- "extension": {
- "step1": {
- "title": "Pasang ekstensi Ramper",
- "description": "Kami merekomendasikan untuk memasang Ramper di taskbar Anda untuk akses yang lebih mudah ke wallet Anda."
- },
- "step2": {
- "title": "Buat Dompet",
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "safeheron": {
- "extension": {
- "step1": {
- "title": "Instal ekstensi Core",
- "description": "Kami merekomendasikan menempelkan Safeheron ke taskbar Anda untuk akses lebih cepat ke wallet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Wallet",
- "description": "Pastikan untuk mencadangkan dompet Anda dengan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda mengatur dompet Anda, klik di bawah untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "taho": {
- "extension": {
- "step1": {
- "title": "Instal ekstensi Taho",
- "description": "Kami merekomendasikan pengepinan Taho ke taskbar Anda untuk akses yang lebih cepat ke dompet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Pastikan untuk mencadangkan dompet Anda dengan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "wigwam": {
- "extension": {
- "step1": {
- "title": "Instal ekstensi Wigwam",
- "description": "Kami menyarankan untuk memasang Wigwam ke taskbar Anda untuk akses dompet yang lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "talisman": {
- "extension": {
- "step1": {
- "title": "Instal ekstensi Talisman",
- "description": "Kami merekomendasikan menempelkan Talisman ke taskbar Anda untuk akses dompet Anda lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Dompet Ethereum",
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah berbagi frase pemulihan Anda dengan siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "xdefi": {
- "extension": {
- "step1": {
- "title": "Instal ekstensi Dompet XDEFI",
- "description": "Kami merekomendasikan menempelkan XDEFI Wallet ke taskbar Anda untuk akses lebih cepat ke dompet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Pastikan untuk mencadangkan dompet Anda dengan metode yang aman. Jangan pernah berbagi frase rahasia Anda dengan siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "zeal": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi Zeal",
- "description": "Tambahkan Zeal Wallet ke layar utama Anda untuk akses yang lebih cepat ke wallet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Buat dompet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Ketuk ikon QR dan scan",
- "description": "Ketuk ikon QR di layar utama Anda, pindai kode dan konfirmasi prompt untuk terhubung."
- }
- },
- "extension": {
- "step1": {
- "title": "Instal ekstensi Zeal",
- "description": "Kami merekomendasikan untuk mem-pin Zeal ke taskbar Anda untuk akses wallet lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "safepal": {
- "extension": {
- "step1": {
- "title": "Pasang ekstensi SafePal Wallet",
- "description": "Klik di pojok kanan atas browser Anda dan pin SafePal Wallet untuk akses mudah."
- },
- "step2": {
- "title": "Buat atau Impor sebuah dompet",
- "description": "Buat dompet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan SafePal Wallet, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- },
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi SafePal Wallet",
- "description": "Letakkan SafePal Wallet di layar utama Anda untuk akses yang lebih cepat ke wallet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Buat dompet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Ketuk WalletConnect di Pengaturan",
- "description": "Pilih Koneksi Baru, lalu pindai kode QR dan konfirmasi petunjuk untuk terhubung."
- }
- }
- },
- "desig": {
- "extension": {
- "step1": {
- "title": "Instal ekstensi Desig",
- "description": "Kami merekomendasikan menempelkan Desig ke taskbar Anda untuk akses dompet Anda lebih mudah."
- },
- "step2": {
- "title": "Buat Dompet",
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "subwallet": {
- "extension": {
- "step1": {
- "title": "Instal ekstensi SubWallet",
- "description": "Kami merekomendasikan menempelkan SubWallet ke taskbar Anda untuk akses dompet Anda lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah berbagi frase pemulihan Anda dengan siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- },
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi SubWallet",
- "description": "Kami merekomendasikan menaruh SubWallet di layar utama Anda untuk akses lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."
- },
- "step3": {
- "title": "Tekan tombol scan",
- "description": "Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menghubungkan dompet Anda."
- }
- }
- },
- "clv": {
- "extension": {
- "step1": {
- "title": "Instal ekstensi CLV Wallet",
- "description": "Kami merekomendasikan menempelkan CLV Wallet ke taskbar Anda untuk akses dompet Anda lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- },
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi CLV Wallet",
- "description": "Kami sarankan untuk menempatkan CLV Wallet di layar utama Anda untuk akses yang lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."
- },
- "step3": {
- "title": "Tekan tombol scan",
- "description": "Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menghubungkan dompet Anda."
- }
- }
- },
- "okto": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi Okto",
- "description": "Tambahkan Okto ke layar utama Anda untuk akses cepat"
- },
- "step2": {
- "title": "Buat Wallet MPC",
- "description": "Buat akun dan generate wallet"
- },
- "step3": {
- "title": "Ketuk WalletConnect di Pengaturan",
- "description": "Ketuk ikon Scan QR di pojok kanan atas dan konfirmasi prompt untuk terhubung."
- }
- }
- },
- "ledger": {
- "desktop": {
- "step1": {
- "title": "Buka aplikasi Ledger Live",
- "description": "Kami merekomendasikan menempatkan Ledger Live di layar utama Anda untuk akses lebih cepat."
- },
- "step2": {
- "title": "Atur Ledger Anda",
- "description": "Atur Ledger baru atau hubungkan ke Ledger yang sudah ada."
- },
- "step3": {
- "title": "Hubungkan",
- "description": "Setelah Anda scan, muncul prompt koneksi untuk Anda menghubungkan dompet Anda."
- }
- },
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi Ledger Live",
- "description": "Kami merekomendasikan menempatkan Ledger Live di layar utama Anda untuk akses lebih cepat."
- },
- "step2": {
- "title": "Atur Ledger Anda",
- "description": "Anda dapat melakukan sinkronisasi dengan aplikasi desktop atau menghubungkan Ledger Anda."
- },
- "step3": {
- "title": "Pindai kode",
- "description": "Ketuk WalletConnect lalu Beralih ke Scanner. Setelah Anda scan, muncul prompt koneksi untuk Anda menghubungkan dompet Anda."
- }
- }
- },
- "valora": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi Valora",
- "description": "Kami merekomendasikan untuk meletakkan Valora di layar utama Anda untuk akses lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor dompet",
- "description": "Buat dompet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Tekan tombol scan",
- "description": "Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menghubungkan dompet Anda."
- }
- }
- },
- "gate": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi Gate",
- "description": "Kami merekomendasikan untuk meletakkan Gate di layar utama Anda untuk akses lebih cepat."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Buat dompet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Tekan tombol scan",
- "description": "Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menghubungkan dompet Anda."
- }
- },
- "extension": {
- "step1": {
- "title": "Instal ekstensi Gate",
- "description": "Kami menyarankan untuk mem-pin Gate ke taskbar Anda untuk akses dompet yang lebih mudah."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase pemulihan rahasia Anda kepada siapa pun."
- },
- "step3": {
- "title": "Segarkan browser Anda",
- "description": "Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."
- }
- }
- },
- "xportal": {
- "qr_code": {
- "step1": {
- "description": "Letakkan xPortal di layar utama Anda untuk akses lebih cepat ke dompet Anda.",
- "title": "Buka aplikasi xPortal"
- },
- "step2": {
- "description": "Buat dompet baru atau impor yang sudah ada.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menghubungkan dompet Anda.",
- "title": "Tekan tombol Scan QR"
- }
- }
- },
- "mew": {
- "qr_code": {
- "step1": {
- "description": "Kami sarankan untuk menempatkan MEW Wallet di layar utama Anda untuk akses yang lebih cepat.",
- "title": "Buka aplikasi MEW Wallet"
- },
- "step2": {
- "description": "Anda dapat dengan mudah mencadangkan dompet Anda menggunakan fitur cadangan awan.",
- "title": "Buat atau Impor Dompet"
- },
- "step3": {
- "description": "Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menghubungkan dompet Anda.",
- "title": "Tekan tombol scan"
- }
- }
- }
- },
- "zilpay": {
- "qr_code": {
- "step1": {
- "title": "Buka aplikasi ZilPay",
- "description": "Tambahkan ZilPay ke layar utama Anda untuk akses yang lebih cepat ke dompet Anda."
- },
- "step2": {
- "title": "Buat atau Impor Dompet",
- "description": "Buat dompet baru atau impor yang sudah ada."
- },
- "step3": {
- "title": "Tekan tombol scan",
- "description": "Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menghubungkan dompet Anda."
- }
- }
- }
-}
-`;export{n as default};
diff --git a/client2/build/assets/image-Bi_3R81v.js b/client2/build/assets/image-Bi_3R81v.js
deleted file mode 100644
index 5b4f33cb7..000000000
--- a/client2/build/assets/image-Bi_3R81v.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import{b as C}from"./core-Cywc921C.js";import"./index-B6P9GsMd.js";import"./index.es-MB-v37Rm.js";import"./events-DQ172AOg.js";import"./index-nibyPLVP.js";const t=C``;export{t as imageSvg};
diff --git a/client2/build/assets/index-B6P9GsMd.js b/client2/build/assets/index-B6P9GsMd.js
deleted file mode 100644
index 177e20b2d..000000000
--- a/client2/build/assets/index-B6P9GsMd.js
+++ /dev/null
@@ -1,2035 +0,0 @@
-const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-Dhl4lD2b.js","assets/index-nibyPLVP.js","assets/index-DNwHMjm8.js","assets/index-My90LZL7.js","assets/index-xRRZdoqR.js","assets/events-DQ172AOg.js","assets/index.es-MB-v37Rm.js"])))=>i.map(i=>d[i]);
-function NA(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const l of a.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(i){if(i.ep)return;i.ep=!0;const a=n(i);fetch(i.href,a)}})();var tV=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Em(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function nV(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}),n}var tp={exports:{}},Vs={},np={exports:{}},Qe={};/**
- * @license React
- * react.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */var eb;function RA(){if(eb)return Qe;eb=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),a=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),g=Symbol.iterator;function p(T){return T===null||typeof T!="object"?null:(T=g&&T[g]||T["@@iterator"],typeof T=="function"?T:null)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},x=Object.assign,v={};function w(T,H,ie){this.props=T,this.context=H,this.refs=v,this.updater=ie||y}w.prototype.isReactComponent={},w.prototype.setState=function(T,H){if(typeof T!="object"&&typeof T!="function"&&T!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,T,H,"setState")},w.prototype.forceUpdate=function(T){this.updater.enqueueForceUpdate(this,T,"forceUpdate")};function I(){}I.prototype=w.prototype;function P(T,H,ie){this.props=T,this.context=H,this.refs=v,this.updater=ie||y}var j=P.prototype=new I;j.constructor=P,x(j,w.prototype),j.isPureReactComponent=!0;var S=Array.isArray,_=Object.prototype.hasOwnProperty,R={current:null},N={key:!0,ref:!0,__self:!0,__source:!0};function O(T,H,ie){var X,se={},fe=null,oe=null;if(H!=null)for(X in H.ref!==void 0&&(oe=H.ref),H.key!==void 0&&(fe=""+H.key),H)_.call(H,X)&&!N.hasOwnProperty(X)&&(se[X]=H[X]);var be=arguments.length-2;if(be===1)se.children=ie;else if(1>>1,H=L[T];if(0>>1;Ti(se,M))fei(oe,se)?(L[T]=oe,L[fe]=M,T=fe):(L[T]=se,L[X]=M,T=X);else if(fei(oe,M))L[T]=oe,L[fe]=M,T=fe;else break e}}return ne}function i(L,ne){var M=L.sortIndex-ne.sortIndex;return M!==0?M:L.id-ne.id}if(typeof performance=="object"&&typeof performance.now=="function"){var a=performance;e.unstable_now=function(){return a.now()}}else{var l=Date,c=l.now();e.unstable_now=function(){return l.now()-c}}var d=[],f=[],h=1,g=null,p=3,y=!1,x=!1,v=!1,w=typeof setTimeout=="function"?setTimeout:null,I=typeof clearTimeout=="function"?clearTimeout:null,P=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function j(L){for(var ne=n(f);ne!==null;){if(ne.callback===null)r(f);else if(ne.startTime<=L)r(f),ne.sortIndex=ne.expirationTime,t(d,ne);else break;ne=n(f)}}function S(L){if(v=!1,j(L),!x)if(n(d)!==null)x=!0,Z(_);else{var ne=n(f);ne!==null&&ae(S,ne.startTime-L)}}function _(L,ne){x=!1,v&&(v=!1,I(O),O=-1),y=!0;var M=p;try{for(j(ne),g=n(d);g!==null&&(!(g.expirationTime>ne)||L&&!Y());){var T=g.callback;if(typeof T=="function"){g.callback=null,p=g.priorityLevel;var H=T(g.expirationTime<=ne);ne=e.unstable_now(),typeof H=="function"?g.callback=H:g===n(d)&&r(d),j(ne)}else r(d);g=n(d)}if(g!==null)var ie=!0;else{var X=n(f);X!==null&&ae(S,X.startTime-ne),ie=!1}return ie}finally{g=null,p=M,y=!1}}var R=!1,N=null,O=-1,U=5,$=-1;function Y(){return!(e.unstable_now()-$L||125T?(L.sortIndex=M,t(f,L),n(d)===null&&L===n(f)&&(v?(I(O),O=-1):v=!0,ae(S,M-T))):(L.sortIndex=H,t(d,L),x||y||(x=!0,Z(_))),L},e.unstable_shouldYield=Y,e.unstable_wrapCallback=function(L){var ne=p;return function(){var M=p;p=ne;try{return L.apply(this,arguments)}finally{p=M}}}})(ip)),ip}var ib;function DA(){return ib||(ib=1,op.exports=LA()),op.exports}/**
- * @license React
- * react-dom.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */var ab;function FA(){if(ab)return Cn;ab=1;var e=Vl(),t=DA();function n(o){for(var s="https://reactjs.org/docs/error-decoder.html?invariant="+o,u=1;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),d=Object.prototype.hasOwnProperty,f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,h={},g={};function p(o){return d.call(g,o)?!0:d.call(h,o)?!1:f.test(o)?g[o]=!0:(h[o]=!0,!1)}function y(o,s,u,m){if(u!==null&&u.type===0)return!1;switch(typeof s){case"function":case"symbol":return!0;case"boolean":return m?!1:u!==null?!u.acceptsBooleans:(o=o.toLowerCase().slice(0,5),o!=="data-"&&o!=="aria-");default:return!1}}function x(o,s,u,m){if(s===null||typeof s>"u"||y(o,s,u,m))return!0;if(m)return!1;if(u!==null)switch(u.type){case 3:return!s;case 4:return s===!1;case 5:return isNaN(s);case 6:return isNaN(s)||1>s}return!1}function v(o,s,u,m,b,C,B){this.acceptsBooleans=s===2||s===3||s===4,this.attributeName=m,this.attributeNamespace=b,this.mustUseProperty=u,this.propertyName=o,this.type=s,this.sanitizeURL=C,this.removeEmptyString=B}var w={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(o){w[o]=new v(o,0,!1,o,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(o){var s=o[0];w[s]=new v(s,1,!1,o[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(o){w[o]=new v(o,2,!1,o.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(o){w[o]=new v(o,2,!1,o,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(o){w[o]=new v(o,3,!1,o.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(o){w[o]=new v(o,3,!0,o,null,!1,!1)}),["capture","download"].forEach(function(o){w[o]=new v(o,4,!1,o,null,!1,!1)}),["cols","rows","size","span"].forEach(function(o){w[o]=new v(o,6,!1,o,null,!1,!1)}),["rowSpan","start"].forEach(function(o){w[o]=new v(o,5,!1,o.toLowerCase(),null,!1,!1)});var I=/[\-:]([a-z])/g;function P(o){return o[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(o){var s=o.replace(I,P);w[s]=new v(s,1,!1,o,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(o){var s=o.replace(I,P);w[s]=new v(s,1,!1,o,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(o){var s=o.replace(I,P);w[s]=new v(s,1,!1,o,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(o){w[o]=new v(o,1,!1,o.toLowerCase(),null,!1,!1)}),w.xlinkHref=new v("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(o){w[o]=new v(o,1,!1,o.toLowerCase(),null,!0,!0)});function j(o,s,u,m){var b=w.hasOwnProperty(s)?w[s]:null;(b!==null?b.type!==0:m||!(2D||b[B]!==C[D]){var W=`
-`+b[B].replace(" at new "," at ");return o.displayName&&W.includes("")&&(W=W.replace("",o.displayName)),W}while(1<=B&&0<=D);break}}}finally{ie=!1,Error.prepareStackTrace=u}return(o=o?o.displayName||o.name:"")?H(o):""}function se(o){switch(o.tag){case 5:return H(o.type);case 16:return H("Lazy");case 13:return H("Suspense");case 19:return H("SuspenseList");case 0:case 2:case 15:return o=X(o.type,!1),o;case 11:return o=X(o.type.render,!1),o;case 1:return o=X(o.type,!0),o;default:return""}}function fe(o){if(o==null)return null;if(typeof o=="function")return o.displayName||o.name||null;if(typeof o=="string")return o;switch(o){case N:return"Fragment";case R:return"Portal";case U:return"Profiler";case O:return"StrictMode";case q:return"Suspense";case ce:return"SuspenseList"}if(typeof o=="object")switch(o.$$typeof){case Y:return(o.displayName||"Context")+".Consumer";case $:return(o._context.displayName||"Context")+".Provider";case G:var s=o.render;return o=o.displayName,o||(o=s.displayName||s.name||"",o=o!==""?"ForwardRef("+o+")":"ForwardRef"),o;case te:return s=o.displayName||null,s!==null?s:fe(o.type)||"Memo";case Z:s=o._payload,o=o._init;try{return fe(o(s))}catch{}}return null}function oe(o){var s=o.type;switch(o.tag){case 24:return"Cache";case 9:return(s.displayName||"Context")+".Consumer";case 10:return(s._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return o=s.render,o=o.displayName||o.name||"",s.displayName||(o!==""?"ForwardRef("+o+")":"ForwardRef");case 7:return"Fragment";case 5:return s;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return fe(s);case 8:return s===O?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof s=="function")return s.displayName||s.name||null;if(typeof s=="string")return s}return null}function be(o){switch(typeof o){case"boolean":case"number":case"string":case"undefined":return o;case"object":return o;default:return""}}function xe(o){var s=o.type;return(o=o.nodeName)&&o.toLowerCase()==="input"&&(s==="checkbox"||s==="radio")}function Ne(o){var s=xe(o)?"checked":"value",u=Object.getOwnPropertyDescriptor(o.constructor.prototype,s),m=""+o[s];if(!o.hasOwnProperty(s)&&typeof u<"u"&&typeof u.get=="function"&&typeof u.set=="function"){var b=u.get,C=u.set;return Object.defineProperty(o,s,{configurable:!0,get:function(){return b.call(this)},set:function(B){m=""+B,C.call(this,B)}}),Object.defineProperty(o,s,{enumerable:u.enumerable}),{getValue:function(){return m},setValue:function(B){m=""+B},stopTracking:function(){o._valueTracker=null,delete o[s]}}}}function $e(o){o._valueTracker||(o._valueTracker=Ne(o))}function Ve(o){if(!o)return!1;var s=o._valueTracker;if(!s)return!0;var u=s.getValue(),m="";return o&&(m=xe(o)?o.checked?"true":"false":o.value),o=m,o!==u?(s.setValue(o),!0):!1}function Ye(o){if(o=o||(typeof document<"u"?document:void 0),typeof o>"u")return null;try{return o.activeElement||o.body}catch{return o.body}}function ze(o,s){var u=s.checked;return M({},s,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:u??o._wrapperState.initialChecked})}function rt(o,s){var u=s.defaultValue==null?"":s.defaultValue,m=s.checked!=null?s.checked:s.defaultChecked;u=be(s.value!=null?s.value:u),o._wrapperState={initialChecked:m,initialValue:u,controlled:s.type==="checkbox"||s.type==="radio"?s.checked!=null:s.value!=null}}function gt(o,s){s=s.checked,s!=null&&j(o,"checked",s,!1)}function _t(o,s){gt(o,s);var u=be(s.value),m=s.type;if(u!=null)m==="number"?(u===0&&o.value===""||o.value!=u)&&(o.value=""+u):o.value!==""+u&&(o.value=""+u);else if(m==="submit"||m==="reset"){o.removeAttribute("value");return}s.hasOwnProperty("value")?$t(o,s.type,u):s.hasOwnProperty("defaultValue")&&$t(o,s.type,be(s.defaultValue)),s.checked==null&&s.defaultChecked!=null&&(o.defaultChecked=!!s.defaultChecked)}function Mt(o,s,u){if(s.hasOwnProperty("value")||s.hasOwnProperty("defaultValue")){var m=s.type;if(!(m!=="submit"&&m!=="reset"||s.value!==void 0&&s.value!==null))return;s=""+o._wrapperState.initialValue,u||s===o.value||(o.value=s),o.defaultValue=s}u=o.name,u!==""&&(o.name=""),o.defaultChecked=!!o._wrapperState.initialChecked,u!==""&&(o.name=u)}function $t(o,s,u){(s!=="number"||Ye(o.ownerDocument)!==o)&&(u==null?o.defaultValue=""+o._wrapperState.initialValue:o.defaultValue!==""+u&&(o.defaultValue=""+u))}var z=Array.isArray;function K(o,s,u,m){if(o=o.options,s){s={};for(var b=0;b"+s.valueOf().toString()+"",s=We.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;s.firstChild;)o.appendChild(s.firstChild)}});function Ot(o,s){if(s){var u=o.firstChild;if(u&&u===o.lastChild&&u.nodeType===3){u.nodeValue=s;return}}o.textContent=s}var Me={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ge=["Webkit","ms","Moz","O"];Object.keys(Me).forEach(function(o){Ge.forEach(function(s){s=s+o.charAt(0).toUpperCase()+o.substring(1),Me[s]=Me[o]})});function Fe(o,s,u){return s==null||typeof s=="boolean"||s===""?"":u||typeof s!="number"||s===0||Me.hasOwnProperty(o)&&Me[o]?(""+s).trim():s+"px"}function et(o,s){o=o.style;for(var u in s)if(s.hasOwnProperty(u)){var m=u.indexOf("--")===0,b=Fe(u,s[u],m);u==="float"&&(u="cssFloat"),m?o.setProperty(u,b):o[u]=b}}var Tn=M({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Vt(o,s){if(s){if(Tn[o]&&(s.children!=null||s.dangerouslySetInnerHTML!=null))throw Error(n(137,o));if(s.dangerouslySetInnerHTML!=null){if(s.children!=null)throw Error(n(60));if(typeof s.dangerouslySetInnerHTML!="object"||!("__html"in s.dangerouslySetInnerHTML))throw Error(n(61))}if(s.style!=null&&typeof s.style!="object")throw Error(n(62))}}function Ke(o,s){if(o.indexOf("-")===-1)return typeof s.is=="string";switch(o){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Oe=null;function gn(o){return o=o.target||o.srcElement||window,o.correspondingUseElement&&(o=o.correspondingUseElement),o.nodeType===3?o.parentNode:o}var Zo=null,Ur=null,Qi=null;function yy(o){if(o=Ps(o)){if(typeof Zo!="function")throw Error(n(280));var s=o.stateNode;s&&(s=Dc(s),Zo(o.stateNode,o.type,s))}}function vy(o){Ur?Qi?Qi.push(o):Qi=[o]:Ur=o}function by(){if(Ur){var o=Ur,s=Qi;if(Qi=Ur=null,yy(o),s)for(o=0;o>>=0,o===0?32:31-(K8(o)/Y8|0)|0}var wc=64,xc=4194304;function ds(o){switch(o&-o){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return o&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return o&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return o}}function Cc(o,s){var u=o.pendingLanes;if(u===0)return 0;var m=0,b=o.suspendedLanes,C=o.pingedLanes,B=u&268435455;if(B!==0){var D=B&~b;D!==0?m=ds(D):(C&=B,C!==0&&(m=ds(C)))}else B=u&~b,B!==0?m=ds(B):C!==0&&(m=ds(C));if(m===0)return 0;if(s!==0&&s!==m&&(s&b)===0&&(b=m&-m,C=s&-s,b>=C||b===16&&(C&4194240)!==0))return s;if((m&4)!==0&&(m|=u&16),s=o.entangledLanes,s!==0)for(o=o.entanglements,s&=m;0u;u++)s.push(o);return s}function fs(o,s,u){o.pendingLanes|=s,s!==536870912&&(o.suspendedLanes=0,o.pingedLanes=0),o=o.eventTimes,s=31-ir(s),o[s]=u}function ek(o,s){var u=o.pendingLanes&~s;o.pendingLanes=s,o.suspendedLanes=0,o.pingedLanes=0,o.expiredLanes&=s,o.mutableReadLanes&=s,o.entangledLanes&=s,s=o.entanglements;var m=o.eventTimes;for(o=o.expirationTimes;0=ws),Qy=" ",Gy=!1;function Ky(o,s){switch(o){case"keyup":return Ik.indexOf(s.keyCode)!==-1;case"keydown":return s.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Yy(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var Yi=!1;function _k(o,s){switch(o){case"compositionend":return Yy(s);case"keypress":return s.which!==32?null:(Gy=!0,Qy);case"textInput":return o=s.data,o===Qy&&Gy?null:o;default:return null}}function Tk(o,s){if(Yi)return o==="compositionend"||!Mf&&Ky(o,s)?(o=Uy(),jc=Pf=wo=null,Yi=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(s.ctrlKey||s.altKey||s.metaKey)||s.ctrlKey&&s.altKey){if(s.char&&1=s)return{node:u,offset:s-o};o=m}e:{for(;u;){if(u.nextSibling){u=u.nextSibling;break e}u=u.parentNode}u=void 0}u=r1(u)}}function i1(o,s){return o&&s?o===s?!0:o&&o.nodeType===3?!1:s&&s.nodeType===3?i1(o,s.parentNode):"contains"in o?o.contains(s):o.compareDocumentPosition?!!(o.compareDocumentPosition(s)&16):!1:!1}function a1(){for(var o=window,s=Ye();s instanceof o.HTMLIFrameElement;){try{var u=typeof s.contentWindow.location.href=="string"}catch{u=!1}if(u)o=s.contentWindow;else break;s=Ye(o.document)}return s}function Df(o){var s=o&&o.nodeName&&o.nodeName.toLowerCase();return s&&(s==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||s==="textarea"||o.contentEditable==="true")}function zk(o){var s=a1(),u=o.focusedElem,m=o.selectionRange;if(s!==u&&u&&u.ownerDocument&&i1(u.ownerDocument.documentElement,u)){if(m!==null&&Df(u)){if(s=m.start,o=m.end,o===void 0&&(o=s),"selectionStart"in u)u.selectionStart=s,u.selectionEnd=Math.min(o,u.value.length);else if(o=(s=u.ownerDocument||document)&&s.defaultView||window,o.getSelection){o=o.getSelection();var b=u.textContent.length,C=Math.min(m.start,b);m=m.end===void 0?C:Math.min(m.end,b),!o.extend&&C>m&&(b=m,m=C,C=b),b=o1(u,C);var B=o1(u,m);b&&B&&(o.rangeCount!==1||o.anchorNode!==b.node||o.anchorOffset!==b.offset||o.focusNode!==B.node||o.focusOffset!==B.offset)&&(s=s.createRange(),s.setStart(b.node,b.offset),o.removeAllRanges(),C>m?(o.addRange(s),o.extend(B.node,B.offset)):(s.setEnd(B.node,B.offset),o.addRange(s)))}}for(s=[],o=u;o=o.parentNode;)o.nodeType===1&&s.push({element:o,left:o.scrollLeft,top:o.scrollTop});for(typeof u.focus=="function"&&u.focus(),u=0;u=document.documentMode,Ji=null,Ff=null,ks=null,zf=!1;function s1(o,s,u){var m=u.window===u?u.document:u.nodeType===9?u:u.ownerDocument;zf||Ji==null||Ji!==Ye(m)||(m=Ji,"selectionStart"in m&&Df(m)?m={start:m.selectionStart,end:m.selectionEnd}:(m=(m.ownerDocument&&m.ownerDocument.defaultView||window).getSelection(),m={anchorNode:m.anchorNode,anchorOffset:m.anchorOffset,focusNode:m.focusNode,focusOffset:m.focusOffset}),ks&&Es(ks,m)||(ks=m,m=Mc(Ff,"onSelect"),0na||(o.current=Zf[na],Zf[na]=null,na--)}function at(o,s){na++,Zf[na]=o.current,o.current=s}var ko={},Jt=Eo(ko),yn=Eo(!1),ti=ko;function ra(o,s){var u=o.type.contextTypes;if(!u)return ko;var m=o.stateNode;if(m&&m.__reactInternalMemoizedUnmaskedChildContext===s)return m.__reactInternalMemoizedMaskedChildContext;var b={},C;for(C in u)b[C]=s[C];return m&&(o=o.stateNode,o.__reactInternalMemoizedUnmaskedChildContext=s,o.__reactInternalMemoizedMaskedChildContext=b),b}function vn(o){return o=o.childContextTypes,o!=null}function Fc(){ct(yn),ct(Jt)}function C1(o,s,u){if(Jt.current!==ko)throw Error(n(168));at(Jt,s),at(yn,u)}function E1(o,s,u){var m=o.stateNode;if(s=s.childContextTypes,typeof m.getChildContext!="function")return u;m=m.getChildContext();for(var b in m)if(!(b in s))throw Error(n(108,oe(o)||"Unknown",b));return M({},u,m)}function zc(o){return o=(o=o.stateNode)&&o.__reactInternalMemoizedMergedChildContext||ko,ti=Jt.current,at(Jt,o),at(yn,yn.current),!0}function k1(o,s,u){var m=o.stateNode;if(!m)throw Error(n(169));u?(o=E1(o,s,ti),m.__reactInternalMemoizedMergedChildContext=o,ct(yn),ct(Jt),at(Jt,o)):ct(yn),at(yn,u)}var $r=null,Uc=!1,Xf=!1;function A1(o){$r===null?$r=[o]:$r.push(o)}function Zk(o){Uc=!0,A1(o)}function Ao(){if(!Xf&&$r!==null){Xf=!0;var o=0,s=it;try{var u=$r;for(it=1;o>=B,b-=B,Vr=1<<32-ir(s)+b|u<Ue?(Ft=De,De=null):Ft=De.sibling;var nt=ue(Q,De,J[Ue],ye);if(nt===null){De===null&&(De=Ft);break}o&&De&&nt.alternate===null&&s(Q,De),V=C(nt,V,Ue),Le===null?Be=nt:Le.sibling=nt,Le=nt,De=Ft}if(Ue===J.length)return u(Q,De),ut&&ri(Q,Ue),Be;if(De===null){for(;UeUe?(Ft=De,De=null):Ft=De.sibling;var Ro=ue(Q,De,nt.value,ye);if(Ro===null){De===null&&(De=Ft);break}o&&De&&Ro.alternate===null&&s(Q,De),V=C(Ro,V,Ue),Le===null?Be=Ro:Le.sibling=Ro,Le=Ro,De=Ft}if(nt.done)return u(Q,De),ut&&ri(Q,Ue),Be;if(De===null){for(;!nt.done;Ue++,nt=J.next())nt=he(Q,nt.value,ye),nt!==null&&(V=C(nt,V,Ue),Le===null?Be=nt:Le.sibling=nt,Le=nt);return ut&&ri(Q,Ue),Be}for(De=m(Q,De);!nt.done;Ue++,nt=J.next())nt=Ce(De,Q,Ue,nt.value,ye),nt!==null&&(o&&nt.alternate!==null&&De.delete(nt.key===null?Ue:nt.key),V=C(nt,V,Ue),Le===null?Be=nt:Le.sibling=nt,Le=nt);return o&&De.forEach(function(BA){return s(Q,BA)}),ut&&ri(Q,Ue),Be}function bt(Q,V,J,ye){if(typeof J=="object"&&J!==null&&J.type===N&&J.key===null&&(J=J.props.children),typeof J=="object"&&J!==null){switch(J.$$typeof){case _:e:{for(var Be=J.key,Le=V;Le!==null;){if(Le.key===Be){if(Be=J.type,Be===N){if(Le.tag===7){u(Q,Le.sibling),V=b(Le,J.props.children),V.return=Q,Q=V;break e}}else if(Le.elementType===Be||typeof Be=="object"&&Be!==null&&Be.$$typeof===Z&&T1(Be)===Le.type){u(Q,Le.sibling),V=b(Le,J.props),V.ref=_s(Q,Le,J),V.return=Q,Q=V;break e}u(Q,Le);break}else s(Q,Le);Le=Le.sibling}J.type===N?(V=di(J.props.children,Q.mode,ye,J.key),V.return=Q,Q=V):(ye=mu(J.type,J.key,J.props,null,Q.mode,ye),ye.ref=_s(Q,V,J),ye.return=Q,Q=ye)}return B(Q);case R:e:{for(Le=J.key;V!==null;){if(V.key===Le)if(V.tag===4&&V.stateNode.containerInfo===J.containerInfo&&V.stateNode.implementation===J.implementation){u(Q,V.sibling),V=b(V,J.children||[]),V.return=Q,Q=V;break e}else{u(Q,V);break}else s(Q,V);V=V.sibling}V=Yh(J,Q.mode,ye),V.return=Q,Q=V}return B(Q);case Z:return Le=J._init,bt(Q,V,Le(J._payload),ye)}if(z(J))return Ae(Q,V,J,ye);if(ne(J))return Pe(Q,V,J,ye);Hc(Q,J)}return typeof J=="string"&&J!==""||typeof J=="number"?(J=""+J,V!==null&&V.tag===6?(u(Q,V.sibling),V=b(V,J),V.return=Q,Q=V):(u(Q,V),V=Kh(J,Q.mode,ye),V.return=Q,Q=V),B(Q)):u(Q,V)}return bt}var sa=B1(!0),N1=B1(!1),qc=Eo(null),Qc=null,la=null,ih=null;function ah(){ih=la=Qc=null}function sh(o){var s=qc.current;ct(qc),o._currentValue=s}function lh(o,s,u){for(;o!==null;){var m=o.alternate;if((o.childLanes&s)!==s?(o.childLanes|=s,m!==null&&(m.childLanes|=s)):m!==null&&(m.childLanes&s)!==s&&(m.childLanes|=s),o===u)break;o=o.return}}function ca(o,s){Qc=o,ih=la=null,o=o.dependencies,o!==null&&o.firstContext!==null&&((o.lanes&s)!==0&&(bn=!0),o.firstContext=null)}function Qn(o){var s=o._currentValue;if(ih!==o)if(o={context:o,memoizedValue:s,next:null},la===null){if(Qc===null)throw Error(n(308));la=o,Qc.dependencies={lanes:0,firstContext:o}}else la=la.next=o;return s}var oi=null;function ch(o){oi===null?oi=[o]:oi.push(o)}function R1(o,s,u,m){var b=s.interleaved;return b===null?(u.next=u,ch(s)):(u.next=b.next,b.next=u),s.interleaved=u,qr(o,m)}function qr(o,s){o.lanes|=s;var u=o.alternate;for(u!==null&&(u.lanes|=s),u=o,o=o.return;o!==null;)o.childLanes|=s,u=o.alternate,u!==null&&(u.childLanes|=s),u=o,o=o.return;return u.tag===3?u.stateNode:null}var So=!1;function uh(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function M1(o,s){o=o.updateQueue,s.updateQueue===o&&(s.updateQueue={baseState:o.baseState,firstBaseUpdate:o.firstBaseUpdate,lastBaseUpdate:o.lastBaseUpdate,shared:o.shared,effects:o.effects})}function Qr(o,s){return{eventTime:o,lane:s,tag:0,payload:null,callback:null,next:null}}function jo(o,s,u){var m=o.updateQueue;if(m===null)return null;if(m=m.shared,(tt&2)!==0){var b=m.pending;return b===null?s.next=s:(s.next=b.next,b.next=s),m.pending=s,qr(o,u)}return b=m.interleaved,b===null?(s.next=s,ch(m)):(s.next=b.next,b.next=s),m.interleaved=s,qr(o,u)}function Gc(o,s,u){if(s=s.updateQueue,s!==null&&(s=s.shared,(u&4194240)!==0)){var m=s.lanes;m&=o.pendingLanes,u|=m,s.lanes=u,kf(o,u)}}function O1(o,s){var u=o.updateQueue,m=o.alternate;if(m!==null&&(m=m.updateQueue,u===m)){var b=null,C=null;if(u=u.firstBaseUpdate,u!==null){do{var B={eventTime:u.eventTime,lane:u.lane,tag:u.tag,payload:u.payload,callback:u.callback,next:null};C===null?b=C=B:C=C.next=B,u=u.next}while(u!==null);C===null?b=C=s:C=C.next=s}else b=C=s;u={baseState:m.baseState,firstBaseUpdate:b,lastBaseUpdate:C,shared:m.shared,effects:m.effects},o.updateQueue=u;return}o=u.lastBaseUpdate,o===null?u.firstBaseUpdate=s:o.next=s,u.lastBaseUpdate=s}function Kc(o,s,u,m){var b=o.updateQueue;So=!1;var C=b.firstBaseUpdate,B=b.lastBaseUpdate,D=b.shared.pending;if(D!==null){b.shared.pending=null;var W=D,ee=W.next;W.next=null,B===null?C=ee:B.next=ee,B=W;var de=o.alternate;de!==null&&(de=de.updateQueue,D=de.lastBaseUpdate,D!==B&&(D===null?de.firstBaseUpdate=ee:D.next=ee,de.lastBaseUpdate=W))}if(C!==null){var he=b.baseState;B=0,de=ee=W=null,D=C;do{var ue=D.lane,Ce=D.eventTime;if((m&ue)===ue){de!==null&&(de=de.next={eventTime:Ce,lane:0,tag:D.tag,payload:D.payload,callback:D.callback,next:null});e:{var Ae=o,Pe=D;switch(ue=s,Ce=u,Pe.tag){case 1:if(Ae=Pe.payload,typeof Ae=="function"){he=Ae.call(Ce,he,ue);break e}he=Ae;break e;case 3:Ae.flags=Ae.flags&-65537|128;case 0:if(Ae=Pe.payload,ue=typeof Ae=="function"?Ae.call(Ce,he,ue):Ae,ue==null)break e;he=M({},he,ue);break e;case 2:So=!0}}D.callback!==null&&D.lane!==0&&(o.flags|=64,ue=b.effects,ue===null?b.effects=[D]:ue.push(D))}else Ce={eventTime:Ce,lane:ue,tag:D.tag,payload:D.payload,callback:D.callback,next:null},de===null?(ee=de=Ce,W=he):de=de.next=Ce,B|=ue;if(D=D.next,D===null){if(D=b.shared.pending,D===null)break;ue=D,D=ue.next,ue.next=null,b.lastBaseUpdate=ue,b.shared.pending=null}}while(!0);if(de===null&&(W=he),b.baseState=W,b.firstBaseUpdate=ee,b.lastBaseUpdate=de,s=b.shared.interleaved,s!==null){b=s;do B|=b.lane,b=b.next;while(b!==s)}else C===null&&(b.shared.lanes=0);si|=B,o.lanes=B,o.memoizedState=he}}function L1(o,s,u){if(o=s.effects,s.effects=null,o!==null)for(s=0;su?u:4,o(!0);var m=mh.transition;mh.transition={};try{o(!1),s()}finally{it=u,mh.transition=m}}function nv(){return Gn().memoizedState}function nA(o,s,u){var m=To(o);if(u={lane:m,action:u,hasEagerState:!1,eagerState:null,next:null},rv(o))ov(s,u);else if(u=R1(o,s,u,m),u!==null){var b=ln();dr(u,o,m,b),iv(u,s,m)}}function rA(o,s,u){var m=To(o),b={lane:m,action:u,hasEagerState:!1,eagerState:null,next:null};if(rv(o))ov(s,b);else{var C=o.alternate;if(o.lanes===0&&(C===null||C.lanes===0)&&(C=s.lastRenderedReducer,C!==null))try{var B=s.lastRenderedState,D=C(B,u);if(b.hasEagerState=!0,b.eagerState=D,ar(D,B)){var W=s.interleaved;W===null?(b.next=b,ch(s)):(b.next=W.next,W.next=b),s.interleaved=b;return}}catch{}finally{}u=R1(o,s,b,m),u!==null&&(b=ln(),dr(u,o,m,b),iv(u,s,m))}}function rv(o){var s=o.alternate;return o===pt||s!==null&&s===pt}function ov(o,s){Rs=Zc=!0;var u=o.pending;u===null?s.next=s:(s.next=u.next,u.next=s),o.pending=s}function iv(o,s,u){if((u&4194240)!==0){var m=s.lanes;m&=o.pendingLanes,u|=m,s.lanes=u,kf(o,u)}}var tu={readContext:Qn,useCallback:Zt,useContext:Zt,useEffect:Zt,useImperativeHandle:Zt,useInsertionEffect:Zt,useLayoutEffect:Zt,useMemo:Zt,useReducer:Zt,useRef:Zt,useState:Zt,useDebugValue:Zt,useDeferredValue:Zt,useTransition:Zt,useMutableSource:Zt,useSyncExternalStore:Zt,useId:Zt,unstable_isNewReconciler:!1},oA={readContext:Qn,useCallback:function(o,s){return jr().memoizedState=[o,s===void 0?null:s],o},useContext:Qn,useEffect:G1,useImperativeHandle:function(o,s,u){return u=u!=null?u.concat([o]):null,Xc(4194308,4,J1.bind(null,s,o),u)},useLayoutEffect:function(o,s){return Xc(4194308,4,o,s)},useInsertionEffect:function(o,s){return Xc(4,2,o,s)},useMemo:function(o,s){var u=jr();return s=s===void 0?null:s,o=o(),u.memoizedState=[o,s],o},useReducer:function(o,s,u){var m=jr();return s=u!==void 0?u(s):s,m.memoizedState=m.baseState=s,o={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:s},m.queue=o,o=o.dispatch=nA.bind(null,pt,o),[m.memoizedState,o]},useRef:function(o){var s=jr();return o={current:o},s.memoizedState=o},useState:q1,useDebugValue:Ch,useDeferredValue:function(o){return jr().memoizedState=o},useTransition:function(){var o=q1(!1),s=o[0];return o=tA.bind(null,o[1]),jr().memoizedState=o,[s,o]},useMutableSource:function(){},useSyncExternalStore:function(o,s,u){var m=pt,b=jr();if(ut){if(u===void 0)throw Error(n(407));u=u()}else{if(u=s(),Dt===null)throw Error(n(349));(ai&30)!==0||U1(m,s,u)}b.memoizedState=u;var C={value:u,getSnapshot:s};return b.queue=C,G1($1.bind(null,m,C,o),[o]),m.flags|=2048,Ls(9,W1.bind(null,m,C,u,s),void 0,null),u},useId:function(){var o=jr(),s=Dt.identifierPrefix;if(ut){var u=Hr,m=Vr;u=(m&~(1<<32-ir(m)-1)).toString(32)+u,s=":"+s+"R"+u,u=Ms++,0<\/script>",o=o.removeChild(o.firstChild)):typeof m.is=="string"?o=B.createElement(u,{is:m.is}):(o=B.createElement(u),u==="select"&&(B=o,m.multiple?B.multiple=!0:m.size&&(B.size=m.size))):o=B.createElementNS(o,u),o[Ar]=s,o[Is]=m,Av(o,s,!1,!1),s.stateNode=o;e:{switch(B=Ke(u,m),u){case"dialog":lt("cancel",o),lt("close",o),b=m;break;case"iframe":case"object":case"embed":lt("load",o),b=m;break;case"video":case"audio":for(b=0;bpa&&(s.flags|=128,m=!0,Ds(C,!1),s.lanes=4194304)}else{if(!m)if(o=Yc(B),o!==null){if(s.flags|=128,m=!0,u=o.updateQueue,u!==null&&(s.updateQueue=u,s.flags|=4),Ds(C,!0),C.tail===null&&C.tailMode==="hidden"&&!B.alternate&&!ut)return Xt(s),null}else 2*vt()-C.renderingStartTime>pa&&u!==1073741824&&(s.flags|=128,m=!0,Ds(C,!1),s.lanes=4194304);C.isBackwards?(B.sibling=s.child,s.child=B):(u=C.last,u!==null?u.sibling=B:s.child=B,C.last=B)}return C.tail!==null?(s=C.tail,C.rendering=s,C.tail=s.sibling,C.renderingStartTime=vt(),s.sibling=null,u=ht.current,at(ht,m?u&1|2:u&1),s):(Xt(s),null);case 22:case 23:return qh(),m=s.memoizedState!==null,o!==null&&o.memoizedState!==null!==m&&(s.flags|=8192),m&&(s.mode&1)!==0?(Mn&1073741824)!==0&&(Xt(s),s.subtreeFlags&6&&(s.flags|=8192)):Xt(s),null;case 24:return null;case 25:return null}throw Error(n(156,s.tag))}function fA(o,s){switch(th(s),s.tag){case 1:return vn(s.type)&&Fc(),o=s.flags,o&65536?(s.flags=o&-65537|128,s):null;case 3:return ua(),ct(yn),ct(Jt),ph(),o=s.flags,(o&65536)!==0&&(o&128)===0?(s.flags=o&-65537|128,s):null;case 5:return fh(s),null;case 13:if(ct(ht),o=s.memoizedState,o!==null&&o.dehydrated!==null){if(s.alternate===null)throw Error(n(340));aa()}return o=s.flags,o&65536?(s.flags=o&-65537|128,s):null;case 19:return ct(ht),null;case 4:return ua(),null;case 10:return sh(s.type._context),null;case 22:case 23:return qh(),null;case 24:return null;default:return null}}var iu=!1,en=!1,hA=typeof WeakSet=="function"?WeakSet:Set,ke=null;function fa(o,s){var u=o.ref;if(u!==null)if(typeof u=="function")try{u(null)}catch(m){yt(o,s,m)}else u.current=null}function Rh(o,s,u){try{u()}catch(m){yt(o,s,m)}}var Iv=!1;function pA(o,s){if(qf=Ac,o=a1(),Df(o)){if("selectionStart"in o)var u={start:o.selectionStart,end:o.selectionEnd};else e:{u=(u=o.ownerDocument)&&u.defaultView||window;var m=u.getSelection&&u.getSelection();if(m&&m.rangeCount!==0){u=m.anchorNode;var b=m.anchorOffset,C=m.focusNode;m=m.focusOffset;try{u.nodeType,C.nodeType}catch{u=null;break e}var B=0,D=-1,W=-1,ee=0,de=0,he=o,ue=null;t:for(;;){for(var Ce;he!==u||b!==0&&he.nodeType!==3||(D=B+b),he!==C||m!==0&&he.nodeType!==3||(W=B+m),he.nodeType===3&&(B+=he.nodeValue.length),(Ce=he.firstChild)!==null;)ue=he,he=Ce;for(;;){if(he===o)break t;if(ue===u&&++ee===b&&(D=B),ue===C&&++de===m&&(W=B),(Ce=he.nextSibling)!==null)break;he=ue,ue=he.parentNode}he=Ce}u=D===-1||W===-1?null:{start:D,end:W}}else u=null}u=u||{start:0,end:0}}else u=null;for(Qf={focusedElem:o,selectionRange:u},Ac=!1,ke=s;ke!==null;)if(s=ke,o=s.child,(s.subtreeFlags&1028)!==0&&o!==null)o.return=s,ke=o;else for(;ke!==null;){s=ke;try{var Ae=s.alternate;if((s.flags&1024)!==0)switch(s.tag){case 0:case 11:case 15:break;case 1:if(Ae!==null){var Pe=Ae.memoizedProps,bt=Ae.memoizedState,Q=s.stateNode,V=Q.getSnapshotBeforeUpdate(s.elementType===s.type?Pe:lr(s.type,Pe),bt);Q.__reactInternalSnapshotBeforeUpdate=V}break;case 3:var J=s.stateNode.containerInfo;J.nodeType===1?J.textContent="":J.nodeType===9&&J.documentElement&&J.removeChild(J.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(ye){yt(s,s.return,ye)}if(o=s.sibling,o!==null){o.return=s.return,ke=o;break}ke=s.return}return Ae=Iv,Iv=!1,Ae}function Fs(o,s,u){var m=s.updateQueue;if(m=m!==null?m.lastEffect:null,m!==null){var b=m=m.next;do{if((b.tag&o)===o){var C=b.destroy;b.destroy=void 0,C!==void 0&&Rh(s,u,C)}b=b.next}while(b!==m)}}function au(o,s){if(s=s.updateQueue,s=s!==null?s.lastEffect:null,s!==null){var u=s=s.next;do{if((u.tag&o)===o){var m=u.create;u.destroy=m()}u=u.next}while(u!==s)}}function Mh(o){var s=o.ref;if(s!==null){var u=o.stateNode;switch(o.tag){case 5:o=u;break;default:o=u}typeof s=="function"?s(o):s.current=o}}function Pv(o){var s=o.alternate;s!==null&&(o.alternate=null,Pv(s)),o.child=null,o.deletions=null,o.sibling=null,o.tag===5&&(s=o.stateNode,s!==null&&(delete s[Ar],delete s[Is],delete s[Jf],delete s[Yk],delete s[Jk])),o.stateNode=null,o.return=null,o.dependencies=null,o.memoizedProps=null,o.memoizedState=null,o.pendingProps=null,o.stateNode=null,o.updateQueue=null}function _v(o){return o.tag===5||o.tag===3||o.tag===4}function Tv(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||_v(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(o.flags&2||o.child===null||o.tag===4)continue e;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function Oh(o,s,u){var m=o.tag;if(m===5||m===6)o=o.stateNode,s?u.nodeType===8?u.parentNode.insertBefore(o,s):u.insertBefore(o,s):(u.nodeType===8?(s=u.parentNode,s.insertBefore(o,u)):(s=u,s.appendChild(o)),u=u._reactRootContainer,u!=null||s.onclick!==null||(s.onclick=Lc));else if(m!==4&&(o=o.child,o!==null))for(Oh(o,s,u),o=o.sibling;o!==null;)Oh(o,s,u),o=o.sibling}function Lh(o,s,u){var m=o.tag;if(m===5||m===6)o=o.stateNode,s?u.insertBefore(o,s):u.appendChild(o);else if(m!==4&&(o=o.child,o!==null))for(Lh(o,s,u),o=o.sibling;o!==null;)Lh(o,s,u),o=o.sibling}var Ht=null,cr=!1;function Io(o,s,u){for(u=u.child;u!==null;)Bv(o,s,u),u=u.sibling}function Bv(o,s,u){if(kr&&typeof kr.onCommitFiberUnmount=="function")try{kr.onCommitFiberUnmount(bc,u)}catch{}switch(u.tag){case 5:en||fa(u,s);case 6:var m=Ht,b=cr;Ht=null,Io(o,s,u),Ht=m,cr=b,Ht!==null&&(cr?(o=Ht,u=u.stateNode,o.nodeType===8?o.parentNode.removeChild(u):o.removeChild(u)):Ht.removeChild(u.stateNode));break;case 18:Ht!==null&&(cr?(o=Ht,u=u.stateNode,o.nodeType===8?Yf(o.parentNode,u):o.nodeType===1&&Yf(o,u),ys(o)):Yf(Ht,u.stateNode));break;case 4:m=Ht,b=cr,Ht=u.stateNode.containerInfo,cr=!0,Io(o,s,u),Ht=m,cr=b;break;case 0:case 11:case 14:case 15:if(!en&&(m=u.updateQueue,m!==null&&(m=m.lastEffect,m!==null))){b=m=m.next;do{var C=b,B=C.destroy;C=C.tag,B!==void 0&&((C&2)!==0||(C&4)!==0)&&Rh(u,s,B),b=b.next}while(b!==m)}Io(o,s,u);break;case 1:if(!en&&(fa(u,s),m=u.stateNode,typeof m.componentWillUnmount=="function"))try{m.props=u.memoizedProps,m.state=u.memoizedState,m.componentWillUnmount()}catch(D){yt(u,s,D)}Io(o,s,u);break;case 21:Io(o,s,u);break;case 22:u.mode&1?(en=(m=en)||u.memoizedState!==null,Io(o,s,u),en=m):Io(o,s,u);break;default:Io(o,s,u)}}function Nv(o){var s=o.updateQueue;if(s!==null){o.updateQueue=null;var u=o.stateNode;u===null&&(u=o.stateNode=new hA),s.forEach(function(m){var b=EA.bind(null,o,m);u.has(m)||(u.add(m),m.then(b,b))})}}function ur(o,s){var u=s.deletions;if(u!==null)for(var m=0;mb&&(b=B),m&=~C}if(m=b,m=vt()-m,m=(120>m?120:480>m?480:1080>m?1080:1920>m?1920:3e3>m?3e3:4320>m?4320:1960*gA(m/1960))-m,10o?16:o,_o===null)var m=!1;else{if(o=_o,_o=null,du=0,(tt&6)!==0)throw Error(n(331));var b=tt;for(tt|=4,ke=o.current;ke!==null;){var C=ke,B=C.child;if((ke.flags&16)!==0){var D=C.deletions;if(D!==null){for(var W=0;Wvt()-zh?ci(o,0):Fh|=u),xn(o,s)}function qv(o,s){s===0&&((o.mode&1)===0?s=1:(s=xc,xc<<=1,(xc&130023424)===0&&(xc=4194304)));var u=ln();o=qr(o,s),o!==null&&(fs(o,s,u),xn(o,u))}function CA(o){var s=o.memoizedState,u=0;s!==null&&(u=s.retryLane),qv(o,u)}function EA(o,s){var u=0;switch(o.tag){case 13:var m=o.stateNode,b=o.memoizedState;b!==null&&(u=b.retryLane);break;case 19:m=o.stateNode;break;default:throw Error(n(314))}m!==null&&m.delete(s),qv(o,u)}var Qv;Qv=function(o,s,u){if(o!==null)if(o.memoizedProps!==s.pendingProps||yn.current)bn=!0;else{if((o.lanes&u)===0&&(s.flags&128)===0)return bn=!1,uA(o,s,u);bn=(o.flags&131072)!==0}else bn=!1,ut&&(s.flags&1048576)!==0&&S1(s,$c,s.index);switch(s.lanes=0,s.tag){case 2:var m=s.type;ou(o,s),o=s.pendingProps;var b=ra(s,Jt.current);ca(s,u),b=yh(null,s,m,o,b,u);var C=vh();return s.flags|=1,typeof b=="object"&&b!==null&&typeof b.render=="function"&&b.$$typeof===void 0?(s.tag=1,s.memoizedState=null,s.updateQueue=null,vn(m)?(C=!0,zc(s)):C=!1,s.memoizedState=b.state!==null&&b.state!==void 0?b.state:null,uh(s),b.updater=nu,s.stateNode=b,b._reactInternals=s,kh(s,m,o,u),s=Ih(null,s,m,!0,C,u)):(s.tag=0,ut&&C&&eh(s),sn(null,s,b,u),s=s.child),s;case 16:m=s.elementType;e:{switch(ou(o,s),o=s.pendingProps,b=m._init,m=b(m._payload),s.type=m,b=s.tag=AA(m),o=lr(m,o),b){case 0:s=jh(null,s,m,o,u);break e;case 1:s=bv(null,s,m,o,u);break e;case 11:s=pv(null,s,m,o,u);break e;case 14:s=mv(null,s,m,lr(m.type,o),u);break e}throw Error(n(306,m,""))}return s;case 0:return m=s.type,b=s.pendingProps,b=s.elementType===m?b:lr(m,b),jh(o,s,m,b,u);case 1:return m=s.type,b=s.pendingProps,b=s.elementType===m?b:lr(m,b),bv(o,s,m,b,u);case 3:e:{if(wv(s),o===null)throw Error(n(387));m=s.pendingProps,C=s.memoizedState,b=C.element,M1(o,s),Kc(s,m,null,u);var B=s.memoizedState;if(m=B.element,C.isDehydrated)if(C={element:m,isDehydrated:!1,cache:B.cache,pendingSuspenseBoundaries:B.pendingSuspenseBoundaries,transitions:B.transitions},s.updateQueue.baseState=C,s.memoizedState=C,s.flags&256){b=da(Error(n(423)),s),s=xv(o,s,m,u,b);break e}else if(m!==b){b=da(Error(n(424)),s),s=xv(o,s,m,u,b);break e}else for(Rn=Co(s.stateNode.containerInfo.firstChild),Nn=s,ut=!0,sr=null,u=N1(s,null,m,u),s.child=u;u;)u.flags=u.flags&-3|4096,u=u.sibling;else{if(aa(),m===b){s=Gr(o,s,u);break e}sn(o,s,m,u)}s=s.child}return s;case 5:return D1(s),o===null&&rh(s),m=s.type,b=s.pendingProps,C=o!==null?o.memoizedProps:null,B=b.children,Gf(m,b)?B=null:C!==null&&Gf(m,C)&&(s.flags|=32),vv(o,s),sn(o,s,B,u),s.child;case 6:return o===null&&rh(s),null;case 13:return Cv(o,s,u);case 4:return dh(s,s.stateNode.containerInfo),m=s.pendingProps,o===null?s.child=sa(s,null,m,u):sn(o,s,m,u),s.child;case 11:return m=s.type,b=s.pendingProps,b=s.elementType===m?b:lr(m,b),pv(o,s,m,b,u);case 7:return sn(o,s,s.pendingProps,u),s.child;case 8:return sn(o,s,s.pendingProps.children,u),s.child;case 12:return sn(o,s,s.pendingProps.children,u),s.child;case 10:e:{if(m=s.type._context,b=s.pendingProps,C=s.memoizedProps,B=b.value,at(qc,m._currentValue),m._currentValue=B,C!==null)if(ar(C.value,B)){if(C.children===b.children&&!yn.current){s=Gr(o,s,u);break e}}else for(C=s.child,C!==null&&(C.return=s);C!==null;){var D=C.dependencies;if(D!==null){B=C.child;for(var W=D.firstContext;W!==null;){if(W.context===m){if(C.tag===1){W=Qr(-1,u&-u),W.tag=2;var ee=C.updateQueue;if(ee!==null){ee=ee.shared;var de=ee.pending;de===null?W.next=W:(W.next=de.next,de.next=W),ee.pending=W}}C.lanes|=u,W=C.alternate,W!==null&&(W.lanes|=u),lh(C.return,u,s),D.lanes|=u;break}W=W.next}}else if(C.tag===10)B=C.type===s.type?null:C.child;else if(C.tag===18){if(B=C.return,B===null)throw Error(n(341));B.lanes|=u,D=B.alternate,D!==null&&(D.lanes|=u),lh(B,u,s),B=C.sibling}else B=C.child;if(B!==null)B.return=C;else for(B=C;B!==null;){if(B===s){B=null;break}if(C=B.sibling,C!==null){C.return=B.return,B=C;break}B=B.return}C=B}sn(o,s,b.children,u),s=s.child}return s;case 9:return b=s.type,m=s.pendingProps.children,ca(s,u),b=Qn(b),m=m(b),s.flags|=1,sn(o,s,m,u),s.child;case 14:return m=s.type,b=lr(m,s.pendingProps),b=lr(m.type,b),mv(o,s,m,b,u);case 15:return gv(o,s,s.type,s.pendingProps,u);case 17:return m=s.type,b=s.pendingProps,b=s.elementType===m?b:lr(m,b),ou(o,s),s.tag=1,vn(m)?(o=!0,zc(s)):o=!1,ca(s,u),sv(s,m,b),kh(s,m,b,u),Ih(null,s,m,!0,o,u);case 19:return kv(o,s,u);case 22:return yv(o,s,u)}throw Error(n(156,s.tag))};function Gv(o,s){return jy(o,s)}function kA(o,s,u,m){this.tag=o,this.key=u,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=s,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=m,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Yn(o,s,u,m){return new kA(o,s,u,m)}function Gh(o){return o=o.prototype,!(!o||!o.isReactComponent)}function AA(o){if(typeof o=="function")return Gh(o)?1:0;if(o!=null){if(o=o.$$typeof,o===G)return 11;if(o===te)return 14}return 2}function No(o,s){var u=o.alternate;return u===null?(u=Yn(o.tag,s,o.key,o.mode),u.elementType=o.elementType,u.type=o.type,u.stateNode=o.stateNode,u.alternate=o,o.alternate=u):(u.pendingProps=s,u.type=o.type,u.flags=0,u.subtreeFlags=0,u.deletions=null),u.flags=o.flags&14680064,u.childLanes=o.childLanes,u.lanes=o.lanes,u.child=o.child,u.memoizedProps=o.memoizedProps,u.memoizedState=o.memoizedState,u.updateQueue=o.updateQueue,s=o.dependencies,u.dependencies=s===null?null:{lanes:s.lanes,firstContext:s.firstContext},u.sibling=o.sibling,u.index=o.index,u.ref=o.ref,u}function mu(o,s,u,m,b,C){var B=2;if(m=o,typeof o=="function")Gh(o)&&(B=1);else if(typeof o=="string")B=5;else e:switch(o){case N:return di(u.children,b,C,s);case O:B=8,b|=8;break;case U:return o=Yn(12,u,s,b|2),o.elementType=U,o.lanes=C,o;case q:return o=Yn(13,u,s,b),o.elementType=q,o.lanes=C,o;case ce:return o=Yn(19,u,s,b),o.elementType=ce,o.lanes=C,o;case ae:return gu(u,b,C,s);default:if(typeof o=="object"&&o!==null)switch(o.$$typeof){case $:B=10;break e;case Y:B=9;break e;case G:B=11;break e;case te:B=14;break e;case Z:B=16,m=null;break e}throw Error(n(130,o==null?o:typeof o,""))}return s=Yn(B,u,s,b),s.elementType=o,s.type=m,s.lanes=C,s}function di(o,s,u,m){return o=Yn(7,o,m,s),o.lanes=u,o}function gu(o,s,u,m){return o=Yn(22,o,m,s),o.elementType=ae,o.lanes=u,o.stateNode={isHidden:!1},o}function Kh(o,s,u){return o=Yn(6,o,null,s),o.lanes=u,o}function Yh(o,s,u){return s=Yn(4,o.children!==null?o.children:[],o.key,s),s.lanes=u,s.stateNode={containerInfo:o.containerInfo,pendingChildren:null,implementation:o.implementation},s}function SA(o,s,u,m,b){this.tag=s,this.containerInfo=o,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Ef(0),this.expirationTimes=Ef(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ef(0),this.identifierPrefix=m,this.onRecoverableError=b,this.mutableSourceEagerHydrationData=null}function Jh(o,s,u,m,b,C,B,D,W){return o=new SA(o,s,u,D,W),s===1?(s=1,C===!0&&(s|=8)):s=0,C=Yn(3,null,null,s),o.current=C,C.stateNode=o,C.memoizedState={element:m,isDehydrated:u,cache:null,transitions:null,pendingSuspenseBoundaries:null},uh(C),o}function jA(o,s,u){var m=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),rp.exports=FA(),rp.exports}var lb;function zA(){if(lb)return Eu;lb=1;var e=P2();return Eu.createRoot=e.createRoot,Eu.hydrateRoot=e.hydrateRoot,Eu}var UA=zA(),A=Vl();const k=Em(A),km=NA({__proto__:null,default:k},[A]);/**
- * react-router v7.9.6
- *
- * Copyright (c) Remix Software Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE.md file in the root directory of this source tree.
- *
- * @license MIT
- */var cb="popstate";function WA(e={}){function t(r,i){let{pathname:a,search:l,hash:c}=r.location;return p0("",{pathname:a,search:l,hash:c},i.state&&i.state.usr||null,i.state&&i.state.key||"default")}function n(r,i){return typeof i=="string"?i:ll(i)}return VA(t,n,null,e)}function ft(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function tr(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function $A(){return Math.random().toString(36).substring(2,10)}function ub(e,t){return{usr:e.state,key:e.key,idx:t}}function p0(e,t,n=null,r){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?Qa(t):t,state:n,key:t&&t.key||r||$A()}}function ll({pathname:e="/",search:t="",hash:n=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),n&&n!=="#"&&(e+=n.charAt(0)==="#"?n:"#"+n),e}function Qa(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function VA(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,l=i.history,c="POP",d=null,f=h();f==null&&(f=0,l.replaceState({...l.state,idx:f},""));function h(){return(l.state||{idx:null}).idx}function g(){c="POP";let w=h(),I=w==null?null:w-f;f=w,d&&d({action:c,location:v.location,delta:I})}function p(w,I){c="PUSH";let P=p0(v.location,w,I);f=h()+1;let j=ub(P,f),S=v.createHref(P);try{l.pushState(j,"",S)}catch(_){if(_ instanceof DOMException&&_.name==="DataCloneError")throw _;i.location.assign(S)}a&&d&&d({action:c,location:v.location,delta:1})}function y(w,I){c="REPLACE";let P=p0(v.location,w,I);f=h();let j=ub(P,f),S=v.createHref(P);l.replaceState(j,"",S),a&&d&&d({action:c,location:v.location,delta:0})}function x(w){return HA(w)}let v={get action(){return c},get location(){return e(i,l)},listen(w){if(d)throw new Error("A history only accepts one active listener");return i.addEventListener(cb,g),d=w,()=>{i.removeEventListener(cb,g),d=null}},createHref(w){return t(i,w)},createURL:x,encodeLocation(w){let I=x(w);return{pathname:I.pathname,search:I.search,hash:I.hash}},push:p,replace:y,go(w){return l.go(w)}};return v}function HA(e,t=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),ft(n,"No window.location.(origin|href) available to create URL");let r=typeof e=="string"?e:ll(e);return r=r.replace(/ $/,"%20"),!t&&r.startsWith("//")&&(r=n+r),new URL(r,n)}function _2(e,t,n="/"){return qA(e,t,n,!1)}function qA(e,t,n,r){let i=typeof t=="string"?Qa(t):t,a=so(i.pathname||"/",n);if(a==null)return null;let l=T2(e);QA(l);let c=null;for(let d=0;c==null&&d{let h={relativePath:f===void 0?l.path||"":f,caseSensitive:l.caseSensitive===!0,childrenIndex:c,route:l};if(h.relativePath.startsWith("/")){if(!h.relativePath.startsWith(r)&&d)return;ft(h.relativePath.startsWith(r),`Absolute route path "${h.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),h.relativePath=h.relativePath.slice(r.length)}let g=oo([r,h.relativePath]),p=n.concat(h);l.children&&l.children.length>0&&(ft(l.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${g}".`),T2(l.children,t,p,g,d)),!(l.path==null&&!l.index)&&t.push({path:g,score:e4(g,l.index),routesMeta:p})};return e.forEach((l,c)=>{if(l.path===""||!l.path?.includes("?"))a(l,c);else for(let d of B2(l.path))a(l,c,!0,d)}),t}function B2(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,i=n.endsWith("?"),a=n.replace(/\?$/,"");if(r.length===0)return i?[a,""]:[a];let l=B2(r.join("/")),c=[];return c.push(...l.map(d=>d===""?a:[a,d].join("/"))),i&&c.push(...l),c.map(d=>e.startsWith("/")&&d===""?"/":d)}function QA(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:t4(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}var GA=/^:[\w-]+$/,KA=3,YA=2,JA=1,ZA=10,XA=-2,db=e=>e==="*";function e4(e,t){let n=e.split("/"),r=n.length;return n.some(db)&&(r+=XA),t&&(r+=YA),n.filter(i=>!db(i)).reduce((i,a)=>i+(GA.test(a)?KA:a===""?JA:ZA),r)}function t4(e,t){return e.length===t.length&&e.slice(0,-1).every((r,i)=>r===t[i])?e[e.length-1]-t[t.length-1]:0}function n4(e,t,n=!1){let{routesMeta:r}=e,i={},a="/",l=[];for(let c=0;c{if(h==="*"){let x=c[p]||"";l=a.slice(0,a.length-x.length).replace(/(.)\/+$/,"$1")}const y=c[p];return g&&!y?f[h]=void 0:f[h]=(y||"").replace(/%2F/g,"/"),f},{}),pathname:a,pathnameBase:l,pattern:e}}function r4(e,t=!1,n=!0){tr(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let r=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(l,c,d)=>(r.push({paramName:c,isOptional:d!=null}),d?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(r.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),r]}function o4(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return tr(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function so(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}var i4=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,a4=e=>i4.test(e);function s4(e,t="/"){let{pathname:n,search:r="",hash:i=""}=typeof e=="string"?Qa(e):e,a;if(n)if(a4(n))a=n;else{if(n.includes("//")){let l=n;n=n.replace(/\/\/+/g,"/"),tr(!1,`Pathnames cannot have embedded double slashes - normalizing ${l} -> ${n}`)}n.startsWith("/")?a=fb(n.substring(1),"/"):a=fb(n,t)}else a=t;return{pathname:a,search:u4(r),hash:d4(i)}}function fb(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function ap(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function l4(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Am(e){let t=l4(e);return t.map((n,r)=>r===t.length-1?n.pathname:n.pathnameBase)}function Sm(e,t,n,r=!1){let i;typeof e=="string"?i=Qa(e):(i={...e},ft(!i.pathname||!i.pathname.includes("?"),ap("?","pathname","search",i)),ft(!i.pathname||!i.pathname.includes("#"),ap("#","pathname","hash",i)),ft(!i.search||!i.search.includes("#"),ap("#","search","hash",i)));let a=e===""||i.pathname==="",l=a?"/":i.pathname,c;if(l==null)c=n;else{let g=t.length-1;if(!r&&l.startsWith("..")){let p=l.split("/");for(;p[0]==="..";)p.shift(),g-=1;i.pathname=p.join("/")}c=g>=0?t[g]:"/"}let d=s4(i,c),f=l&&l!=="/"&&l.endsWith("/"),h=(a||l===".")&&n.endsWith("/");return!d.pathname.endsWith("/")&&(f||h)&&(d.pathname+="/"),d}var oo=e=>e.join("/").replace(/\/\/+/g,"/"),c4=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),u4=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,d4=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function f4(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var N2=["POST","PUT","PATCH","DELETE"];new Set(N2);var h4=["GET",...N2];new Set(h4);var Ga=A.createContext(null);Ga.displayName="DataRouter";var Ad=A.createContext(null);Ad.displayName="DataRouterState";A.createContext(!1);var R2=A.createContext({isTransitioning:!1});R2.displayName="ViewTransition";var p4=A.createContext(new Map);p4.displayName="Fetchers";var m4=A.createContext(null);m4.displayName="Await";var xr=A.createContext(null);xr.displayName="Navigation";var Hl=A.createContext(null);Hl.displayName="Location";var zr=A.createContext({outlet:null,matches:[],isDataRoute:!1});zr.displayName="Route";var jm=A.createContext(null);jm.displayName="RouteError";function g4(e,{relative:t}={}){ft(Ka(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:r}=A.useContext(xr),{hash:i,pathname:a,search:l}=ql(e,{relative:t}),c=a;return n!=="/"&&(c=a==="/"?n:oo([n,a])),r.createHref({pathname:c,search:l,hash:i})}function Ka(){return A.useContext(Hl)!=null}function fo(){return ft(Ka(),"useLocation() may be used only in the context of a component."),A.useContext(Hl).location}var M2="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function O2(e){A.useContext(xr).static||A.useLayoutEffect(e)}function Li(){let{isDataRoute:e}=A.useContext(zr);return e?P4():y4()}function y4(){ft(Ka(),"useNavigate() may be used only in the context of a component.");let e=A.useContext(Ga),{basename:t,navigator:n}=A.useContext(xr),{matches:r}=A.useContext(zr),{pathname:i}=fo(),a=JSON.stringify(Am(r)),l=A.useRef(!1);return O2(()=>{l.current=!0}),A.useCallback((d,f={})=>{if(tr(l.current,M2),!l.current)return;if(typeof d=="number"){n.go(d);return}let h=Sm(d,JSON.parse(a),i,f.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:oo([t,h.pathname])),(f.replace?n.replace:n.push)(h,f.state,f)},[t,n,a,i,e])}A.createContext(null);function ql(e,{relative:t}={}){let{matches:n}=A.useContext(zr),{pathname:r}=fo(),i=JSON.stringify(Am(n));return A.useMemo(()=>Sm(e,JSON.parse(i),r,t==="path"),[e,i,r,t])}function v4(e,t){return L2(e,t)}function L2(e,t,n,r,i){ft(Ka(),"useRoutes() may be used only in the context of a component.");let{navigator:a}=A.useContext(xr),{matches:l}=A.useContext(zr),c=l[l.length-1],d=c?c.params:{},f=c?c.pathname:"/",h=c?c.pathnameBase:"/",g=c&&c.route;{let P=g&&g.path||"";D2(f,!g||P.endsWith("*")||P.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${f}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
-
-Please change the parent to .`)}let p=fo(),y;if(t){let P=typeof t=="string"?Qa(t):t;ft(h==="/"||P.pathname?.startsWith(h),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${h}" but pathname "${P.pathname}" was given in the \`location\` prop.`),y=P}else y=p;let x=y.pathname||"/",v=x;if(h!=="/"){let P=h.replace(/^\//,"").split("/");v="/"+x.replace(/^\//,"").split("/").slice(P.length).join("/")}let w=_2(e,{pathname:v});tr(g||w!=null,`No routes matched location "${y.pathname}${y.search}${y.hash}" `),tr(w==null||w[w.length-1].route.element!==void 0||w[w.length-1].route.Component!==void 0||w[w.length-1].route.lazy!==void 0,`Matched leaf route at location "${y.pathname}${y.search}${y.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let I=E4(w&&w.map(P=>Object.assign({},P,{params:Object.assign({},d,P.params),pathname:oo([h,a.encodeLocation?a.encodeLocation(P.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:P.pathname]),pathnameBase:P.pathnameBase==="/"?h:oo([h,a.encodeLocation?a.encodeLocation(P.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:P.pathnameBase])})),l,n,r,i);return t&&I?A.createElement(Hl.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...y},navigationType:"POP"}},I):I}function b4(){let e=I4(),t=f4(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",i={padding:"0.5rem",backgroundColor:r},a={padding:"2px 4px",backgroundColor:r},l=null;return console.error("Error handled by React Router default ErrorBoundary:",e),l=A.createElement(A.Fragment,null,A.createElement("p",null,"💿 Hey developer 👋"),A.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",A.createElement("code",{style:a},"ErrorBoundary")," or"," ",A.createElement("code",{style:a},"errorElement")," prop on your route.")),A.createElement(A.Fragment,null,A.createElement("h2",null,"Unexpected Application Error!"),A.createElement("h3",{style:{fontStyle:"italic"}},t),n?A.createElement("pre",{style:i},n):null,l)}var w4=A.createElement(b4,null),x4=class extends A.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){return this.state.error!==void 0?A.createElement(zr.Provider,{value:this.props.routeContext},A.createElement(jm.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function C4({routeContext:e,match:t,children:n}){let r=A.useContext(Ga);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),A.createElement(zr.Provider,{value:e},n)}function E4(e,t=[],n=null,r=null,i=null){if(e==null){if(!n)return null;if(n.errors)e=n.matches;else if(t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,l=n?.errors;if(l!=null){let h=a.findIndex(g=>g.route.id&&l?.[g.route.id]!==void 0);ft(h>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(l).join(",")}`),a=a.slice(0,Math.min(a.length,h+1))}let c=!1,d=-1;if(n)for(let h=0;h=0?a=a.slice(0,d+1):a=[a[0]];break}}}let f=n&&r?(h,g)=>{r(h,{location:n.location,params:n.matches?.[0]?.params??{},errorInfo:g})}:void 0;return a.reduceRight((h,g,p)=>{let y,x=!1,v=null,w=null;n&&(y=l&&g.route.id?l[g.route.id]:void 0,v=g.route.errorElement||w4,c&&(d<0&&p===0?(D2("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),x=!0,w=null):d===p&&(x=!0,w=g.route.hydrateFallbackElement||null)));let I=t.concat(a.slice(0,p+1)),P=()=>{let j;return y?j=v:x?j=w:g.route.Component?j=A.createElement(g.route.Component,null):g.route.element?j=g.route.element:j=h,A.createElement(C4,{match:g,routeContext:{outlet:h,matches:I,isDataRoute:n!=null},children:j})};return n&&(g.route.ErrorBoundary||g.route.errorElement||p===0)?A.createElement(x4,{location:n.location,revalidation:n.revalidation,component:v,error:y,children:P(),routeContext:{outlet:null,matches:I,isDataRoute:!0},onError:f}):P()},null)}function Im(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function k4(e){let t=A.useContext(Ga);return ft(t,Im(e)),t}function A4(e){let t=A.useContext(Ad);return ft(t,Im(e)),t}function S4(e){let t=A.useContext(zr);return ft(t,Im(e)),t}function Pm(e){let t=S4(e),n=t.matches[t.matches.length-1];return ft(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function j4(){return Pm("useRouteId")}function I4(){let e=A.useContext(jm),t=A4("useRouteError"),n=Pm("useRouteError");return e!==void 0?e:t.errors?.[n]}function P4(){let{router:e}=k4("useNavigate"),t=Pm("useNavigate"),n=A.useRef(!1);return O2(()=>{n.current=!0}),A.useCallback(async(i,a={})=>{tr(n.current,M2),n.current&&(typeof i=="number"?e.navigate(i):await e.navigate(i,{fromRouteId:t,...a}))},[e,t])}var hb={};function D2(e,t,n){!t&&!hb[e]&&(hb[e]=!0,tr(!1,n))}A.memo(_4);function _4({routes:e,future:t,state:n,unstable_onError:r}){return L2(e,void 0,n,r,t)}function T4({to:e,replace:t,state:n,relative:r}){ft(Ka()," may be used only in the context of a component.");let{static:i}=A.useContext(xr);tr(!i," must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.");let{matches:a}=A.useContext(zr),{pathname:l}=fo(),c=Li(),d=Sm(e,Am(a),l,r==="path"),f=JSON.stringify(d);return A.useEffect(()=>{c(JSON.parse(f),{replace:t,state:n,relative:r})},[c,f,r,t,n]),null}function Tr(e){ft(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function B4({basename:e="/",children:t=null,location:n,navigationType:r="POP",navigator:i,static:a=!1}){ft(!Ka(),"You cannot render a inside another . You should never have more than one in your app.");let l=e.replace(/^\/*/,"/"),c=A.useMemo(()=>({basename:l,navigator:i,static:a,future:{}}),[l,i,a]);typeof n=="string"&&(n=Qa(n));let{pathname:d="/",search:f="",hash:h="",state:g=null,key:p="default"}=n,y=A.useMemo(()=>{let x=so(d,l);return x==null?null:{location:{pathname:x,search:f,hash:h,state:g,key:p},navigationType:r}},[l,d,f,h,g,p,r]);return tr(y!=null,` is not able to match the URL "${d}${f}${h}" because it does not start with the basename, so the won't render anything.`),y==null?null:A.createElement(xr.Provider,{value:c},A.createElement(Hl.Provider,{children:t,value:y}))}function N4({children:e,location:t}){return v4(m0(e),t)}function m0(e,t=[]){let n=[];return A.Children.forEach(e,(r,i)=>{if(!A.isValidElement(r))return;let a=[...t,i];if(r.type===A.Fragment){n.push.apply(n,m0(r.props.children,a));return}ft(r.type===Tr,`[${typeof r.type=="string"?r.type:r.type.name}] is not a component. All component children of must be a or `),ft(!r.props.index||!r.props.children,"An index route cannot have child routes.");let l={id:r.props.id||a.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,middleware:r.props.middleware,loader:r.props.loader,action:r.props.action,hydrateFallbackElement:r.props.hydrateFallbackElement,HydrateFallback:r.props.HydrateFallback,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.hasErrorBoundary===!0||r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(l.children=m0(r.props.children,a)),n.push(l)}),n}var Gu="get",Ku="application/x-www-form-urlencoded";function Sd(e){return e!=null&&typeof e.tagName=="string"}function R4(e){return Sd(e)&&e.tagName.toLowerCase()==="button"}function M4(e){return Sd(e)&&e.tagName.toLowerCase()==="form"}function O4(e){return Sd(e)&&e.tagName.toLowerCase()==="input"}function L4(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function D4(e,t){return e.button===0&&(!t||t==="_self")&&!L4(e)}var ku=null;function F4(){if(ku===null)try{new FormData(document.createElement("form"),0),ku=!1}catch{ku=!0}return ku}var z4=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function sp(e){return e!=null&&!z4.has(e)?(tr(!1,`"${e}" is not a valid \`encType\` for \` |