"use strict";(self.webpackChunkfrog=self.webpackChunkfrog||[]).push([[4872],{74848:(e,r,t)=>{e.exports=t(29698)},76428:(e,r,t)=>{t.d(r,{Hk:()=>g});t(45369),t(87831);var n=t(8051),i=t(99770),a=t(93878),s=t(76038),o=t(6229),d=t(12525),c=t(86211),h=t(91447),p=t(2626),w=t(53299),u=t(33005),m=t(36212),f=t(87303),l=t(58906),E=t(24391);const v={signMessage:async(e,r,t)=>{if(!r)throw new Error("signMessage - provider is undefined");const n=(0,m.Lo)(e)?e:(0,m.c$)((0,f.YW)(e));return await r.request({method:"personal_sign",params:[n,t]})},estimateGas:async(e,r,t,i)=>{if(!r)throw new Error("estimateGas - provider is undefined");if(!t)throw new Error("estimateGas - address is undefined");if(e.chainNamespace&&"eip155"!==e.chainNamespace)throw new Error("estimateGas - chainNamespace is not eip155");const a={from:e.address,to:e.to,data:e.data,type:0},s=new l.k(r,i),o=new n.cP(s,t);return await o.estimateGas(a)},sendTransaction:async(e,r,t,i)=>{if(!r)throw new Error("sendTransaction - provider is undefined");if(!t)throw new Error("sendTransaction - address is undefined");if(e.chainNamespace&&"eip155"!==e.chainNamespace)throw new Error("sendTransaction - chainNamespace is not eip155");const a={to:e.to,value:e.value,gasLimit:e.gas,gasPrice:e.gasPrice,data:e.data,type:0},s=new l.k(r,i),o=new n.cP(s,t),d=await o.sendTransaction(a),c=await d.wait();return c?.hash||null},writeContract:async(e,r,t,i)=>{if(!r)throw new Error("writeContract - provider is undefined");if(!t)throw new Error("writeContract - address is undefined");const a=new l.k(r,i),s=new n.cP(a,t),o=new E.NZ(e.tokenAddress,e.abi,s);if(!o||!e.method)throw new Error("Contract method is undefined");const d=o[e.method];if(d)return await d(...e.args);throw new Error("Contract method is undefined")},getEnsAddress:async(e,r)=>{try{const t=Number(r.id);let n=null,i=!1;if((0,o.TY)(e)&&(i=await s.kl.resolveReownName(e)||!1),1===t){const r=new a.p("mainnet");n=await r.resolveName(e)}return n||i||!1}catch{return!1}},getEnsAvatar:async(e,r)=>{if(1===r){const r=new a.p("mainnet");return await r.getAvatar(e)||!1}return!1},parseWalletCapabilities:e=>{try{return JSON.parse(e)}catch(e){throw new Error("Error parsing wallet capabilities")}},parseUnits:i.XS,formatUnits:i.Js};class g extends p.X{constructor(){super({}),this.adapterType="ethers",this.providerHandlers=null,this.namespace=o.oU.CHAIN.EVM}async createEthersConfig(e){if(!e.metadata)return;let r;const n={metadata:e.metadata};if(!1!==e.enableInjected&&(n.injected=r||("undefined"!=typeof window&&window.ethereum?(r=window.ethereum,r):void 0)),!1!==e.enableCoinbase){const r=await async function(){try{const{createCoinbaseWalletSDK:r}=await Promise.all([t.e(6666),t.e(7011)]).then(t.bind(t,36666));if("undefined"==typeof window)return;return r({appName:e?.metadata?.name,appLogoUrl:e?.metadata?.icons[0],appChainIds:e.networks?.map((e=>e.id))||[1,84532],preference:{options:e.coinbasePreference??"all"}}).getProvider()}catch(e){return}}();r&&(n.coinbase=r)}return n.EIP6963=!1!==e.enableEIP6963,n}async signMessage(e){const{message:r,address:t,provider:n}=e;if(!n)throw new Error("Provider is undefined");try{return{signature:await v.signMessage(r,n,t)}}catch(e){throw new Error("EthersAdapter:signMessage - Sign message failed")}}async sendTransaction(e){if(!e.provider)throw new Error("Provider is undefined");return{hash:await v.sendTransaction({value:e.value,to:e.to,data:e.data,gas:e.gas,gasPrice:e.gasPrice,address:e.address},e.provider,e.address,Number(e.caipNetwork?.id))}}async writeContract(e){if(!e.provider)throw new Error("Provider is undefined");return{hash:await v.writeContract(e,e.provider,e.caipAddress,Number(e.caipNetwork?.id))}}async estimateGas(e){const{provider:r,caipNetwork:t,address:n}=e;if(!r)throw new Error("Provider is undefined");try{return{gas:await v.estimateGas({data:e.data,to:e.to,address:n},r,n,Number(t?.id))}}catch(e){throw new Error("EthersAdapter:estimateGas - Estimate gas failed")}}async getEnsAddress(e){const{name:r,caipNetwork:t}=e;if(t){return{address:await v.getEnsAddress(r,t)}}return{address:""}}parseUnits(e){return v.parseUnits(e.value,e.decimals)}formatUnits(e){return v.formatUnits(e.value,e.decimals)}async syncConnection(e){const{id:r,chainId:t}=e,n=this.connectors.find((e=>e.id===r)),i=n?.provider;if(!i)throw new Error("Provider not found");const a=await i.request({method:"eth_requestAccounts"}),s=await i.request({method:"eth_chainId"});if(this.listenProviderEvents(i),!a[0])throw new Error("No accounts found");if(!n?.type)throw new Error("Connector type not found");return{address:a[0],chainId:Number(s)||Number(t),provider:i,type:n.type,id:r}}async syncConnectors(e){this.ethersConfig=await this.createEthersConfig(e),this.ethersConfig?.EIP6963&&this.listenInjectedConnector(!0);Object.keys(this.ethersConfig||{}).filter((e=>"metadata"!==e&&"EIP6963"!==e)).forEach((r=>{const t="coinbase"===r?"coinbaseWalletSDK":r,n=r===o.oU.CONNECTOR_ID.INJECTED;this.namespace&&this.addConnector({id:t,explorerId:c.L_.ConnectorExplorerIds[t],imageUrl:e?.connectorImages?.[t],name:c.L_.ConnectorNamesMap[t]||"Unknown",imageId:c.L_.ConnectorImageIds[t],type:c.L_.ConnectorTypesMap[t]??"EXTERNAL",info:n?void 0:{rdns:t},chain:this.namespace,chains:[],provider:this.ethersConfig?.[r]})}))}setUniversalProvider(e){this.addConnector(new w.F({provider:e,caipNetworks:this.caipNetworks||[],namespace:"eip155"}))}eip6963EventHandler(e){if(e.detail){const{info:r,provider:t}=e.detail,n=this.connectors?.find((e=>e.name===r?.name));if(!n){const e=c.L_.ConnectorTypesMap[o.oU.CONNECTOR_ID.EIP6963],n=r?.rdns||r?.name||r?.uuid;e&&this.namespace&&n&&this.addConnector({id:n,type:e,imageUrl:r?.icon,name:r?.name||"Unknown",provider:t,info:r,chain:this.namespace,chains:[]})}}}listenInjectedConnector(e){if("undefined"!=typeof window&&e){const e=this.eip6963EventHandler.bind(this);window.addEventListener(c.oU.EIP6963_ANNOUNCE_EVENT,e),window.dispatchEvent(new Event(c.oU.EIP6963_REQUEST_EVENT))}}async connect({id:e,type:r,chainId:t}){const n=this.connectors.find((r=>r.id===e)),i=n?.provider;if(!i)throw new Error("Provider not found");let a,s=[];if("AUTH"===r){const{address:e}=await i.connect({chainId:t,preferredAccountType:d.Hd.state.defaultAccountTypes.eip155});s=[e]}else{if(s=await i.request({method:"eth_requestAccounts"}),a=await i.request({method:"eth_chainId"}),a!==t){const e=this.caipNetworks?.find((e=>e.id===t));if(!e)throw new Error("EthersAdapter:connect - could not find the caipNetwork to switch");try{await this.switchNetwork({caipNetwork:e,provider:i,providerType:r})}catch(e){throw new Error("EthersAdapter:connect - Switch network failed")}}this.listenProviderEvents(i)}return{address:s[0],chainId:Number(t),provider:i,type:r,id:e}}async reconnect(e){const{id:r,chainId:t}=e,n=this.connectors.find((e=>e.id===r));n&&"AUTH"===n.type&&t&&await n.provider.connect({chainId:t,preferredAccountType:d.Hd.state.defaultAccountTypes.eip155})}async getAccounts(e){const r=this.connectors.find((r=>r.id===e.id)),t=r?.provider;if(!t||!r)throw new Error("Provider not found");if(e.id===o.oU.CONNECTOR_ID.AUTH){const e=r.provider,{address:t,accounts:n}=await e.connect();return Promise.resolve({accounts:(n||[{address:t,type:"eoa"}]).map((e=>d.wE.createAccount("eip155",e.address,e.type)))})}return{accounts:(await t.request({method:"eth_requestAccounts"})).map((e=>d.wE.createAccount("eip155",e,"eoa")))}}async disconnect(e){if(!e.provider||!e.providerType)throw new Error("Provider or providerType not provided");switch(e.providerType){case"WALLET_CONNECT":e.provider.session&&e.provider.disconnect();break;case"AUTH":await e.provider.disconnect();break;case"ANNOUNCED":case"EXTERNAL":await this.revokeProviderPermissions(e.provider);break;default:throw new Error("Unsupported provider type")}}async getBalance(e){const r=this.caipNetworks?.find((r=>r.id===e.chainId));if(r&&"eip155"===r.chainNamespace){const t=new n.FR(r.rpcUrls.default.http[0],{chainId:r.id,name:r.name});if(t)try{const n=await t.getBalance(e.address);return{balance:(0,i.ck)(n),symbol:r.nativeCurrency.symbol}}catch(e){return{balance:"",symbol:""}}}return{balance:"",symbol:""}}async getProfile(e){if(1===e.chainId){const r=new a.p("mainnet");return{profileName:await r.lookupAddress(e.address)||void 0,profileImage:await r.getAvatar(e.address)||void 0}}return{profileName:void 0,profileImage:void 0}}listenProviderEvents(e){const r=()=>{this.removeProviderListeners(e),this.emit("disconnect")},t=e=>{e.length>0?this.emit("accountChanged",{address:e[0]}):r()},n=e=>{const r="string"==typeof e?h.$.hexStringToNumber(e):Number(e);this.emit("switchNetwork",{chainId:r})};e.on("disconnect",r),e.on("accountsChanged",t),e.on("chainChanged",n),this.providerHandlers={disconnect:r,accountsChanged:t,chainChanged:n}}removeProviderListeners(e){this.providerHandlers&&(e.removeListener("disconnect",this.providerHandlers.disconnect),e.removeListener("accountsChanged",this.providerHandlers.accountsChanged),e.removeListener("chainChanged",this.providerHandlers.chainChanged),this.providerHandlers=null)}async switchNetwork(e){const{caipNetwork:r,provider:t,providerType:n}=e;if("AUTH"!==n)try{await t.request({method:"wallet_switchEthereumChain",params:[{chainId:h.$.numberToHexString(r.id)}]})}catch(e){if(e.code===s.E1.ERROR_CODE_UNRECOGNIZED_CHAIN_ID||e.code===s.E1.ERROR_CODE_DEFAULT||e?.data?.originalError?.code===s.E1.ERROR_CODE_UNRECOGNIZED_CHAIN_ID)await h.$.addEthereumChain(t,r);else if("ANNOUNCED"===n||"EXTERNAL"===n||"INJECTED"===n)throw new Error("Chain is not supported")}else await super.switchNetwork(e)}getWalletConnectProvider(){return this.connectors.find((e=>"WALLET_CONNECT"===e.type))?.provider}async revokeProviderPermissions(e){try{const r=await e.request({method:"wallet_getPermissions"});r.find((e=>"eth_accounts"===e.parentCapability))&&await e.request({method:"wallet_revokePermissions",params:[{eth_accounts:{}}]})}catch(e){}}async getCapabilities(e){const r=u.A.getProvider(o.oU.CHAIN.EVM);if(!r)throw new Error("Provider is undefined");const t=r.session?.sessionProperties?.capabilities;if(t){const r=v.parseWalletCapabilities(t)[e];if(r)return r}return await r.request({method:"wallet_getCapabilities",params:[e]})}async grantPermissions(e){const r=u.A.getProvider(o.oU.CHAIN.EVM);if(!r)throw new Error("Provider is undefined");return await r.request({method:"wallet_grantPermissions",params:e})}async revokePermissions(e){const r=u.A.getProvider(o.oU.CHAIN.EVM);if(!r)throw new Error("Provider is undefined");return await r.request({method:"wallet_revokePermissions",params:[e]})}}},96540:(e,r,t)=>{e.exports=t(29869)}}]);