1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8935,4295],{53374:function(t,e,n){n.d(e,{W:function(){return r}});var i=n(42321),s=n(36393);class r extends s.Z{constructor(t){let{chains:e=i.gL9,options:n}=t;super(),this.chains=e,this.options=n}getBlockExplorerUrls(t){let e=t.explorers?.map(t=>t.url)??[];return e.length>0?e:void 0}isChainUnsupported(t){return!this.chains.some(e=>e.chainId===t)}updateChains(t){this.chains=t}}},71244:function(t,e,n){n.d(e,{A:function(){return o},C:function(){return c},R:function(){return h},S:function(){return u},U:function(){return d},a:function(){return a}});var i=n(31929);class s extends Error{constructor(t,e){let{cause:n,code:i,data:s}=e;if(!Number.isInteger(i))throw Error('"code" must be an integer.');if(!t||"string"!=typeof t)throw Error('"message" must be a nonempty string.');super(`${t}. Cause: ${JSON.stringify(n)}`),this.cause=n,this.code=i,this.data=s}}class r extends s{constructor(t,e){let{cause:n,code:i,data:s}=e;if(!(Number.isInteger(i)&&i>=1e3&&i<=4999))throw Error('"code" must be an integer such that: 1000 <= code <= 4999');super(t,{cause:n,code:i,data:s})}}class o extends Error{constructor(){super(...arguments),(0,i._)(this,"name","AddChainError"),(0,i._)(this,"message","Error adding chain")}}class c extends Error{constructor(t){let{chainId:e,connectorId:n}=t;super(`Chain "${e}" not configured for connector "${n}".`),(0,i._)(this,"name","ChainNotConfigured")}}class a extends Error{constructor(){super(...arguments),(0,i._)(this,"name","ConnectorNotFoundError"),(0,i._)(this,"message","Connector not found")}}class h extends s{constructor(t){super("Resource unavailable",{cause:t,code:-32002}),(0,i._)(this,"name","ResourceUnavailable")}}class u extends r{constructor(t){super("Error switching chain",{cause:t,code:4902}),(0,i._)(this,"name","SwitchChainError")}}class d extends r{constructor(t){super("User rejected request",{cause:t,code:4001}),(0,i._)(this,"name","UserRejectedRequestError")}}},31562:function(t,e,n){n.d(e,{n:function(){return i}});function i(t){return"string"==typeof t?Number.parseInt(t,"0x"===t.trim().substring(0,2)?16:10):"bigint"==typeof t?Number(t):t}},44295:function(t,e,n){n.d(e,{InjectedConnector:function(){return l}});var i=n(31929),s=n(53374),r=n(71244),o=n(2975),c=n(60874),a=n(89005),h=n(68893),u=n(9784),d=n(31562);n(36393);class l extends s.W{constructor(t){let e={shimDisconnect:!0,getProvider:()=>{if((0,o.a)(globalThis.window))return globalThis.window.ethereum},...t.options};super({chains:t.chains,options:e}),(0,i._)(this,"shimDisconnectKey","injected.shimDisconnect"),(0,i._)(this,"onAccountsChanged",async t=>{0===t.length?this.emit("disconnect"):this.emit("change",{account:a.getAddress(t[0])})}),(0,i._)(this,"onChainChanged",t=>{let e=(0,d.n)(t),n=this.isChainUnsupported(e);this.emit("change",{chain:{id:e,unsupported:n}})}),(0,i._)(this,"onDisconnect",async t=>
1{if(1013===t.code&&await this.getProvider())try{if(await this.getAccount())return}catch{}this.emit("disconnect"),this.options.shimDisconnect&&await this.connectorStorage.removeItem(this.shimDisconnectKey)});let n=e.getProvider();if("string"==typeof e.name)this.name=e.name;else if(n){let t=function(t){if(!t)return"Injected";let e=t=>t.isAvalanche?"Core Wallet":t.isBitKeep?"BitKeep":t.isBraveWallet?"Brave Wallet":t.isCoinbaseWallet?"Coinbase Wallet":t.isExodus?"Exodus":t.isFrame?"Frame":t.isKuCoinWallet?"KuCoin Wallet":t.isMathWallet?"MathWallet":t.isOneInchIOSWallet||t.isOneInchAndroidWallet?"1inch Wallet":t.isOpera?"Opera":t.isPortal?"Ripio Portal":t.isTally?"Tally":t.isTokenPocket?"TokenPocket":t.isTokenary?"Tokenary":t.isTrust||t.isTrustWallet?"Trust Wallet":t.isMetaMask?"MetaMask":t.isImToken?"imToken":void 0;if(t.providers?.length){let n=new Set,i=1;for(let s of t.providers){let t=e(s);t||(t=`Unknown Wallet #${i}`,i+=1),n.add(t)}let s=[...n];return s.length?s:s[0]??"Injected"}return e(t)??"Injected"}(n);e.name?this.name=e.name(t):"string"==typeof t?this.name=t:this.name=t[0]}else this.name="Injected";this.id="injected",this.ready=!!n,this.connectorStorage=t.connectorStorage}async connect(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{let e=await this.getProvider();if(!e)throw new r.a;this.setupListeners(),this.emit("message",{type:"connecting"});let n=await e.request({method:"eth_requestAccounts"}),i=a.getAddress(n[0]),s=await this.getChainId(),o=this.isChainUnsupported(s);if(t.chainId&&s!==t.chainId)try{await this.switchChain(t.chainId),s=t.chainId,o=this.isChainUnsupported(t.chainId)}catch(e){console.error(`Could not switch to chain id: ${t.chainId}`,e)}this.options.shimDisconnect&&await this.connectorStorage.setItem(this.shimDisconnectKey,"true");let c={account:i,chain:{id:s,unsupported:o},provider:e};return this.emit("connect",c),c}catch(t){if(this.isUserRejectedRequestError(t))throw new r.U(t);if(-32002===t.code)throw new r.R(t);throw t}}async disconnect(){let t=await this.getProvider();t?.removeListener&&(t.removeListener("accountsChanged",this.onAccountsChanged),t.removeListener("chainChanged",this.onChainChanged),t.removeListener("disconnect",this.onDisconnect),this.options.shimDisconnect&&await this.connectorStorage.removeItem(this.shimDisconnectKey))}async getAccount(){let t=await this.getProvider();if(!t)throw new r.a;let e=await t.request({method:"eth_accounts"});return a.getAddress(e[0])}async getChainId(){let t=await this.getProvider();if(!t)throw new r.a;return t.request({method:"eth_chainId"}).then(d.n)}async getProvider(){let t=this.options.getProvider();return t&&(this._provider=t),this._provider}async getSigner(){let{chainId:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},[e,n]=await Promise.all([this.getProvider(),this.getAccount()]);return new h.Q(e,t).getSigner(n)}async isAuthorized(){try{if(this.options.shimDisconnect&&!await this.connectorStorage.getItem(this.shimDisconnectKey))return!1;if(!await this.getProvider())throw new r.a;return!!await this.getAccount()}catch{return!1}}async switchChain(t){let e=await this.getProvider();if(!e)throw new r.a;let n=u.hexValue(t);try{await e.request({method:"wallet_switchEthereumChain",params:[{chainId:n}]});let i=this.chains.find(e=>e.chainId===t);if(i)return i;return{chainId:t,name:`Chain ${n}`,slug:`${n}`,nativeCurrency:{name:"Ether",decimals:18,symbol:"ETH"},rpc:[""],chain:"",shortName:"",testnet:!0}}catch(s){let i=this.chains.find(e=>e.chainId===t);if(!i)throw new r.C({chainId:t,connectorId:this.id});if(4902===s.code||s?.data?.originalError?.code===4902)try{return await e.request({method:"wallet_addEthereumChain",params:[{chainId:n,chainName:i.name,nativeCurrency:i.nativeCurrency,rpcUrls:(0,c.g)(i),blockExplorerUrls:this.getBlockExplorerUrls(i)}]}),i}catch(t){if(this.isUserRejectedRequestError(t))throw new r.U(s);throw new r.A}if(this.isUserRejectedRequestError(s))throw new r.U(s);throw new r.S(s)}}async setupListeners(){let t=await this.getProvider();t.on&&(t.on("accountsChanged",this.onAccountsChanged),t.on("chainChanged",this.onChainChanged),t.on("disconnect",this.onDisconnect))}isUserRejectedRequestError(t){return 4001===t.code}}},28935:function(t,e,n){n.d(e,{PhantomConnector:function(){return h}});var i=n(31929),s=n(71244),r=n(93925),o=n(44295),c=n(89005),a=n(25956);n(36393);class h extends o.InjectedConnector{constructor(t){let e={name:"Phantom",shimDisconnect:!0,shimChainChangedDisconnect:!0,getProvider:a.g,...t.options};super({chains:t.chains,options:e,connectorStorage:t.connectorStorage}),(0,i._)(this,"id",r.w.phantom),this._UNSTABLE_shimOnConnectSelectAccount=e.UNSTABLE_shimOnConnectSelectAccount}async connect(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{let e=await this.getProvider();if(!e)throw new s.a;
1this.setupListeners(),this.emit("message",{type:"connecting"});let n=null;if(this._UNSTABLE_shimOnConnectSelectAccount&&this.options?.shimDisconnect&&!this.connectorStorage.getItem(this.shimDisconnectKey)&&(n=await this.getAccount().catch(()=>null)))try{await e.request({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]})}catch(t){if(this.isUserRejectedRequestError(t))throw new s.U(t)}if(!n){let t=await e.request({method:"eth_requestAccounts"});n=c.getAddress(t[0])}let i=await this.getChainId(),r=this.isChainUnsupported(i);if(t.chainId&&i!==t.chainId)try{await this.switchChain(t.chainId),i=t.chainId,r=this.isChainUnsupported(t.chainId)}catch(e){console.error(`Could not switch to chain id : ${t.chainId}`,e)}this.options?.shimDisconnect&&await this.connectorStorage.setItem(this.shimDisconnectKey,"true");let o={chain:{id:i,unsupported:r},provider:e,account:n};return this.emit("connect",o),o}catch(t){if(this.isUserRejectedRequestError(t))throw new s.U(t);if(-32002===t.code)throw new s.R(t);throw t}}async switchAccount(){let t=await this.getProvider();await t.request({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]})}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.