1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4301],{4301:(e,n,a)=>{a.d(n,{autoConnectWC:()=>b,connectWC:()=>C});var t=a(58972),i=a(4637),s=a(21592),o=a(82261),r=a(94373),c=a(98976),l=a(85893),d=a(81738),h=a(65701),u=a(82028),p=a(54325),w=a(24075),m=a(30841),f=a(87410);let v=null,g="tw.wc.lastUsedChainId";async function C(e,n,a,t,i){let s,r,c=await T(e,a,i),l=e.walletConnect,{onDisplayUri:d}=l||{},w=await (0,p.u)(a);!d&&i&&(d=e=>{let n=w.mobile.native||w.mobile.universal;n?i((0,u.YP)(n,e).redirect):i(e)}),d&&c.events.addListener("display_uri",d);let v=l?.optionalChains,g=e.chain;"global.safe"===a&&(v=A.map(o.Q4),g&&!v.includes(g)&&(g=void 0));let{chains:C,rpcMap:y}=function(e){let n={},a=[];for(let t of(e.chain&&(n[e.chain.id]=(0,o.r8)({chain:e.chain,client:e.client}),a.push(e.chain.id)),(e?.optionalChains||[]).slice(0,10)))n[t.id]=(0,o.r8)({chain:t,client:e.client}),a.push(t.id);return a.includes(1)||(n[1]=(0,o.Q4)(1).rpc,a.push(1)),{chains:a.map(e=>`eip155:${e}`),rpcMap:n}}({chain:g,client:e.client,optionalChains:v});await c.connect({...l?.pairingTopic?{pairingTopic:l?.pairingTopic}:{},optionalNamespaces:{[f.C]:{chains:C,events:["chainChanged","accountsChanged"],methods:["eth_sendTransaction","eth_signTransaction","eth_sign","personal_sign","eth_signTypedData","eth_signTypedData_v4","wallet_switchEthereumChain","wallet_addEthereumChain"],rpcMap:y}}}),U(C.map(e=>Number(e.split(":")[1])),t);let E=C[0]?.split(":")[1]||1,b=(0,m.A)(E),I=(s=_(c.session),(r=s?.accounts?.find(e=>e.startsWith("eip155:1:"))||s?.accounts[0])?r.split(":")[2]??null:null);if(!I)throw Error("No accounts found on provider.");let N=e.chain&&e.chain.id===b?e.chain:(0,o.Q4)(b);if(e){let n={chain:e.chain,optionalChains:e.walletConnect?.optionalChains,pairingTopic:e.walletConnect?.pairingTopic};t&&(0,h.O7)(t,a,n)}return d&&c.events.removeListener("display_uri",d),$(I,N,c,n,t,e.client,w,i)}async function y(e,n,a){let t;if(!e.session)throw Error("No session found on provider.");let i=`eip155:${n.id}`,s=(0,c.cK)(n.id);if(E(e.session,i))return void e.setDefaultChain(i);try{await N({provider:e,payload:{method:"wallet_switchEthereumChain",params:[{chainId:s}]},chain:i,walletInfo:a}),e.setDefaultChain(i);return}catch(e){if(4001===(e?.code??e?.data?.originalError?.code))throw Error("User rejected chain switch")}let o=(t=_(e.session),t?.accounts?.[0]?.split(":")?.slice(0,2)?.join(":")??null);if(!o)throw Error("No routable chain to send wallet_addEthereumChain");try{await N({provider:e,payload:{method:"wallet_addEthereumChain",params:[{chainId:s,chainName:n.name,nativeCurrency:n.nativeCurrency,rpcUrls:[n.rpc],blockExplorerUrls:[n.blockExplorers?.[0]?.url??""]}]},chain:o,walletInfo:a})}catch(e){if(4001===(e?.code??e?.data?.originalError?.code))throw Error("User rejected add chain");throw Error(`Add chain failed: ${e?.message||String(e)}`)}if(await N({provider:e,payload:{method:"wallet_switchEthereumChain",params:[{chainId:s}]},chain:i,walletInfo:a}),e.setDefaultChain(i),!E(e.session,i))throw Error("Target chain still not enabled by wallet")}function _(e){return e?.namespaces?.eip155}function E(e,n){let a=_(e);return!!a?.accounts?.some(e=>e.startsWith(`${n}:`))}async function b(e,n,a,t,i){let s=t?await (0,h.lh)(t,a):null,r=await (0,p.u)(a),c=await T(s?{chain:s.chain,client:e.client,walletConnect:{optionalChains:s.optionalChains,pairingTopic:s.pairingTopic}}:{client:e.client,walletConnect:{}},a,i);if(!c.session)throw await c.disconnect(),Error("No wallet connect session found on provider.");let l=c.session?.namespaces?.[f.C]?.accounts,d=l?.[0]?.split(":")[2];if(!d)throw Error("No accounts found on provider.");let u=e.chain?.id||1,w=(0,m.A)(u);return $(d,e.chain&&e.chain.id===w?e.chain:(0,o.Q4)(w),c,n,t,e.client,r,i)}async function T(e,n,t){if(v)return v;let i=await (0,p.u)(n),s=e.walletConnect,{UniversalProvider:r}=await a.e(81553).then(a.bind(a,81553)),c=s?.optionalChains,l=e.chain;"global.safe"===n&&(c=A.map(o.Q4),l&&!c.includes(l)&&(l=void 0));let d=await r.init({metadata:{description:s?.appMetadata?.description||(0,w.o)().description,icons:[s?.appMetadata?.logoUrl||(0,w.o)().logoUrl],name:s?.appMetadata?.name||(0,w.o)().name,url:s?.appMetadata?.url||(0,w.o)().url,redirect:{native:i.mobile.native||void 0,universal:i.mobile.universal||void 0}},projectId:s?.projectId||f.S});if(d.events.setMaxListeners(1/0),"walletConnect"!==n){async function h(){let e=d.session?.peer?.metadata?.redirect?.native||i.mobile.native||i.mobile.universal;t&&e&&await t(e)}d.on("session_request_sent",h),d.events.addListener("disconnect",()=>{d.off("session_request_sent",h),v=null})}return v=d,d}function I({provider:e,address:n,client:a,chain:i,sessionRequestHandler:o,walletInfo:l}){return{address:(0,r.bv)(n),async sendTransaction(t){let i=await N({provider:e,payload:{method:"eth_sendTransaction",params:[{data:t.data,from:(0,r.bv)(n),gas:t.gas?(0,c.cK)(t.gas):void 0,to:t.to,value:t.value?(0,c.cK)(t.value):void 0}]},chain:`eip155:${t.chainId}`,walletInfo:l,sessionRequestHandler:o});return(0,s.E)({chainId:t.chainId,client:a,contractAddress:t.to??void 0,gasPrice:t.gasPrice,transactionHash:i,walletAddress:(0,r.bv)(n),walletType:"walletConnect"}),{transactionHash:i}},async signMessage({message:n}){return N({provider:e,payload:{method:"personal_sign",params:["string"==typeof n?(0,c.i3)(n):n.raw instanceof Uint8Array?(0,c.EY)(n.raw):n.raw,this.address]},chain:`eip155:${i.id}`,walletInfo:l,sessionRequestHandler:o})},async signTypedData(n){let a=(0,d.y)(n),{domain:s,message:r,primaryType:c}=a,h={EIP712Domain:(0,t.H4)({domain:s}),...a.types};(0,t.$$)({domain:s,message:r,primaryType:c,types:h});let u=(0,t.v8)({domain:s??{},message:r,primaryType:c,types:h});return await N({provider:e,payload:{method:"eth_signTypedData_v4",params:[this.address,u]},chain:`eip155:${i.id}`,walletInfo:l,sessionRequestHandler:o})}}}async function N(e){let{provider:n,payload:a,chain:t,walletInfo:i,sessionRequestHandler:s}
1=e,o=n.request(a,t),r=n.session?.peer?.metadata?.redirect?.native||i.mobile.native||i.mobile.universal;return s&&r&&await s(r),o}function $(e,n,a,t,i,s,c,l){let d=I({address:e,chain:n,client:s,provider:a,sessionRequestHandler:l,walletInfo:c});async function h(){a.removeListener("accountsChanged",p),a.removeListener("chainChanged",w),a.removeListener("disconnect",u),await a.disconnect(),v=null}function u(){U([],i),i?.removeItem(g),h(),t.emit("disconnect",void 0)}function p(e){if(e[0]){let i=I({address:(0,r.bv)(e[0]),chain:n,client:s,provider:a,sessionRequestHandler:l,walletInfo:c});t.emit("accountChanged",i),t.emit("accountsChanged",e)}else u()}function w(e){let n=(0,o.Q4)((0,m.A)(e));t.emit("chainChanged",n),i?.setItem(g,String(e))}return a.on("accountsChanged",p),a.on("chainChanged",w),a.on("disconnect",u),a.on("session_delete",u),[d,n,h,e=>D(a,e,c)]}async function D(e,n,a){try{await y(e,n,a)}catch(n){let e="string"==typeof n?n:n?.message;if(/user rejected request/i.test(e))throw new i.vx(n);throw new i.ch(n)}}function U(e,n){n?.setItem("tw.wc.requestedChains",(0,l.stringify)(e))}let A=[1,0xaa36a7,42161,43114,8453,0x4e454152,84532,56,42220,100,10,137,1101,324,534352]}}]);
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.