@privy-io/react-auth 1.28.0-beta.5 → 1.28.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/index.js CHANGED
@@ -9,7 +9,7 @@ Chain ID: ${t}
9
9
  Nonce: ${a}
10
10
  Issued At: ${i}
11
11
  Resources:
12
- - https://privy.io`;this.wallet=t}get meta(){return{connectorType:this.wallet.connectorType,walletClientType:this.wallet.walletClientType}}async authenticate(){if(!this.api)throw new P("Auth flow has no API instance");try{let{message:t,signature:o}=await this.sign(),r=await this.api.post(Fi(),{message:t,signature:o});return{user:r.user,token:r.token,refresh_token:r.refresh_token,is_new_user:r.is_new_user}}catch(t){throw J(t)}}async link(){if(!this.api)throw new P("Auth flow has no API instance");try{let{message:t,signature:o}=await this.sign();return await this.api.post(Gi(),{message:t,signature:o})}catch(t){throw J(t)}}async sign(){if(!this.api)throw new P("Auth flow has no API instance");if(this.preparedMessage||await this.buildSiweMessage(),!this.preparedMessage)throw new P("Could not prepare SIWE message");let t=await this.wallet.sign(this.preparedMessage);return{message:this.preparedMessage,signature:t}}async buildSiweMessage(){if(!this.api)throw new P("Auth flow has no API instance");let t=this.wallet.address,o=this.wallet.chainId.replace("eip155:",""),r=await this.api.post(Bi(),{address:t});return this.preparedMessage=this.prepareMessage(o,t,r.nonce),this.preparedMessage}prepareMessage(t,o,r){let n=window.location.host,i=window.location.origin,a="By signing, you are proving you own this wallet and logging in. This does not initiate a transaction or cost any fees.",l=new Date().toISOString();return this.createSiweMessage(t,o,n,i,l,r,a)}};var vt=class{constructor(t){this.meta={phoneNumber:t}}async authenticate(){if(!this.api)throw new P("Auth flow has no API instance");if(!this.meta.phoneNumber||!this.meta.smsCode)throw new P("phone number and sms code must be set prior to calling authenticate.");try{let t=qi(),o=await this.api.post(t,{phoneNumber:this.meta.phoneNumber,code:this.meta.smsCode});return{user:o.user,token:o.token,refresh_token:o.refresh_token,is_new_user:o.is_new_user}}catch(t){throw J(t)}}async link(){if(!this.api)throw new P("Auth flow has no API instance");if(!this.meta.phoneNumber||!this.meta.smsCode)throw new P("phone number and sms code must be set prior to calling authenticate.");try{let t=ji();return await this.api.post(t,{phoneNumber:this.meta.phoneNumber,code:this.meta.smsCode})}catch(t){throw J(t)}}async sendSmsCode(t){if(!this.api)throw new P("Auth flow has no API instance");if(t&&(this.meta.phoneNumber=t),!this.meta.phoneNumber)throw new P("phone nNumber must be set when initialzing authentication.");try{let o=$i();return await this.api.post(o,{phoneNumber:this.meta.phoneNumber})}catch(o){throw J(o)}}};function qe(e){return new Date(e*1e3)}function Uc(e){let t=[];for(let o of e){let r=o.type;switch(o.type){case"wallet":let n={address:o.address,type:o.type,verifiedAt:qe(o.verified_at),chainType:o.chain_type,walletClient:o.wallet_client,recoveryMethod:o.recovery_method};t.push(n);break;case"email":let i={address:o.address,type:o.type,verifiedAt:qe(o.verified_at)};t.push(i);break;case"phone":let a={number:o.phoneNumber,type:o.type,verifiedAt:qe(o.verified_at)};t.push(a);break;case"google_oauth":let l={subject:o.subject,email:o.email,name:o.name,type:o.type,verifiedAt:qe(o.verified_at)};t.push(l);break;case"twitter_oauth":let s={subject:o.subject,username:o.username,name:o.name,type:o.type,verifiedAt:qe(o.verified_at)};t.push(s);break;case"discord_oauth":let u={subject:o.subject,username:o.username,email:o.email,type:o.type,verifiedAt:qe(o.verified_at)};t.push(u);break;case"github_oauth":let h={subject:o.subject,username:o.username,name:o.name,email:o.email,type:o.type,verifiedAt:qe(o.verified_at)};t.push(h);break;case"apple_oauth":let C={subject:o.subject,email:o.email,type:o.type,verifiedAt:qe(o.verified_at)};t.push(C);break;default:console.warn(`Unrecognized account type: ${r}. Please consider upgrading the Privy SDK.`)}}return t}function nt(e,t){return e.sort((o,r)=>r.verifiedAt.getTime()-o.verifiedAt.getTime()),e.find(o=>o.type===t)}var $=e=>e==null?void 0:e.linkedAccounts.find(t=>t.type==="wallet"&&t.walletClient==="privy"),Bc=e=>e.linkedAccounts.filter(t=>t.type==="wallet"),Bt=(e,t)=>{var o;return t==="all-users"&&!$(e)||t==="users-without-wallets"&&!((o=Bc(e))!=null&&o.length)};function je(e){if(!e)return null;let t=Uc(e.linked_accounts),o=nt(t,"wallet"),r=nt(t,"email"),n=nt(t,"phone"),i=nt(t,"google_oauth"),a=nt(t,"twitter_oauth"),l=nt(t,"discord_oauth"),s=nt(t,"github_oauth"),u=nt(t,"apple_oauth");return{id:e.id,createdAt:qe(e.created_at),linkedAccounts:t,email:r&&{address:r==null?void 0:r.address},phone:n&&{number:n==null?void 0:n.number},wallet:o&&{address:o.address,chainType:o.chainType,chainId:o.chainId,walletClient:o.walletClient,recoveryMethod:o.recoveryMethod},google:i&&{subject:i.subject,email:i.email,name:i.name},twitter:a&&{subject:a.subject,username:a.username,name:a.name},discord:l&&{subject:l.subject,username:l.username,email:l.email},github:s&&{subject:s.subject,username:s.username,name:s.name,email:s.email},apple:u&&{subject:u.subject,email:u.email}}}import{getAddress as Ua}from"@ethersproject/address";import vd from"eventemitter3";var oa="1.28.0-beta.5";var Ft="4df5e2316331463a9130964bd6078dfa",ra="34357d3c125c2bcf2ce2bc3309d98715",cr="https://auth.privy.io",na=1e4,Re=1400,ia=4500,Cn=oa;var Gt="privy:token",En="privy-token",dr="privy:refresh_token",xn="privy-refresh-token",Po="privy:session_transfer_token",Tn="privy:connectors",Pn="privy:connections";var Te=1;var _n=class{constructor(){this._cache={}}get(t){return this._cache[t]}put(t,o){o!==void 0?this._cache[t]=o:this.del(t)}del(t){delete this._cache[t]}getKeys(){return Object.keys(this._cache)}},An=class{get(t){let o=localStorage.getItem(t);return o===null?void 0:JSON.parse(o)}put(t,o){o!==void 0?localStorage.setItem(t,JSON.stringify(o)):this.del(t)}del(t){localStorage.removeItem(t)}getKeys(){return Object.entries(localStorage).map(([t])=>t)}};function Gc(){return typeof window<"u"&&window.localStorage?new An:new _n}var j=Gc();import{isPossiblePhoneNumber as Hc}from"libphonenumber-js/min";var aa={id:42161,name:"Arbitrum One",network:"arbitrum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://arb-mainnet.g.alchemy.com/v2"],webSocket:["wss://arb-mainnet.g.alchemy.com/v2"]},infura:{http:["https://arbitrum-mainnet.infura.io/v3"],webSocket:["wss://arbitrum-mainnet.infura.io/ws/v3"]},default:{http:["https://arb1.arbitrum.io/rpc"]},public:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{etherscan:{name:"Arbiscan",url:"https://arbiscan.io"},default:{name:"Arbiscan",url:"https://arbiscan.io"}}};var sa={id:421613,name:"Arbitrum Goerli",network:"arbitrum-goerli",nativeCurrency:{name:"Arbitrum Goerli Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://arb-goerli.g.alchemy.com/v2"],webSocket:["wss://arb-goerli.g.alchemy.com/v2"]},infura:{http:["https://arbitrum-goerli.infura.io/v3"],webSocket:["wss://arbitrum-goerli.infura.io/ws/v3"]},default:{http:["https://goerli-rollup.arbitrum.io/rpc"]},public:{http:["https://goerli-rollup.arbitrum.io/rpc"]}},blockExplorers:{etherscan:{name:"Arbiscan",url:"https://goerli.arbiscan.io/"},default:{name:"Arbiscan",url:"https://goerli.arbiscan.io/"}},testnet:!0};var la={id:84531,network:"base-goerli",name:"Base Goerli",nativeCurrency:{name:"Base Goerli",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://goerli.base.org"]},public:{http:["https://goerli.base.org"]}},blockExplorers:{etherscan:{name:"Basescan",url:"https://goerli.basescan.org"},default:{name:"Basescan",url:"https://goerli.basescan.org"}},testnet:!0};var ca={id:42220,name:"Celo",network:"celo",nativeCurrency:{decimals:18,name:"CELO",symbol:"CELO"},rpcUrls:{default:{http:["https://forno.celo.org"]},infura:{http:["https://celo-mainnet.infura.io/v3"]},public:{http:["https://forno.celo.org"]}},blockExplorers:{default:{name:"Celo Explorer",url:"https://explorer.celo.org/mainnet"},etherscan:{name:"CeloScan",url:"https://celoscan.io"}},testnet:!1};var da={id:44787,name:"Alfajores",network:"celo-alfajores",nativeCurrency:{decimals:18,name:"CELO",symbol:"A-CELO"},rpcUrls:{default:{http:["https://alfajores-forno.celo-testnet.org"]},infura:{http:["https://celo-alfajores.infura.io/v3"]},public:{http:["https://alfajores-forno.celo-testnet.org"]}},blockExplorers:{default:{name:"Celo Explorer",url:"https://explorer.celo.org/alfajores"},etherscan:{name:"CeloScan",url:"https://alfajores.celoscan.io/"}},testnet:!0};var pa={id:314,name:"Filecoin Mainnet",network:"filecoin-mainnet",nativeCurrency:{decimals:18,name:"filecoin",symbol:"FIL"},rpcUrls:{default:{http:["https://api.node.glif.io/rpc/v1"]},public:{http:["https://api.node.glif.io/rpc/v1"]}},blockExplorers:{default:{name:"Filfox",url:"https://filfox.info/en"},filscan:{name:"Filscan",url:"https://filscan.io"},filscout:{name:"Filscout",url:"https://filscout.io/en"},glif:{name:"Glif",url:"https://explorer.glif.io"}}};var ua={id:314159,name:"Filecoin Calibration",network:"filecoin-calibration",nativeCurrency:{decimals:18,name:"testnet filecoin",symbol:"tFIL"},rpcUrls:{default:{http:["https://api.calibration.node.glif.io/rpc/v1"]},public:{http:["https://api.calibration.node.glif.io/rpc/v1"]}},blockExplorers:{default:{name:"Filscan",url:"https://calibration.filscan.io"}}};var ma={id:5,network:"goerli",name:"Goerli",nativeCurrency:{name:"Goerli Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://eth-goerli.g.alchemy.com/v2"],webSocket:["wss://eth-goerli.g.alchemy.com/v2"]},infura:{http:["https://goerli.infura.io/v3"],webSocket:["wss://goerli.infura.io/ws/v3"]},default:{http:["https://rpc.ankr.com/eth_goerli"]},public:{http:["https://rpc.ankr.com/eth_goerli"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://goerli.etherscan.io"},default:{name:"Etherscan",url:"https://goerli.etherscan.io"}},testnet:!0};var ha={id:1,network:"homestead",name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://eth-mainnet.g.alchemy.com/v2"],webSocket:["wss://eth-mainnet.g.alchemy.com/v2"]},infura:{http:["https://mainnet.infura.io/v3"],webSocket:["wss://mainnet.infura.io/ws/v3"]},default:{http:["https://cloudflare-eth.com"]},public:{http:["https://cloudflare-eth.com"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://etherscan.io"},default:{name:"Etherscan",url:"https://etherscan.io"}}};var fa={id:10,name:"Optimism",network:"optimism",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://opt-mainnet.g.alchemy.com/v2"],webSocket:["wss://opt-mainnet.g.alchemy.com/v2"]},infura:{http:["https://optimism-mainnet.infura.io/v3"],webSocket:["wss://optimism-mainnet.infura.io/ws/v3"]},default:{http:["https://mainnet.optimism.io"]},public:{http:["https://mainnet.optimism.io"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://optimistic.etherscan.io"},default:{name:"Optimism Explorer",url:"https://explorer.optimism.io"}}};var ya={id:420,name:"Optimism Goerli",network:"optimism-goerli",nativeCurrency:{name:"Goerli Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://opt-goerli.g.alchemy.com/v2"],webSocket:["wss://opt-goerli.g.alchemy.com/v2"]},infura:{http:["https://optimism-goerli.infura.io/v3"],webSocket:["wss://optimism-goerli.infura.io/ws/v3"]},default:{http:["https://goerli.optimism.io"]},public:{http:["https://goerli.optimism.io"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://goerli-optimism.etherscan.io"},default:{name:"Etherscan",url:"https://goerli-optimism.etherscan.io"}},testnet:!0};var ga={id:137,name:"Polygon",network:"matic",nativeCurrency:{name:"MATIC",symbol:"MATIC",decimals:18},rpcUrls:{alchemy:{http:["https://polygon-mainnet.g.alchemy.com/v2"],webSocket:["wss://polygon-mainnet.g.alchemy.com/v2"]},infura:{http:["https://polygon-mainnet.infura.io/v3"],webSocket:["wss://polygon-mainnet.infura.io/ws/v3"]},default:{http:["https://polygon-rpc.com"]},public:{http:["https://polygon-rpc.com"]}},blockExplorers:{etherscan:{name:"PolygonScan",url:"https://polygonscan.com"},default:{name:"PolygonScan",url:"https://polygonscan.com"}}};var va={id:80001,name:"Polygon Mumbai",network:"maticmum",nativeCurrency:{name:"MATIC",symbol:"MATIC",decimals:18},rpcUrls:{alchemy:{http:["https://polygon-mumbai.g.alchemy.com/v2"],webSocket:["wss://polygon-mumbai.g.alchemy.com/v2"]},infura:{http:["https://polygon-mumbai.infura.io/v3"],webSocket:["wss://polygon-mumbai.infura.io/ws/v3"]},default:{http:["https://matic-mumbai.chainstacklabs.com"]},public:{http:["https://matic-mumbai.chainstacklabs.com"]}},blockExplorers:{etherscan:{name:"PolygonScan",url:"https://mumbai.polygonscan.com"},default:{name:"PolygonScan",url:"https://mumbai.polygonscan.com"}},testnet:!0};var pr=[aa,sa,ma,ha,fa,ya,ga,va,ca,da,pa,ua,la];var mr=()=>{let e=window;if(!e.ethereum)return!1;if(ur(window.ethereum,!0))return!0;if(e.ethereum.providers){for(let t of e.ethereum.providers)if(ur(t,!0))return!0}return!1},_o=()=>{let e=window;if(!e.ethereum)return!1;if(ur(window.ethereum,!1))return!0;if(e.ethereum.providers){for(let t of e.ethereum.providers)if(ur(t,!1))return!0}return!1},ur=(e,t)=>e.isMetaMask?e.isMetaMask&&!t?!0:!(e.isBraveWallet&&!e._events&&!e._state||e.isApexWallet||e.isAvalanche||e.isBitKeep||e.isBlockWallet||e.isKuCoinWallet||e.isMathWallet||e.isOkxWallet||e.isOKExWallet||e.isOneInchIOSWallet||e.isOneInchAndroidWallet||e.isOpera||e.isPhantom||e.isPortal||e.isRabby||e.isTokenPocket||e.isTokenary||e.isZerion):!1,Pe=()=>{var e,t;if("phantom"in window){let o=window;if((t=(e=o==null?void 0:o.phantom)==null?void 0:e.ethereum)!=null&&t.isPhantom)return!0}return!1},it=()=>{let e=window;if(!e.ethereum)return!1;if(e.ethereum.isCoinbaseWallet)return!0;if(e.ethereum.providers){for(let t of e.ethereum.providers)if(t.isCoinbaseWallet)return!0}return!1};var ba=e=>!!String(e).toLowerCase().match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/),wa=e=>Hc(String(e),"US"),Ca=(e,t)=>{let o=e.slice(0),r=[];for(;o.length;)r.push(o.splice(0,t));return r},Ht=(e,t=3,o=4)=>{if(!e)return"";let r=2,n=3;if(t+o+r+n>=e.length)return e;let i=e.slice(0,r+t),a=e.slice(e.length-o,e.length);return`${i}...${a}`},zc=e=>new Promise(t=>setTimeout(t,e)),Ea=(e,t={})=>{let o=t.delayMs||40,r=t.maxAttempts||1e3;return new Promise(async(n,i)=>{let a=!1,l=0;for(;!a&&l<r;)e().then(()=>{a=!0,n()},(...s)=>{a=!0,i(...s)}),l+=1,await zc(o);a||i(new Error("Exceeded max attempts before resolving function"))})},hr=(e,t,o={})=>{let r=new URL(t,e);for(let[n,i]of Object.entries(o))r.searchParams.set(n,i);return r.href};var Sn=e=>e.replace(/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g,""),Ao=e=>typeof e=="string"?e:"0x"+e.toString(16);async function xa(e=3e3){let t=!1,o=window;return new Promise(r=>{o.ethereum?n():(window.addEventListener("ethereum#initialized",n,{once:!0}),setTimeout(()=>{n()},e));function n(){if(t)return;t=!0,window.removeEventListener("ethereum#initialized",n);let i=[];mr()&&i.push("metamask"),Pe()&&i.push("phantom"),o.ethereum&&o.ethereum.isBraveWallet&&i.push("brave"),r(i)}})}function kn(e){return`eip155:${String(Number(e))}`}var bt=e=>{var o;let t=pr.find(r=>r.id===e);if(!t)throw new G(`Unsupported chainId ${e}`,4901);return((o=t.rpcUrls.infura)==null?void 0:o.http[0])+`/${Ft}`};import td from"@coinbase/wallet-sdk";import{jsx as Ta,jsxs as Vc}from"react/jsx-runtime";var _e=({style:e,...t})=>Vc("svg",{width:"1024",height:"1024",viewBox:"0 0 1024 1024",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"28px",width:"28px",...e},...t,children:[Ta("rect",{width:"1024",height:"1024",fill:"#0052FF",rx:100,ry:100}),Ta("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z",fill:"white"})]});import{getAddress as lt}from"@ethersproject/address";import{Web3Provider as ka}from"@ethersproject/providers";import{default as ed}from"eventemitter3";import{isHexString as Qc}from"@ethersproject/bytes";import{JsonRpcProvider as _a}from"@ethersproject/providers";import{toUtf8String as Zc}from"@ethersproject/strings";import Jc from"eventemitter3";var $c=["eth_sign","eth_populateTransactionRequest","eth_signTransaction","personal_sign"],Pa=e=>$c.includes(e);import{ErrorCode as qc}from"@ethersproject/logger";var zt=class extends G{constructor(){super("Wallet timeout");this.type="wallet_error"}},Vt=class extends G{constructor(){super("User rejected connection");this.type="wallet_error"}},Le=e=>{if(e instanceof G)return e;if((e==null?void 0:e.code)&&(e==null?void 0:e.reason)){let t=new $t(e);return e.code===qc.ACTION_REJECTED&&(t.details=wt.E4001_USER_REJECTED_REQUEST),t}return e!=null&&e.code?new $t(e):new G("Unknown connector error",e)},Rn=class extends ke{constructor(o,r,n){super(o);this.type="provider_error";this.code=r,this.data=n}},$t=class extends Rn{constructor(o){var i,a,l;let r=o;super(r.message,r.code,r.data);let n=Object.values(wt).find(s=>s.eipCode===r.code);this.details=n||wt.UNKNOWN_ERROR,r.code===-32002&&((i=r.message)!=null&&i.includes("already pending for origin")?(a=r.message)!=null&&a.includes("wallet_requestPermissions")?this.details=wt.E32002_CONNECTION_ALREADY_PENDING:this.details=wt.E32002_REQUEST_ALREADY_PENDING:(l=r.message)!=null&&l.includes("Already processing")&&r.message.includes("eth_requestAccounts")&&(this.details=wt.E32002_WALLET_LOCKED))}},jc={ERROR_USER_EXISTS:{message:"User already exists for this address",detail:"Try another address!",retryable:!1},ERROR_TIMED_OUT:{message:"Wallet request timed out",detail:"Please try connecting again.",retryable:!0},ERROR_WALLET_CONNECTION:{message:"Could not log in with wallet",detail:"Please try connecting again.",retryable:!0},ERROR_USER_REJECTED_CONNECTION:{message:"You rejected the request",detail:"Please try connecting again.",retryable:!0}},Kc={E32002_CONNECTION_ALREADY_PENDING:{eipCode:-32002,message:"Connection request already pending",detail:"Don\u2019t see your wallet modal? Check your other browser windows.",retryable:!1},E32002_REQUEST_ALREADY_PENDING:{eipCode:-32002,message:"Resource request already pending",detail:"Don\u2019t see your wallet modal? Check your other browser windows.",retryable:!1},E32002_WALLET_LOCKED:{eipCode:-32002,message:"Wallet might be locked",detail:"Don\u2019t see your wallet modal? Check your other browser windows.",retryable:!1},E4001_USER_REJECTED_REQUEST:{eipCode:4001,message:"Signature rejected",detail:"Please try signing again.",retryable:!0}},Yc={E4001_DEFAULT_USER_REJECTED_REQUEST:{eipCode:4001,message:"User Rejected Request",detail:"The user rejected the request.",default:!0,retryable:!0},E4100_DEFAULT_UNAUTHORIZED:{eipCode:4100,message:"Unauthorized",detail:"The requested method and/or account has not been authorized by the user.",default:!0,retryable:!1},E4200_DEFAULT_UNSUPPORTED_METHOD:{eipCode:4200,message:"Unsupported Method",detail:"The Provider does not support the requested method.",default:!0,retryable:!1},E4900_DEFAULT_DISCONNECTED:{eipCode:4900,message:"Disconnected",detail:"The Provider is disconnected from all chains.",default:!0,retryable:!0},E4901_DEFAULT_CHAIN_DISCONNECTED:{eipCode:4901,message:"Chain Disconnected",detail:"The Provider is not connected to the requested chain.",default:!0,retryable:!0},E32700_DEFAULT_PARSE_ERROR:{eipCode:-32700,message:"Parse error",detail:"Invalid JSON",default:!0,retryable:!1},E32600_DEFAULT_INVALID_REQUEST:{eipCode:-32600,message:"Invalid request",detail:"JSON is not a valid request object",default:!0,retryable:!1},E32601_DEFAULT_METHOD_NOT_FOUND:{eipCode:-32601,message:"Method not found",detail:"Method does not exist",default:!0,retryable:!1},E32602_DEFAULT_INVALID_PARAMS:{eipCode:-32602,message:"Invalid params",detail:"Invalid method parameters",default:!0,retryable:!1},E32603_DEFAULT_INTERNAL_ERROR:{eipCode:-32603,message:"Internal error",detail:"Internal JSON-RPC error",default:!0,retryable:!0},E32000_DEFAULT_INVALID_INPUT:{eipCode:-32e3,message:"Invalid input",detail:"Missing or invalid parameters",default:!0,retryable:!1},E32001_DEFAULT_RESOURCE_NOT_FOUND:{eipCode:-32001,message:"Resource not found",detail:"Requested resource not found",default:!0,retryable:!1},E32002_DEFAULT_RESOURCE_UNAVAILABLE:{eipCode:-32002,message:"Resource unavailable",detail:"Requested resource not available",default:!0,retryable:!0},E32003_DEFAULT_TRANSACTION_REJECTED:{eipCode:-32003,message:"Transaction rejected",detail:"Transaction creation failed",default:!0,retryable:!0},E32004_DEFAULT_METHOD_NOT_SUPPORTED:{eipCode:-32004,message:"Method not supported",detail:"Method is not implemented",default:!0,retryable:!1},E32005_DEFAULT_LIMIT_EXCEEDED:{eipCode:-32005,message:"Limit exceeded",detail:"Request exceeds defined limit",default:!0,retryable:!1},E32006_DEFAULT_JSON_RPC_VERSION_NOT_SUPPORTED:{eipCode:-32006,message:"JSON-RPC version not supported",detail:"Version of JSON-RPC protocol is not supported",default:!0,retryable:!1}},wt={UNKNOWN_ERROR:{eipCode:0,message:"Unknown error",detail:"Unknown error",retryable:!0},...Yc,...Kc},Ke={...jc,...wt};var Xc=12e4,In=(e=new zt,t=Xc)=>new Promise((o,r)=>setTimeout(()=>{r(e)},t)),z=class{constructor(t){this.removeListener=(t,o)=>{if(this.walletProvider)try{return this.walletProvider.removeListener(t,o)}catch{console.warn("Unable to remove wallet provider listener")}};this.setWalletProvider=t=>{this.walletProvider&&this._subscriptions.forEach(o=>{this.removeListener(o.eventName,o.listener)}),this.walletProvider=t,this._subscriptions.forEach(o=>{var r;(r=this.walletProvider)==null||r.on(o.eventName,o.listener)})};this.walletProvider=t,this._subscriptions=[]}on(t,o){if(this.walletProvider)return this.walletProvider.on(t,o);this._subscriptions.push({eventName:t,listener:o})}async request(t){if(!this.walletProvider)throw new G(`A wallet request of type ${t.method} was made before setting a wallet provider.`);return Promise.race([this.walletProvider.request(t),In()]).catch(o=>{throw Le(o)})}},at=class extends Error{constructor(o,r,n){super(o);this.code=r,this.data=n}},fr=class extends Jc{constructor(o,r,n=1){super();this.walletProxy=o,this.address=r,this.chainId=n,this.provider=new _a(bt(n))}async handleSendTransaction(o){if(!o.params||!Array.isArray(o.params))throw new at(`Invalid params for ${o.method}`,4200);let r=o.params[0];if(!await So()||!this.address)throw new at("Disconnected",4900);return(await Sa(r)).transactionHash}handleSwitchEthereumChain(o){if(!o.params||!Array.isArray(o.params))throw new at(`Invalid params for ${o.method}`,4200);let r;if(typeof o.params[0]=="string")r=o.params[0];else if("chainId"in o.params[0]&&typeof o.params[0].chainId=="string")r=o.params[0].chainId;else throw new at(`Invalid params for ${o.method}`,4200);this.chainId=Number(r),this.provider=new _a(bt(this.chainId)),this.emit("chainChanged",r)}async handlePersonalSign(o){if(!o.params||!Array.isArray(o.params))throw new Error("Invalid params for eth_estimateGas");let r=o.params[0],n=Qc(r)?Zc(r):r;return await Aa(n)}async handleEstimateGas(o){if(!o.params||!Array.isArray(o.params))throw new Error("Invalid params for eth_estimateGas");let r={...o.params[0],chainId:Ao(this.chainId)};return this.provider.send("eth_estimateGas",[r])}async request(o){switch(console.debug("Embedded1193Provider.request() called with args",o),o.method){case"eth_accounts":return this.address?[this.address]:[];case"eth_chainId":return Ao(this.chainId);case"eth_estimateGas":return this.handleEstimateGas(o);case"eth_sendTransaction":return this.handleSendTransaction(o);case"wallet_switchEthereumChain":return this.handleSwitchEthereumChain(o);case"personal_sign":return this.handlePersonalSign(o);default:break}if(Pa(o.method)){let r=await So();if(!r||!this.address)throw new at("Disconnected",4900);try{return(await this.walletProxy.rpc({address:this.address,accessToken:r,request:{method:o.method,params:o.params}})).response.data}catch(n){throw console.error(n),new at("Disconnected",4900)}}else return this.provider.send(o.method,o.params)}async connect(){let o=await So();if(!o||!this.address)return null;try{return(await this.walletProxy.connect({address:this.address,accessToken:o})).address}catch(r){return console.error(r),null}}},Me=class extends z{constructor(o){super(o)}},st=class extends z{constructor(t){super(t)}sendAsync(t,o){throw new Error("sendAsync is no longer supported by EIP-1193. Use the request method instead.")}};var ve=class extends ed{constructor(o){super();this.onAccountsChanged=o=>{this.syncAccounts(o)};this.onChainChanged=o=>{this.wallets.forEach(r=>{r.chainId=kn(o)}),this.emit("walletsUpdated")};this.onDisconnect=()=>{this.connected=!1,this.wallets=[],this.emit("walletsUpdated")};this.onConnect=()=>{this.connected=!0,this.syncAccounts()};this.wallets=[],this.walletClientType=o,this.connected=!1,this.initialized=!1}buildConnectedWallet(o,r){let n=async()=>!!this.wallets.find(i=>lt(i.address)===lt(o));return{address:lt(o),chainId:r,connectedAt:Date.now(),walletClientType:this.walletClientType,connectorType:this.connectorType,isConnected:n,getEthereumProvider:async()=>{if(!await n())throw new G("Wallet is not currently connected.");return this.proxyProvider},getEthersProvider:async()=>{if(!await n())throw new G("Wallet is not currently connected.");return new ka(new Me(this.proxyProvider))},getWeb3jsProvider:async()=>{if(!await n())throw new G("Wallet is not currently connected.");return new st(this.proxyProvider)},sign:async i=>{if(!await n())throw new G("Wallet is not currently connected.");return await this.sign(i)},disconnect:()=>{this.disconnect()}}}async syncAccounts(o){let r=o;if(r===void 0){let l=await this.proxyProvider.request({method:"eth_accounts"});Array.isArray(l)&&(r=l)}if(r===void 0||!Array.isArray(r)||r.length<=0)return;let n=[],i=await this.proxyProvider.request({method:"eth_chainId"}),a=kn(i);for(let l of r)n.find(s=>lt(s.address)===lt(l))||n.push(this.buildConnectedWallet(lt(l),a));yr(n,this.wallets)||(this.wallets=n,this.emit("walletsUpdated"))}async getConnectedWallet(){let o=await this.proxyProvider.request({method:"eth_accounts"});return this.wallets.sort((r,n)=>n.connectedAt-r.connectedAt).find(r=>o.find(n=>lt(n)===lt(r.address)))||null}async isConnected(){let o=await this.proxyProvider.request({method:"eth_accounts"});return Array.isArray(o)&&o.length>0}async sign(o){return await this.connect({showPrompt:!1}),new ka(new Me(this.proxyProvider)).getSigner().signMessage(o)}subscribeListeners(){this.proxyProvider.on("accountsChanged",this.onAccountsChanged),this.proxyProvider.on("chainChanged",this.onChainChanged),this.proxyProvider.on("disconnect",this.onDisconnect),this.proxyProvider.on("connect",this.onConnect)}unsubscribeListeners(){this.proxyProvider.removeListener("accountsChanged",this.onAccountsChanged),this.proxyProvider.removeListener("chainChanged",this.onChainChanged),this.proxyProvider.removeListener("disconnect",this.onDisconnect),this.proxyProvider.removeListener("connect",this.onConnect)}};var od=e=>{let t=`https://mainnet.infura.io/v3/${Ft}`,o=1;return e.makeWeb3Provider(t,o)},gr,vr=class extends ve{constructor(){super("coinbase_wallet");this.connectorType="coinbase_wallet";this.proxyProvider=new z,this.subscribeListeners(),gr||(gr=new td({appName:"Privy",darkMode:!1,headlessMode:!1})),this.proxyProvider.setWalletProvider(od(gr)),this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}async connect(o){return o.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}disconnect(){gr.disconnect()}get walletBranding(){return{name:"Coinbase Wallet",icon:_e}}async promptConnection(){try{let o=await this.proxyProvider.request({method:"eth_requestAccounts"});if(o.length===0)throw new G("Unable to retrieve accounts");this.connected=!0,await this.syncAccounts(o)}catch(o){throw Le(o)}}};import{jsx as Ra}from"react/jsx-runtime";var qt=({style:e,...t})=>Ra("svg",{width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"1.25rem",width:"1.25rem",...e},...t,children:Ra("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.99555 0.929932C-1.12055 1.31799 -0.499722 9.15734 2.17445 8.76915C0.0807959 10.5544 -0.960455 16.6416 6.01654 16.0265C10.6356 15.9489 15.5635 12.2232 15.5635 8.1095C15.5635 2.63748 10.7516 0.929932 7.99555 0.929932ZM9.47052 7.53055C9.47052 8.49933 8.81856 9.28468 8.01433 9.28468C7.2101 9.28468 6.55814 8.49933 6.55814 7.53055C6.55814 6.56176 7.2101 5.77641 8.01433 5.77641C8.81856 5.77641 9.47052 6.56176 9.47052 7.53055ZM12.3171 9.28468C13.1213 9.28468 13.7733 8.49933 13.7733 7.53055C13.7733 6.56176 13.1213 5.77641 12.3171 5.77641C11.5129 5.77641 10.8609 6.56176 10.8609 7.53055C10.8609 8.49933 11.5129 9.28468 12.3171 9.28468Z",fill:t.color||"var(--privy-color-foreground-3)"})});var br=class extends ve{constructor(o){super("privy");this.connectorType="embedded";this.proxyProvider=o,this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}async connect(o){return await this.isConnected()?(await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[Ao((o==null?void 0:o.chainId)||"0x1")]}),this.getConnectedWallet()):null}get walletBranding(){return{name:"Privy Wallet",icon:qt}}disconnect(){this.connected=!1}async promptConnection(){}};import{getAddress as ly}from"@ethersproject/address";import{Web3Provider as dy}from"@ethersproject/providers";import{isMobile as nd}from"react-device-detect";import{jsx as be,jsxs as rd}from"react/jsx-runtime";var ae=({style:e,...t})=>rd("svg",{xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",x:0,y:0,viewBox:"0 0 318.6 318.6",width:"28",height:"28",style:{height:"28px",width:"28px",...e},...t,children:[be("style",{children:".s1{stroke-linecap:round;stroke-linejoin:round}.s2{fill:#e4761b;stroke:#e4761b}.s3{fill:#f6851b;stroke:#f6851b}"}),be("path",{fill:"#e2761b",stroke:"#e2761b",className:"s1",d:"m274.1 35.5-99.5 73.9L193 65.8z"}),be("path",{d:"m44.4 35.5 98.7 74.6-17.5-44.3zm193.9 171.3-26.5 40.6 56.7 15.6 16.3-55.3zm-204.4.9L50.1 263l56.7-15.6-26.5-40.6z",className:"s1 s2"}),be("path",{d:"m103.6 138.2-15.8 23.9 56.3 2.5-2-60.5zm111.3 0-39-34.8-1.3 61.2 56.2-2.5zM106.8 247.4l33.8-16.5-29.2-22.8zm71.1-16.5 33.9 16.5-4.7-39.3z",className:"s1 s2"}),be("path",{fill:"#d7c1b3",stroke:"#d7c1b3",className:"s1",d:"m211.8 247.4-33.9-16.5 2.7 22.1-.3 9.3zm-105 0 31.5 14.9-.2-9.3 2.5-22.1z"}),be("path",{fill:"#233447",stroke:"#233447",className:"s1",d:"m138.8 193.5-28.2-8.3 19.9-9.1zm40.9 0 8.3-17.4 20 9.1z"}),be("path",{fill:"#cd6116",stroke:"#cd6116",className:"s1",d:"m106.8 247.4 4.8-40.6-31.3.9zM207 206.8l4.8 40.6 26.5-39.7zm23.8-44.7-56.2 2.5 5.2 28.9 8.3-17.4 20 9.1zm-120.2 23.1 20-9.1 8.2 17.4 5.3-28.9-56.3-2.5z"}),be("path",{fill:"#e4751f",stroke:"#e4751f",className:"s1",d:"m87.8 162.1 23.6 46-.8-22.9zm120.3 23.1-1 22.9 23.7-46zm-64-20.6-5.3 28.9 6.6 34.1 1.5-44.9zm30.5 0-2.7 18 1.2 45 6.7-34.1z"}),be("path",{d:"m179.8 193.5-6.7 34.1 4.8 3.3 29.2-22.8 1-22.9zm-69.2-8.3.8 22.9 29.2 22.8 4.8-3.3-6.6-34.1z",className:"s3"}),be("path",{fill:"#c0ad9e",stroke:"#c0ad9e",className:"s1",d:"m180.3 262.3.3-9.3-2.5-2.2h-37.7l-2.3 2.2.2 9.3-31.5-14.9 11 9 22.3 15.5h38.3l22.4-15.5 11-9z"}),be("path",{fill:"#161616",stroke:"#161616",className:"s1",d:"m177.9 230.9-4.8-3.3h-27.7l-4.8 3.3-2.5 22.1 2.3-2.2h37.7l2.5 2.2z"}),be("path",{fill:"#763d16",stroke:"#763d16",className:"s1",d:"m278.3 114.2 8.5-40.8-12.7-37.9-96.2 71.4 37 31.3 52.3 15.3 11.6-13.5-5-3.6 8-7.3-6.2-4.8 8-6.1zM31.8 73.4l8.5 40.8-5.4 4 8 6.1-6.1 4.8 8 7.3-5 3.6 11.5 13.5 52.3-15.3 37-31.3-96.2-71.4z"}),be("path",{d:"m267.2 153.5-52.3-15.3 15.9 23.9-23.7 46 31.2-.4h46.5zm-163.6-15.3-52.3 15.3-17.4 54.2h46.4l31.1.4-23.6-46zm71 26.4 3.3-57.7 15.2-41.1h-67.5l15 41.1 3.5 57.7 1.2 18.2.1 44.8h27.7l.2-44.8z",className:"s3"})]});var wr=class extends ve{constructor(){super("metamask");this.connectorType="injected";this.proxyProvider=new z,this.subscribeListeners();let o=window,r=o.ethereum,n=o.ethereum.providers||[];for(let i of n)if(i.isMetaMask){r=i;break}this.proxyProvider.setWalletProvider(r),this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}async connect(o){return o.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}get walletBranding(){return{name:"MetaMask",icon:ae}}disconnect(){console.warn("Metamask does not support programmatic disconnect.")}async promptConnection(){try{!nd&&mr()&&await this.proxyProvider.request({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]});let o=await this.proxyProvider.request({method:"eth_requestAccounts"});if(!o||o.length===0)throw new G("Unable to retrieve accounts");await this.syncAccounts(o)}catch(o){throw Le(o)}}};import{jsx as jt,jsxs as Cr}from"react/jsx-runtime";var Oe=({style:e,...t})=>Cr("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"28px",width:"28px",...e},...t,children:[jt("rect",{width:"28",height:"28",rx:"6",fill:"url(#paint0_linear_1765_9937)"}),jt("path",{d:"M24.0223 14.1704H21.5542C21.5542 9.14083 17.4627 5.06372 12.4151 5.06372C7.43008 5.06372 3.37717 9.04101 3.27798 13.9845C3.17536 19.0945 7.98653 23.5318 13.1154 23.5318H13.7605C18.2822 23.5318 24.3426 20.0047 25.2895 15.7072C25.4643 14.9151 24.8364 14.1704 24.0223 14.1704ZM8.74752 14.3945C8.74752 15.0671 8.19544 15.6172 7.52045 15.6172C6.84545 15.6172 6.29341 15.0669 6.29341 14.3945V12.4165C6.29341 11.7439 6.84545 11.1938 7.52045 11.1938C8.19544 11.1938 8.74752 11.7439 8.74752 12.4165V14.3945ZM13.0083 14.3945C13.0083 15.0671 12.4563 15.6172 11.7813 15.6172C11.1063 15.6172 10.5543 15.0669 10.5543 14.3945V12.4165C10.5543 11.7439 11.1065 11.1938 11.7813 11.1938C12.4563 11.1938 13.0083 11.7439 13.0083 12.4165V14.3945Z",fill:"url(#paint1_linear_1765_9937)"}),Cr("defs",{children:[Cr("linearGradient",{id:"paint0_linear_1765_9937",x1:"14",y1:"0",x2:"14",y2:"28",gradientUnits:"userSpaceOnUse",children:[jt("stop",{stopColor:"#534BB1"}),jt("stop",{offset:"1",stopColor:"#551BF9"})]}),Cr("linearGradient",{id:"paint1_linear_1765_9937",x1:"14.2976",y1:"5.06372",x2:"14.2976",y2:"23.5318",gradientUnits:"userSpaceOnUse",children:[jt("stop",{stopColor:"white"}),jt("stop",{offset:"1",stopColor:"white",stopOpacity:"0.82"})]})]})]});var Er=class extends ve{constructor(){super("phantom");this.connectorType="injected";this.proxyProvider=new z,this.subscribeListeners(),this.proxyProvider.setWalletProvider(window.phantom.ethereum),this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}async connect(o){return o.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}get walletBranding(){return{name:"Phantom",icon:Oe}}disconnect(){console.warn("Phantom does not support programmatic disconnect.")}async promptConnection(){try{let o=await this.proxyProvider.request({method:"eth_requestAccounts"});await this.syncAccounts(o)}catch(o){throw Le(o)}}};import{EthereumProvider as fd}from"@walletconnect/ethereum-provider";import{WalletConnectModal as yd}from"@walletconnect/modal";import{isAndroid as Da,isMobile as gd}from"react-device-detect";import{createContext as ad,useContext as sd,useEffect as Wn,useState as Wa}from"react";import{jsx as id}from"react/jsx-runtime";function Ia(e){return id("link",{rel:"prefetch",href:e.src})}import{jsx as ld,jsxs as cd}from"react/jsx-runtime";var Ye="LANDING",Na=ad({ready:!1,app:null,currentScreen:Ye,lastScreen:Ye,navigate:x,navigateBack:x,setModalData:x}),La=e=>{var h,C,b;let t=e.appConfig,o=e.authenticated,r=e.visible,[n,i]=Wa(e.initialScreen||Ye),[a,l]=Wa(e.initialScreen||Ye);Wn(()=>{o||i(Ye)},[o]),Wn(()=>{r||(l(Ye),i(Ye))},[r]),Wn(()=>{e.initialScreen&&n===Ye&&(i(e.initialScreen),l(e.initialScreen))},[e.initialScreen]);let s=e.initialScreen&&n===Ye?e.initialScreen:n,u={ready:!!(t!=null&&t.id),app:t,data:e.data,setModalData:e.setModalData,currentScreen:s,lastScreen:a,navigate:m=>{l(n),i(m)},navigateBack:()=>{i(a)}};return cd(Na.Provider,{value:u,children:[(typeof((h=t==null?void 0:t.appearance)==null?void 0:h.logo)=="string"||((b=(C=t==null?void 0:t.appearance)==null?void 0:C.logo)==null?void 0:b.type)==="img")&&ld(Ia,{src:typeof t.appearance.logo=="string"?t.appearance.logo:t.appearance.logo.props.src}),e.children]})},v=()=>sd(Na);import{jsx as Kt,jsxs as dd}from"react/jsx-runtime";var Yt=({style:e,...t})=>{let{app:o}=v();return dd("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"28px",width:"28px",...e},...t,children:[Kt("rect",{width:"28",height:"28",rx:"3",fill:(o==null?void 0:o.appearance.palette.colorScheme)==="dark"?"#3396ff":"#141414"}),Kt("g",{clipPath:"url(#clip0_1765_9946)",children:Kt("path",{d:"M8.09448 10.3941C11.3558 7.20196 16.6442 7.20196 19.9055 10.3941L20.2982 10.7782C20.3369 10.8157 20.3677 10.8606 20.3887 10.9102C20.4097 10.9599 20.4206 11.0132 20.4206 11.0671C20.4206 11.121 20.4097 11.1744 20.3887 11.224C20.3677 11.2737 20.3369 11.3186 20.2982 11.3561L18.9554 12.6702C18.9158 12.7086 18.8628 12.7301 18.8077 12.7301C18.7526 12.7301 18.6996 12.7086 18.66 12.6702L18.1198 12.1415C15.8448 9.91503 12.1557 9.91503 9.88015 12.1415L9.30167 12.7075C9.26207 12.7459 9.20909 12.7673 9.15395 12.7673C9.0988 12.7673 9.04582 12.7459 9.00622 12.7075L7.66346 11.3934C7.62475 11.3559 7.59397 11.3109 7.57295 11.2613C7.55193 11.2117 7.5411 11.1583 7.5411 11.1044C7.5411 11.0505 7.55193 10.9971 7.57295 10.9475C7.59397 10.8979 7.62475 10.8529 7.66346 10.8154L8.09448 10.3941ZM22.6829 13.1115L23.8776 14.2814C23.9163 14.319 23.9471 14.3639 23.9681 14.4135C23.9892 14.4632 24 14.5165 24 14.5704C24 14.6243 23.9892 14.6777 23.9681 14.7273C23.9471 14.777 23.9163 14.8219 23.8776 14.8594L18.4893 20.1332C18.4102 20.2101 18.3042 20.2531 18.1938 20.2531C18.0835 20.2531 17.9775 20.2101 17.8984 20.1332L14.0743 16.3901C14.0545 16.3708 14.0279 16.36 14.0003 16.36C13.9726 16.36 13.9461 16.3708 13.9263 16.3901L10.1021 20.1332C10.023 20.2101 9.91703 20.2531 9.8067 20.2531C9.69636 20.2531 9.59038 20.2101 9.51124 20.1332L4.12236 14.8594C4.08365 14.8219 4.05287 14.777 4.03185 14.7273C4.01083 14.6777 4 14.6243 4 14.5704C4 14.5165 4.01083 14.4632 4.03185 14.4135C4.05287 14.3639 4.08365 14.319 4.12236 14.2814L5.31767 13.1115C5.39678 13.0348 5.50265 12.9919 5.61285 12.9919C5.72305 12.9919 5.82892 13.0348 5.90803 13.1115L9.73216 16.8546C9.75194 16.874 9.7785 16.8848 9.80616 16.8848C9.83381 16.8848 9.86037 16.874 9.88015 16.8546L13.7043 13.1115C13.7834 13.0346 13.8894 12.9916 13.9997 12.9916C14.1101 12.9916 14.216 13.0346 14.2952 13.1115L18.1198 16.8546C18.1396 16.874 18.1662 16.8848 18.1938 16.8848C18.2215 16.8848 18.2481 16.874 18.2678 16.8546L22.092 13.1115C22.1711 13.0346 22.2771 12.9916 22.3874 12.9916C22.4977 12.9916 22.6037 13.0346 22.6829 13.1115Z",fill:"white"})}),Kt("defs",{children:Kt("clipPath",{id:"clip0_1765_9946",children:Kt("rect",{width:"20",height:"12.2531",fill:"white",transform:"translate(4 8)"})})})]})};import{isAndroid as pd}from"react-device-detect";var xr=e=>{let t;try{t=new URL(e).hostname}catch{return}for(let[o,r]of Object.entries(ud))if(r.hostname===t)return{walletClientType:o,entry:r}};var ud={metamask:{id:"c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96",displayName:"MetaMask",image_id:"5195e9db-94d8-4579-6f11-ef553be95100",hostname:"metamask.io",mobile:{native:"metamask:"}},trust:{id:"4622a2b2d6af1c9844944291e5e7351a6aa24cd7b23099efac1b2fd875da31a0",displayName:"Trust",image_id:"0528ee7e-16d1-4089-21e3-bbfb41933100",hostname:"trustwallet.com",mobile:{universal:"https://link.trustwallet.com"}},safe:{id:"225affb176778569276e484e1b92637ad061b01e13a048b35a9d280c3b58970f",displayName:"Safe",image_id:"a1cb2777-f8f9-49b0-53fd-443d20ee0b00",hostname:"safe.global",mobile:{universal:"https://app.safe.global/"}},rainbow:{id:"1ae92b26df02f0abca6304df07debccd18262fdf5fe82daa81593582dac9a369",displayName:"Rainbow",image_id:"7a33d7f1-3d12-4b5c-f3ee-5cd83cb1b500",hostname:"rainbow.me",mobile:{universal:"https://rnbwapp.com"}},uniswap:{id:"c03dfee351b6fcc421b4494ea33b9d4b92a984f87aa76d1663bb28705e95034a",displayName:"Uniswap",image_id:"bff9cf1f-df19-42ce-f62a-87f04df13c00",hostname:"uniswap.org",mobile:{universal:"https://uniswap.org/app"}},zerion:{id:"ecc4036f814562b41a5268adc86270fba1365471402006302e70169465b7ac18",displayName:"Zerion",image_id:"f216b371-96cf-409a-9d88-296392b85800",hostname:"zerion.io",mobile:{universal:"https://wallet.zerion.io"}},argent:{id:"bc949c5d968ae81310268bf9193f9c9fb7bb4e1283e1284af8f2bd4992535fd6",displayName:"Argent",image_id:"215158d2-614b-49c9-410f-77aa661c3900",hostname:"www.argent.xyz",mobile:{universal:"https://www.argent.xyz/app"}},spot:{id:"74f8092562bd79675e276d8b2062a83601a4106d30202f2d509195e30e19673d",displayName:"Spot",image_id:"1bf33a89-b049-4a1c-d1f6-4dd7419ee400",hostname:"www.spot-wallet.com",mobile:{universal:"https://spot.so"}},omni:{id:"afbd95522f4041c71dd4f1a065f971fd32372865b416f95a0b1db759ae33f2a7",displayName:"Omni",image_id:"2cd67b4c-282b-4809-e7c0-a88cd5116f00",hostname:"omni.app",mobile:{universal:"https://links.omni.app"}},cryptocom:{id:"f2436c67184f158d1beda5df53298ee84abfc367581e4505134b5bcf5f46697d",displayName:"Crypto.com",image_id:"7c5ff577-a68d-49c5-02cd-3d83637b0b00",hostname:"crypto.com",mobile:{universal:"https://wallet.crypto.com"}},blockchain:{id:"84b43e8ddfcd18e5fcb5d21e7277733f9cccef76f7d92c836d0e481db0c70c04",displayName:"Blockchain",image_id:"6f913b80-86c0-46f9-61ca-cc90a1805900",hostname:"www.blockchain.com",mobile:{universal:"https://www.blockchain.com"}},safepal:{id:"0b415a746fb9ee99cce155c2ceca0c6f6061b1dbca2d722b3ba16381d0562150",displayName:"SafePal",image_id:"252753e7-b783-4e03-7f77-d39864530900",hostname:"safepal.com",mobile:{universal:"https://link.safepal.io"}},bitkeep:{id:"38f5d18bd8522c244bdd70cb4a68e0e718865155811c043f052fb9f1c51de662",displayName:"BitKeep",image_id:"3f7075d0-4ab7-4db5-404d-3e4c05e6fe00",hostname:"bitkeep.com",mobile:{universal:"https://bkapp.vip"}},zengo:{id:"9414d5a85c8f4eabc1b5b15ebe0cd399e1a2a9d35643ab0ad22a6e4a32f596f0",displayName:"ZenGo",image_id:"cfc07342-23ea-4f3f-f071-ec9d2cd86b00",hostname:"zengo.com",mobile:{universal:"https://get.zengo.com/"}},"1inch":{id:"c286eebc742a537cd1d6818363e9dc53b21759a1e8e5d9b263d0c03ec7703576",displayName:"1inch",image_id:"52b1da3c-9e72-40ae-5dac-6142addd9c00",hostname:"wallet.1inch.io",mobile:{universal:"https://wallet.1inch.io/wc/"}},binance:{id:"8a0ee50d1f22f6651afcae7eb4253e52a3310b90af5daef78a8c4929a9bb99d4",displayName:"Binance",image_id:"ebac7b39-688c-41e3-7912-a4fefba74600",hostname:"www.binance.com",mobile:{universal:"https://app.binance.com/cedefi"}},exodus:{id:"e9ff15be73584489ca4a66f64d32c4537711797e30b6660dbcb71ea72a42b1f4",displayName:"Exodus",image_id:"4c16cad4-cac9-4643-6726-c696efaf5200",hostname:"exodus.com",mobile:{universal:"https://exodus.com/m"}},mew_wallet:{id:"f5b4eeb6015d66be3f5940a895cbaa49ef3439e518cd771270e6b553b48f31d2",displayName:"MEW wallet",image_id:"e2024511-2c9b-46d7-3111-52df3d241700",hostname:"mewwallet.com",mobile:{universal:"https://mewwallet.com"}},alphawallet:{id:"138f51c8d00ac7b9ac9d8dc75344d096a7dfe370a568aa167eabc0a21830ed98",displayName:"AlphaWallet",image_id:"5b1cddfb-056e-4e78-029a-54de5d70c500",hostname:"alphawallet.com",mobile:{universal:"https://aw.app"}},keyring_pro:{id:"47bb07617af518642f3413a201ec5859faa63acb1dd175ca95085d35d38afb83",displayName:"KEYRING PRO",image_id:"dda0f0fb-34e8-4a57-dcea-b008e7d1ff00",hostname:"keyring.app",mobile:{universal:"https://keyring.app/"}},mathwallet:{id:"7674bb4e353bf52886768a3ddc2a4562ce2f4191c80831291218ebd90f5f5e26",displayName:"MathWallet",image_id:"26a8f588-3231-4411-60ce-5bb6b805a700",hostname:"mathwallet.org",mobile:{universal:"https://www.mathwallet.org"}},unstoppable:{id:"8308656f4548bb81b3508afe355cfbb7f0cb6253d1cc7f998080601f838ecee3",displayName:"Unstoppable",image_id:"4725dda0-4471-4d0f-7adf-6bbe8b929c00",hostname:"unstoppabledomains.com",mobile:{universal:"https://unstoppabledomains.com/mobile"}},obvious:{id:"031f0187049b7f96c6f039d1c9c8138ff7a17fd75d38b34350c7182232cc29aa",displayName:"Obvious",image_id:"61abe2ca-b06d-4a8b-de3e-8326f523e900",hostname:"obvious.technology",mobile:{universal:"https://wallet.obvious.technology"}},ambire:{id:"2c81da3add65899baeac53758a07e652eea46dbb5195b8074772c62a77bbf568",displayName:"Ambire",image_id:"c39b3a16-1a38-4588-f089-cb7aeb584700",hostname:"www.ambire.com",mobile:{universal:"https://mobile.ambire.com"}},internet_money_wallet:{id:"dd43441a6368ec9046540c46c5fdc58f79926d17ce61a176444568ca7c970dcd",displayName:"Internet Money Wallet",image_id:"204b2240-5ce4-4996-6ec4-f06a22726900",hostname:"internetmoney.io",mobile:{universal:"https://internetmoney.io"}},coin98:{id:"2a3c89040ac3b723a1972a33a125b1db11e258a6975d3a61252cd64e6ea5ea01",displayName:"Coin98",image_id:"fc460647-ea95-447a-99f0-1bff8fa4be00",hostname:"coin98.com",mobile:{universal:"https://coin98.services"}},abc_wallet:{id:"b956da9052132e3dabdcd78feb596d5194c99b7345d8c4bd7a47cabdcb69a25f",displayName:"ABC Wallet",image_id:"f9854c79-14ba-4987-42e1-4a82abbf5700",hostname:"myabcwallet.io",mobile:{universal:"https://abcwalletconnect.page.link"}},arculus_wallet:{id:"0e4915107da5b3408b38e248f7a710f4529d54cd30e9d12ff0eb886d45c18e92",displayName:"Arculus Wallet",image_id:"f78dab27-7165-4a3d-fdb1-fcff06c0a700",hostname:"www.getarculus.com",mobile:{universal:"https://gw.arculus.co/app"}},haha:{id:"719bd888109f5e8dd23419b20e749900ce4d2fc6858cf588395f19c82fd036b3",displayName:"HaHa",image_id:"79285c9f-2630-451e-0680-c71b42fb7400",hostname:"www.haha.me",mobile:{universal:"https://haha.me"}},cling_wallet:{id:"942d0e22a7e6b520b0a03abcafc4dbe156a1fc151876e3c4a842f914277278ef",displayName:"Cling Wallet",image_id:"2d8006c3-852b-458a-d6b0-916c5ba76800",hostname:"clingon.io",mobile:{universal:"https://cling.carrieverse.com/apple-app-site-association"}},broearn:{id:"8ff6eccefefa7506339201bc33346f92a43118d6ff7d6e71d499d8187a1c56a2",displayName:"Broearn",image_id:"339b9e9d-e2a7-46eb-4ed3-272321257a00",hostname:"www.broearn.com",mobile:{universal:"https://www.broearn.com/link/wallet/"}},copiosa:{id:"07f99a5d9849bb049d74830012b286f8b238e72b0337933ef22b84947409db80",displayName:"Copiosa",image_id:"cae1be94-9f53-4eba-b915-f6e381d5a500",hostname:"copiosa.io",mobile:{universal:"https://copiosa.io/action/"}},burrito_wallet:{id:"8821748c25de9dbc4f72a691b25a6ddad9d7df12fa23333fd9c8b5fdc14cc819",displayName:"Burrito Wallet",image_id:"7eec7187-3f48-4fda-53bb-b0ad55749a00",hostname:"burritowallet.com",mobile:{universal:"https://burritowallet.com/wc?uri="}},enjin_wallet:{id:"bdc9433ffdaee55d31737d83b931caa1f17e30666f5b8e03eea794bac960eb4a",displayName:"Enjin Wallet",image_id:"add9626b-a5fa-4c12-178c-e5584e6dcd00",hostname:"enjin.io",mobile:{universal:"https://deeplink.wallet.enjin.io/"}},plasma_wallet:{id:"cbe13eb482c76f1fa401ff4c84d9acd0b8bc9af311ca0620a0b192fb28359b4e",displayName:"Plasma Wallet",image_id:"c268e78d-ffb0-4c8b-5cad-04c3add48500",hostname:"plasma-wallet.com",mobile:{universal:"https://plasma-wallet.com"}},avacus:{id:"94f785c0c8fb8c4f38cd9cd704416430bcaa2137f27e1468782d624bcd155a43",displayName:"Avacus",image_id:"a7106965-91cc-4a73-4688-c5c72ae0ed00",hostname:"avacus.cc",mobile:{universal:"https://avacus.app.link"}},bee:{id:"2cca8c1b0bea04ba37dee4017991d348cdb7b826804ab2bd31073254f345b715",displayName:"Bee",image_id:"f90bc33f-f085-40cf-7538-fae5ae84f900",hostname:"www.beewallet.app",mobile:{universal:"https://beewallet.app/wc"}},pitaka:{id:"14e5d957c6eb62d3ee8fc6239703ac2d537d7e3552154836ca0beef775f630bc",displayName:"Pitaka",image_id:"691c0716-5213-4b99-e837-079268313800",hostname:"pitaka.io",mobile:{universal:"https://app.pitaka.io"}},pltwallet:{id:"576c90ceaea34f29ff0104837cf2b2e23d201be43be1433feeb18d375430e1fd",displayName:"PLTwallet",image_id:"a5d9dd15-8cef-42de-8bed-09e01a8b0200",hostname:"pltwallet.io",mobile:{universal:"https://pltwallet.io/"}},minerva:{id:"49bb9d698dbdf2c3d4627d66f99dd9fe90bba1eec84b143f56c64a51473c60bd",displayName:"Minerva",image_id:"b57b2163-1bd8-4f6b-3311-470767e6d200",hostname:"minerva.digital",mobile:{universal:"https://minerva.digital"}},kryptogo:{id:"19418ecfd44963883e4d6abca1adeb2036f3b5ffb9bee0ec61f267a9641f878b",displayName:"KryptoGO",image_id:"3ccbd966-97e8-45a0-1ceb-6141a8978e00",hostname:"kryptogo.com",mobile:{universal:"https://kryptogo.page.link"}},prema:{id:"5b8e33346dfb2a532748c247876db8d596734da8977905a27b947ba1e2cf465b",displayName:"PREMA",image_id:"6487869b-1165-4f30-aa3a-115665be8300",hostname:"premanft.com",mobile:{universal:"https://premanft.com"}},slingshot:{id:"d23de318f0f56038c5edb730a083216ff0cce00c1514e619ab32231cc9ec484b",displayName:"Slingshot",image_id:"10c75467-6612-48ad-b97b-63985e922200",hostname:"slingshot.finance",mobile:{universal:"https://app.slingshot.finance"}},kriptonio:{id:"50df7da345f84e5a79aaf617df5167335a4b6751626df2e8a38f07029b3dde7b",displayName:"Kriptonio",image_id:"363fae03-882a-4d81-a721-6e6f6e9ac500",hostname:"kriptonio.com",mobile:{universal:"https://app.kriptonio.com/mobile"}},timeless:{id:"9751385960bca290c13b443155288f892f62ee920337eda8c5a8874135daaea8",displayName:"Timeless",image_id:"32e89601-0490-42fc-0cc4-8627d62a2000",hostname:"timelesswallet.xyz",mobile:{universal:"https://timelesswallet.xyz"}},secux:{id:"6464873279d46030c0b6b005b33da6be5ed57a752be3ef1f857dc10eaf8028aa",displayName:"SecuX",image_id:"98183be0-3125-45ee-a6b6-fbd47ebefd00",hostname:"secuxtech.com",mobile:{universal:"https://wsweb.secuxtech.com"}},bitizen:{id:"41f20106359ff63cf732adf1f7dc1a157176c9b02fd266b50da6dcc1e9b86071",displayName:"Bitizen",image_id:"75dd1471-77e9-4811-ce57-ec8fc980ec00",hostname:"bitizen.org",mobile:{universal:"https://bitizen.org/wallet"}},blocto:{id:"14e7176536cb3706e221daaa3cfd7b88b7da8c7dfb64d1d241044164802c6bdd",displayName:"Blocto",image_id:"374258d3-c749-4f37-7815-77e61f798c00",hostname:"blocto.io",mobile:{universal:"https://blocto.app"}},safemoon:{id:"a0e04f1086aac204d4ebdd5f985c12ed226cd0006323fd8143715f9324da58d1",displayName:"SafeMoon",image_id:"ea0140c7-787c-43a4-838f-d5ab6a342000",hostname:"safemoon.com",mobile:{universal:"https://safemoon.com/wc"}}},Ma=(e,t="md")=>`https://registry.walletconnect.com/v2/logo/${t}/${e}`;function md(e){return{name:e.displayName||"",universalLink:e.mobile.universal||"",deepLink:e.mobile.native||""}}function hd(e,t){let o=encodeURIComponent(e);return t.universalLink?`${t.universalLink}/wc?uri=${o}`:t.deepLink?`${t.deepLink}${t.deepLink.endsWith(":")?"//":"/"}wc?uri=${e}`:""}function Oa(e,t){return pd?e:hd(e,md(t))}var ko=class extends ve{constructor(o,r){super(r||"unknown");this.connectorType="wallet_connect_v2";this.walletConnectCloudProjectId=o,this.proxyProvider=new z,this.createProvider().then(n=>{var i,a;if(this.provider=n,this.proxyProvider.setWalletProvider(n),this.subscribeListeners(),n.session){if((i=this.walletProvider.session)!=null&&i.peer.metadata.url){let l=xr((a=this.walletProvider.session)==null?void 0:a.peer.metadata.url);this.walletEntry=l==null?void 0:l.entry,this.walletClientType=(l==null?void 0:l.walletClientType)||"unknown"}this.connected=!0,this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}else this.emit("initialized"),this.initialized=!0}),this.modal=new yd({projectId:this.walletConnectCloudProjectId}),this.modal.subscribeModal(n=>{!n.open&&!this.walletProvider.session&&this.onQrModalClosed&&this.onQrModalClosed()})}async connect(o){return o.showPrompt&&await this.promptConnection(),this.getConnectedWallet()}async isConnected(){return this.walletProvider.connected}get walletBranding(){var o,r,n;return this.walletEntry?{name:this.walletEntry.displayName,icon:this.walletClientType==="metamask"?ae:Ma(this.walletEntry.image_id)}:{name:Sn(((o=this.walletProvider.session)==null?void 0:o.peer.metadata.name)||"")||"WalletConnect",icon:((n=(r=this.walletProvider.session)==null?void 0:r.peer.metadata.icons)==null?void 0:n[0])||Yt}}async resetConnection(){await this.isConnected()&&(await this.walletProvider.disconnect(),this.walletEntry=void 0)}async promptConnection(){if(!!this.provider)return new Promise((o,r)=>{let n=()=>{r(new Vt)};this.onQrModalClosed=n,(async()=>{var s,u;let a="",l=await Promise.race([this.walletProvider.enable(),In()]);if(l.length>0&&(a=l[0]),!a||a==="")throw new G("Unable to retrieve address");if((s=this.walletProvider.session)!=null&&s.peer.metadata.url){let h=xr((u=this.walletProvider.session)==null?void 0:u.peer.metadata.url);this.walletEntry=h==null?void 0:h.entry,this.walletClientType=(h==null?void 0:h.walletClientType)||"unknown"}this.connected=!0,await this.syncAccounts(l),o()})().catch(a=>{if(a){r(Le(a));return}r(new G("Unknown error during connection"))}).finally(()=>this.modal.closeModal())})}disconnect(){this.walletProvider.disconnect().then(()=>this.onDisconnect()).catch(()=>console.warn("Unable to disconnect Wallet Connect provider"))}get walletProvider(){return this.proxyProvider.walletProvider}setWalletProvider(o){this.proxyProvider.setWalletProvider(o)}async createProvider(){var n,i;let o={};for(let a of pr){let l=(i=(n=a.rpcUrls.infura)==null?void 0:n.http)==null?void 0:i[0];l&&(o[a.id]=l+"/"+Ft)}let r=await fd.init({projectId:this.walletConnectCloudProjectId,chains:[1],rpcMap:o,showQrModal:!1});return r.on("display_uri",a=>{if(gd&&this.walletEntry){let s=Oa(a,this.walletEntry);Da?window.open(s,"_self"):window.open(s,"_self","noopener,noreferrer")}else Da?window.open(a,"_self"):this.modal.openModal({uri:a})}),r.on("connect",()=>{var a,l;if(this.modal.closeModal(),(a=r.session)!=null&&a.peer.metadata.url){let s=xr((l=r.session)==null?void 0:l.peer.metadata.url);this.walletEntry=s==null?void 0:s.entry,this.walletClientType=(s==null?void 0:s.walletClientType)||"unknown"}}),r}async enableProvider(){return this.walletProvider.connected?Promise.resolve(this.walletProvider.accounts):await this.walletProvider.enable()}};var Nn=e=>{let t=localStorage.getItem("-walletlink:https://www.walletlink.org:Addresses");return t?!!(e==null?void 0:e.linkedAccounts.filter(r=>r.type=="wallet"&&r.address===Ua(t)).length):!1},Ro=class extends vd{constructor(o){super();this.getEthereumProvider=()=>{let o=this.wallets[0],r=this.walletConnectors.find(n=>n.wallets.find(i=>i.address===(o==null?void 0:o.address)));return!o||!r?new z:r.proxyProvider};this.walletConnectCloudProjectId=o,this.walletConnectors=[],this.initialized=!1,this.storedConnections=this.loadConnectionHistory()}get wallets(){let o=new Set,r=this.walletConnectors.flatMap(i=>i.wallets).sort((i,a)=>i.connectedAt&&a.connectedAt?a.connectedAt-i.connectedAt:0).filter(i=>{let a=`${i.address}${i.walletClientType}${i.connectorType}`;return o.has(a)?!1:(o.add(a),!0)}),n=r.findIndex(i=>i.address===(this.activeWallet?this.activeWallet:"unknown"));return n>=0&&r.unshift(r.splice(n,1)[0]),r}initialize(){this.initialized||(j.get(Tn)&&(j.getKeys().forEach(o=>{o.startsWith("walletconnect")&&j.del(o)}),j.del(Tn)),xa().then(o=>o.forEach(r=>{switch(r){case"metamask":this.createWalletConnector("injected","metamask");break;case"phantom":this.createWalletConnector("injected","phantom");break;case"unknown":default:break}})),(it()||j.getKeys().find(o=>o.startsWith("-walletlink")))&&this.createWalletConnector("coinbase_wallet","coinbase_wallet"),this.createWalletConnector("wallet_connect_v2","unknown"),this.initialized=!0)}findWalletConnector(o,r){return o==="wallet_connect_v2"?this.walletConnectors.find(n=>n.connectorType===o)||null:this.walletConnectors.find(n=>n.connectorType===o&&n.walletClientType===r)||null}onInitialized(o){o.wallets.forEach(r=>{let n=this.storedConnections.find(i=>i.address===r.address&&i.connectorType===r.connectorType&&i.walletClientType===r.walletClientType);n&&(r.connectedAt=n.connectedAt)}),this.saveConnectionHistory(),this.emit("walletsUpdated")}onWalletsUpdated(o){o.initialized&&(this.saveConnectionHistory(),this.emit("walletsUpdated"))}addEmbeddedWalletConnector(o,r){if(!this.findWalletConnector("embedded","privy")){let i=new fr(o,r),a=new br(i);this.addWalletConnector(a)}}removeEmbeddedWalletConnector(){let o=this.findWalletConnector("embedded","privy");if(o){let r=this.walletConnectors.indexOf(o);this.walletConnectors.splice(r,1),this.saveConnectionHistory(),this.emit("walletsUpdated")}}async createWalletConnector(o,r){let n=this.findWalletConnector(o,r);if(n)return n instanceof ko&&await n.resetConnection(),n;let a=(()=>{switch(o){case"injected":switch(r){case"phantom":return Pe()?new Er:null;case"metamask":default:return _o()?new wr:null}case"coinbase_wallet":return new vr;case"wallet_connect_v2":return new ko(this.walletConnectCloudProjectId)}})();return a&&this.addWalletConnector(a),a||null}addWalletConnector(o){this.walletConnectors.push(o),o.on("initialized",()=>this.onInitialized(o)),o.on("walletsUpdated",()=>this.onWalletsUpdated(o))}loadConnectionHistory(){let o=a=>a&&typeof a.address=="string"&&typeof a.connectorType=="string"&&typeof a.walletClientType=="string"&&typeof a.connectedAt=="number",r=j.get(Pn);return r&&Array.isArray(r)&&r.map(a=>o(a)).every(Boolean)?r:[]}saveConnectionHistory(){let o=this.wallets.map(r=>({address:r.address,connectorType:r.connectorType,walletClientType:r.walletClientType,connectedAt:r.connectedAt}));j.put(Pn,o)}async activeWalletSign(o){let r=this.wallets,n=r.length>0?r[0]:null;return n?n.sign(o):null}setActiveWallet(o){this.activeWallet=Ua(o),this.emit("walletsUpdated")}};function yr(e,t){if(e.length!==t.length)return!1;for(let o=0;o<e.length;o++){let r=e[o],n=t[o];if((r==null?void 0:r.address)!==(n==null?void 0:n.address)||(r==null?void 0:r.chainId)!==(n==null?void 0:n.chainId)||(r==null?void 0:r.connectorType)!==(n==null?void 0:n.connectorType)||(r==null?void 0:r.connectedAt)!==(n==null?void 0:n.connectedAt)||(r==null?void 0:r.walletClientType)!==(n==null?void 0:n.walletClientType)||(r==null?void 0:r.isConnected)!==(n==null?void 0:n.isConnected)||(r==null?void 0:r.linked)!==(n==null?void 0:n.linked))return!1}return!0}import{ofetch as bd}from"ofetch";var wd=[sr(),lr()],Tr=class{constructor(t,o,r){this.appId=t,this.sdkVersion=Cn,this.client=o,this.defaults=r,this.fallbackApiUrl=o.fallbackApiUrl,this.baseFetch=bd.create({baseURL:this.defaults.baseURL,credentials:"include",onRequest:async({request:n,options:i})=>{let a=new Headers(i.headers);a.set("privy-app-id",this.appId),a.set("privy-client",`react-auth:${this.sdkVersion}`);let l=!wd.includes(n.toString());if(!a.has("authorization")&&l){let s=await this.client.getAccessToken();s!==null&&a.set("authorization",`Bearer ${s}`)}i.headers=a,i.signal||(i.signal=AbortSignal.timeout(this.defaults.timeout))},onRequestError:({error:n})=>{if(n instanceof DOMException&&n.name==="AbortError")throw new ar}})}async get(t,o){try{return await this.baseFetch(t,o)}catch(r){throw J(r)}}async post(t,o,r){try{return await this.baseFetch(t,{method:"POST",...o?{body:o}:{},...r})}catch(n){throw J(n)}}async delete(t,o){try{return await this.baseFetch(t,{method:"DELETE",...o})}catch(r){throw J(r)}}};import Pr from"js-cookie";function Ba(e){return e instanceof yt?"email":e instanceof vt?"sms":e instanceof gt?"siwe":e instanceof rt?e.meta.provider:null}var ct=class{constructor(t){this.promise=null;this.fn=t}execute(t){return this.promise===null&&(this.promise=(async()=>{try{return await this.fn(t)}finally{this.promise=null}})()),this.promise}};import*as Fa from"jose";var De=class{static parse(t){try{return new De(t)}catch{return null}}constructor(t){this.value=t,this._decoded=Fa.decodeJwt(t)}get subject(){return this._decoded.sub}get expiration(){return this._decoded.exp}get issuer(){return this._decoded.iss}get audience(){return this._decoded.aud}isExpired(t=0){let o=Date.now(),r=(this.expiration-t)*1e3;return o>=r}};var Cd=30,_r=class{constructor(){this.authenticateOnce=new ct(async t=>this._authenticate(t)),this.linkOnce=new ct(async t=>this._link(t)),this.refreshOnce=new ct(this._refresh.bind(this)),this.destroyOnce=new ct(this._destroy.bind(this)),this.forkSessionOnce=new ct(this._forkSession.bind(this))}get token(){try{let t=j.get(Gt);return typeof t=="string"?new De(t).value:null}catch(t){return console.error(t),this.destroyLocalState(),null}}get refreshToken(){try{let t=j.get(dr);return typeof t=="string"?t:null}catch(t){return console.error(t),this.destroyLocalState(),null}}get forkedToken(){try{let t=j.get(Po);return typeof t=="string"?t:null}catch(t){return console.error(t),this.destroyLocalState(),null}}hasRefreshCredentials(){return typeof this.token=="string"&&typeof this.refreshToken=="string"}hasRecoveryCredentials(){return typeof this.forkedToken=="string"}hasActiveToken(){let t=De.parse(this.token);return t!==null&&!t.isExpired(Cd)}authenticate(t){return this.authenticateOnce.execute(t)}link(t){return this.linkOnce.execute(t)}refresh(){return this.refreshOnce.execute()}forkSession(){return this.forkSessionOnce.execute()}destroy(){return this.destroyOnce.execute()}async _authenticate(t){try{let{token:o,refresh_token:r,user:n,is_new_user:i}=await t.authenticate();this.storeToken(o),this.storeRefreshToken(r);let a=Ba(t);return a&&this.client&&this.client.createAnalyticsEvent("sdk_authenticate",{method:a,isNewUser:i}),a==="siwe"&&this.client&&this.client.createAnalyticsEvent("sdk_authenticate_siwe",{connectorType:t.meta.connectorType,walletClientType:t.meta.walletClientType}),{user:je(n),isNewUser:i}}catch(o){throw console.warn("Error authenticating session"),xe(o)}}async _link(t){try{let o=await t.link();return je(o)}catch(o){throw console.warn("Error linking account"),xe(o)}}async _refresh(){if(!this.api)throw new P("Session has no API instance");if(!this.client)throw new P("Session has no PrivyClient instance");await this.client.getAccessToken({disableAutoRefresh:!0});let t=this.token,o=this.refreshToken,r=this.forkedToken;try{let n;if(t&&o)n=await this.api.post(sr(),{refresh_token:o},{headers:{authorization:`Bearer ${t}`}}),r&&this.clearForkedToken();else if(r)n=await this.api.post(lr(),{refresh_token:r}),this.clearForkedToken();else return null;return this.storeToken(n.token),this.storeRefreshToken(n.refresh_token),je(n.user)}catch(n){if(n instanceof Ut&&n.status===400&&n.message==="Invalid auth token")return this.destroyLocalState(),null;throw xe(n)}}async _destroy(){var t;try{await((t=this.api)==null?void 0:t.post(Di(),{refresh_token:this.refreshToken}))}catch{console.warn("Error destroying session")}this.destroyLocalState()}async _forkSession(){if(!this.api)throw new P("Session has no API instance");let t=this.refreshToken;try{let o=await this.api.post(Ui(),{refresh_token:t});return this.storeToken(o.token),this.storeRefreshToken(o.refresh_token),o.new_session_refresh_token}catch(o){throw xe(o)}}destroyLocalState(){this.storeToken(null),this.storeRefreshToken(null),this.clearForkedToken()}storeToken(t){var o;if(typeof t=="string"){j.put(Gt,t);let r=(o=De.parse(t))==null?void 0:o.expiration;Pr.set(En,t,{sameSite:"Strict",secure:!0,expires:r?new Date(r*1e3):void 0})}else j.del(Gt),Pr.remove(En)}storeRefreshToken(t){typeof t=="string"?(j.put(dr,t),Pr.set(xn,t,{sameSite:"Strict",secure:!0,expires:30})):(j.del(dr),Pr.remove(xn))}clearForkedToken(){j.del(Po)}};var Ln,Io=class{constructor(t){this.apiUrl=t.apiUrl||cr,this.fallbackApiUrl=this.apiUrl,this.timeout=t.timeout||na,this.appId=t.appId,this.clientAnalyticsId=typeof window>"u"?null:crypto.randomUUID(),Ln||(Ln=new _r),this.session=Ln,this.api=this.generateApi(),this.session.client=this}initializeConnectorManager(t){this.connectors||(this.connectors=new Ro(t))}generateApi(){let t=new Tr(this.appId,this,{baseURL:this.apiUrl,timeout:this.timeout});return this.session.api=t,t}updateApiUrl(t){this.apiUrl=t||this.fallbackApiUrl,this.api=this.generateApi()}authenticate(){if(!this.authFlow)throw new P("No auth flow in progress.");return this.session.authenticate(this.authFlow)}link(){if(!this.authFlow)throw new P("No auth flow in progress.");return this.session.link(this.authFlow)}async logout(){await this.session.destroy(),this.authFlow=void 0}startAuthFlow(t){t.api=this.api,this.authFlow=t}async unlinkEmail(t){try{let o=await this.api.post(Ji(),{address:t});return je(o)}catch(o){throw xe(o)}}async unlinkPhone(t){try{let o=await this.api.post(Xi(),{phoneNumber:t});return je(o)}catch(o){throw xe(o)}}async unlinkWallet(t){try{let o=await this.api.post(Zi(),{address:t});return je(o)}catch(o){throw xe(o)}}async unlinkOAuth(t,o){try{let r=await this.api.post(ea(),{provider:t,subject:o});return je(r)}catch(r){throw xe(r)}}async createAnalyticsEvent(t,o,r){if(!(typeof window>"u"))try{this.clientAnalyticsId||console.error("No client analytics id set, refusing to send analytics event"),await this.api.post(ta(),{event_name:t,client_id:this.clientAnalyticsId,payload:{...o||{},clientTimestamp:r?r.toISOString():new Date().toISOString()}})}catch(n){console.error("Failed to create analytics event",n)}}async getAuthenticatedUser(){return this.session.hasRefreshCredentials()||this.session.hasRecoveryCredentials()?this.session.refresh():null}async getAccessToken(t){var o;return this.session.hasActiveToken()?((o=De.parse(this.session.token))==null?void 0:o.audience)!==this.appId?(await this.logout(),null):this.session.token:!(t!=null&&t.disableAutoRefresh)&&this.session.hasRefreshCredentials()?(await this.session.refresh(),this.session.token):null}async getServerConfig(){var t,o;try{let r=await this.api.get(`/api/v1/apps/${this.appId}`,{baseURL:this.fallbackApiUrl});return{id:r.id,name:r.name,verificationKey:r.verification_key,logoUrl:r.logo_url||void 0,accentColor:r.accent_color||void 0,showWalletLoginFirst:r.show_wallet_login_first,allowlistConfig:{errorTitle:r.allowlist_config.error_title,errorDetail:r.allowlist_config.error_detail,errorCtaText:r.allowlist_config.cta_text,errorCtaLink:r.allowlist_config.cta_link},walletAuth:r.wallet_auth,emailAuth:r.email_auth,smsAuth:r.sms_auth,googleOAuth:r.google_oauth,twitterOAuth:r.twitter_oauth,discordOAuth:r.discord_oauth,githubOAuth:r.github_oauth,appleOAuth:r.apple_oauth,termsAndConditionsUrl:r.terms_and_conditions_url,embeddedWalletConfig:{createOnLogin:(t=r.embedded_wallet_config)==null?void 0:t.create_on_login,requireUserPasswordOnCreate:(o=r.embedded_wallet_config)==null?void 0:o.require_user_password_on_create},privacyPolicyUrl:r.privacy_policy_url,customApiUrl:r.custom_api_url,walletConnectCloudProjectId:r.wallet_connect_cloud_project_id,createdAt:new Date(r.created_at*1e3),updatedAt:new Date(r.updated_at*1e3)}}catch(r){throw xe(r)}}async getUsdTokenPrice(t){try{return(await this.api.get(`/api/v1/token_price?chainId=${t}`)).usd}catch{console.error(`Unable to fetch token price for chain with id ${t}`);return}}async forkSession(){return await this.session.forkSession()}};import"wicg-inert";import{disableBodyScroll as Vh,clearAllBodyScrollLocks as $h}from"body-scroll-lock";import{useRef as qh,useCallback as jh}from"react";import{useEffect as Ac}from"react";import Kh from"react-dom";import Ni from"styled-components";import{createContext as Ed,useContext as xd}from"react";var Mn=Ed({isNewUserThisSession:!1,isLinking:!1,linkingHint:null,walletConnectionStatus:null,getAuthMeta:x,getAuthFlow:x,closePrivyModal:x,connectWallet:x,initLoginWithWallet:x,loginWithWallet:x,loginWithCode:x,initLoginWithEmail:x,initLoginWithSms:x,resendEmailCode:x,resendSmsCode:x,initLoginWithOAuth:x,loginWithOAuth:x,refreshUser:x,walletProxy:null,createAnalyticsEvent:x,getUsdTokenPrice:x,recoverEmbeddedWallet:x}),R=()=>xd(Mn);import{createContext as Td,useContext as Pd}from"react";var On=Td({ready:!1,authenticated:!1,user:null,walletConnectors:null,connectWallet:x,login:x,linkEmail:x,linkPhone:x,linkWallet:x,linkGoogle:x,linkTwitter:x,linkDiscord:x,linkGithub:x,linkApple:x,logout:x,getAccessToken:x,getEthereumProvider:x,getEthersProvider:x,getWeb3jsProvider:x,unlinkEmail:x,unlinkPhone:x,unlinkWallet:x,unlinkGoogle:x,unlinkTwitter:x,unlinkDiscord:x,unlinkGithub:x,unlinkApple:x,setActiveWallet:x,forkSession:x,createWallet:x,signMessage:x,sendTransaction:x,exportWallet:x}),U=()=>Pd(On);import Gn from"styled-components";import No,{css as Ga}from"styled-components";import Un from"styled-components";import{Fragment as Sd,jsx as Dn,jsxs as kd}from"react/jsx-runtime";var Ar=({success:e,fail:t})=>kd(Sd,{children:[Dn(Wo,{className:e?"success":t?"fail":""}),Dn(_d,{className:e?"success":t?"fail":""})]}),Wo=Un.span`
12
+ - https://privy.io`;this.wallet=t}get meta(){return{connectorType:this.wallet.connectorType,walletClientType:this.wallet.walletClientType}}async authenticate(){if(!this.api)throw new P("Auth flow has no API instance");try{let{message:t,signature:o}=await this.sign(),r=await this.api.post(Fi(),{message:t,signature:o,chainId:this.wallet.chainId,walletClientType:this.wallet.walletClientType,connectorType:this.wallet.connectorType});return{user:r.user,token:r.token,refresh_token:r.refresh_token,is_new_user:r.is_new_user}}catch(t){throw J(t)}}async link(){if(!this.api)throw new P("Auth flow has no API instance");try{let{message:t,signature:o}=await this.sign();return await this.api.post(Gi(),{message:t,signature:o,chainId:this.wallet.chainId,walletClientType:this.wallet.walletClientType,connectorType:this.wallet.connectorType})}catch(t){throw J(t)}}async sign(){if(!this.api)throw new P("Auth flow has no API instance");if(this.preparedMessage||await this.buildSiweMessage(),!this.preparedMessage)throw new P("Could not prepare SIWE message");let t=await this.wallet.sign(this.preparedMessage);return{message:this.preparedMessage,signature:t}}async buildSiweMessage(){if(!this.api)throw new P("Auth flow has no API instance");let t=this.wallet.address,o=this.wallet.chainId.replace("eip155:",""),r=await this.api.post(Bi(),{address:t});return this.preparedMessage=this.prepareMessage(o,t,r.nonce),this.preparedMessage}prepareMessage(t,o,r){let n=window.location.host,i=window.location.origin,a="By signing, you are proving you own this wallet and logging in. This does not initiate a transaction or cost any fees.",l=new Date().toISOString();return this.createSiweMessage(t,o,n,i,l,r,a)}};var vt=class{constructor(t){this.meta={phoneNumber:t}}async authenticate(){if(!this.api)throw new P("Auth flow has no API instance");if(!this.meta.phoneNumber||!this.meta.smsCode)throw new P("phone number and sms code must be set prior to calling authenticate.");try{let t=qi(),o=await this.api.post(t,{phoneNumber:this.meta.phoneNumber,code:this.meta.smsCode});return{user:o.user,token:o.token,refresh_token:o.refresh_token,is_new_user:o.is_new_user}}catch(t){throw J(t)}}async link(){if(!this.api)throw new P("Auth flow has no API instance");if(!this.meta.phoneNumber||!this.meta.smsCode)throw new P("phone number and sms code must be set prior to calling authenticate.");try{let t=ji();return await this.api.post(t,{phoneNumber:this.meta.phoneNumber,code:this.meta.smsCode})}catch(t){throw J(t)}}async sendSmsCode(t){if(!this.api)throw new P("Auth flow has no API instance");if(t&&(this.meta.phoneNumber=t),!this.meta.phoneNumber)throw new P("phone nNumber must be set when initialzing authentication.");try{let o=$i();return await this.api.post(o,{phoneNumber:this.meta.phoneNumber})}catch(o){throw J(o)}}};function qe(e){return new Date(e*1e3)}function Uc(e){let t=[];for(let o of e){let r=o.type;switch(o.type){case"wallet":let n={address:o.address,type:o.type,verifiedAt:qe(o.verified_at),chainType:"ethereum",chainId:o.chain_id,walletClient:o.wallet_client_type==="privy"?"privy":"unknown",walletClientType:o.wallet_client_type,connectorType:o.connector_type,recoveryMethod:o.recovery_method};t.push(n);break;case"email":let i={address:o.address,type:o.type,verifiedAt:qe(o.verified_at)};t.push(i);break;case"phone":let a={number:o.phoneNumber,type:o.type,verifiedAt:qe(o.verified_at)};t.push(a);break;case"google_oauth":let l={subject:o.subject,email:o.email,name:o.name,type:o.type,verifiedAt:qe(o.verified_at)};t.push(l);break;case"twitter_oauth":let s={subject:o.subject,username:o.username,name:o.name,type:o.type,verifiedAt:qe(o.verified_at)};t.push(s);break;case"discord_oauth":let u={subject:o.subject,username:o.username,email:o.email,type:o.type,verifiedAt:qe(o.verified_at)};t.push(u);break;case"github_oauth":let h={subject:o.subject,username:o.username,name:o.name,email:o.email,type:o.type,verifiedAt:qe(o.verified_at)};t.push(h);break;case"apple_oauth":let C={subject:o.subject,email:o.email,type:o.type,verifiedAt:qe(o.verified_at)};t.push(C);break;default:console.warn(`Unrecognized account type: ${r}. Please consider upgrading the Privy SDK.`)}}return t}function nt(e,t){return e.sort((o,r)=>r.verifiedAt.getTime()-o.verifiedAt.getTime()),e.find(o=>o.type===t)}var $=e=>e==null?void 0:e.linkedAccounts.find(t=>t.type==="wallet"&&t.walletClient==="privy"),Bc=e=>e.linkedAccounts.filter(t=>t.type==="wallet"),Bt=(e,t)=>{var o;return t==="all-users"&&!$(e)||t==="users-without-wallets"&&!((o=Bc(e))!=null&&o.length)};function je(e){if(!e)return null;let t=Uc(e.linked_accounts),o=nt(t,"wallet"),r=nt(t,"email"),n=nt(t,"phone"),i=nt(t,"google_oauth"),a=nt(t,"twitter_oauth"),l=nt(t,"discord_oauth"),s=nt(t,"github_oauth"),u=nt(t,"apple_oauth");return{id:e.id,createdAt:qe(e.created_at),linkedAccounts:t,email:r&&{address:r==null?void 0:r.address},phone:n&&{number:n==null?void 0:n.number},wallet:o&&{address:o.address,chainType:o.chainType,chainId:o.chainId,walletClient:o.walletClient,walletClientType:o.walletClientType,connectorType:o.connectorType,recoveryMethod:o.recoveryMethod},google:i&&{subject:i.subject,email:i.email,name:i.name},twitter:a&&{subject:a.subject,username:a.username,name:a.name},discord:l&&{subject:l.subject,username:l.username,email:l.email},github:s&&{subject:s.subject,username:s.username,name:s.name,email:s.email},apple:u&&{subject:u.subject,email:u.email}}}import{getAddress as Ua}from"@ethersproject/address";import vd from"eventemitter3";var oa="1.28.0-beta.7";var Ft="4df5e2316331463a9130964bd6078dfa",ra="34357d3c125c2bcf2ce2bc3309d98715",cr="https://auth.privy.io",na=1e4,Re=1400,ia=4500,Cn=oa;var Gt="privy:token",En="privy-token",dr="privy:refresh_token",xn="privy-refresh-token",Po="privy:session_transfer_token",Tn="privy:connectors",Pn="privy:connections";var Te=1;var _n=class{constructor(){this._cache={}}get(t){return this._cache[t]}put(t,o){o!==void 0?this._cache[t]=o:this.del(t)}del(t){delete this._cache[t]}getKeys(){return Object.keys(this._cache)}},An=class{get(t){let o=localStorage.getItem(t);return o===null?void 0:JSON.parse(o)}put(t,o){o!==void 0?localStorage.setItem(t,JSON.stringify(o)):this.del(t)}del(t){localStorage.removeItem(t)}getKeys(){return Object.entries(localStorage).map(([t])=>t)}};function Gc(){return typeof window<"u"&&window.localStorage?new An:new _n}var j=Gc();import{isPossiblePhoneNumber as Hc}from"libphonenumber-js/min";var aa={id:42161,name:"Arbitrum One",network:"arbitrum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://arb-mainnet.g.alchemy.com/v2"],webSocket:["wss://arb-mainnet.g.alchemy.com/v2"]},infura:{http:["https://arbitrum-mainnet.infura.io/v3"],webSocket:["wss://arbitrum-mainnet.infura.io/ws/v3"]},default:{http:["https://arb1.arbitrum.io/rpc"]},public:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{etherscan:{name:"Arbiscan",url:"https://arbiscan.io"},default:{name:"Arbiscan",url:"https://arbiscan.io"}}};var sa={id:421613,name:"Arbitrum Goerli",network:"arbitrum-goerli",nativeCurrency:{name:"Arbitrum Goerli Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://arb-goerli.g.alchemy.com/v2"],webSocket:["wss://arb-goerli.g.alchemy.com/v2"]},infura:{http:["https://arbitrum-goerli.infura.io/v3"],webSocket:["wss://arbitrum-goerli.infura.io/ws/v3"]},default:{http:["https://goerli-rollup.arbitrum.io/rpc"]},public:{http:["https://goerli-rollup.arbitrum.io/rpc"]}},blockExplorers:{etherscan:{name:"Arbiscan",url:"https://goerli.arbiscan.io/"},default:{name:"Arbiscan",url:"https://goerli.arbiscan.io/"}},testnet:!0};var la={id:84531,network:"base-goerli",name:"Base Goerli",nativeCurrency:{name:"Base Goerli",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://goerli.base.org"]},public:{http:["https://goerli.base.org"]}},blockExplorers:{etherscan:{name:"Basescan",url:"https://goerli.basescan.org"},default:{name:"Basescan",url:"https://goerli.basescan.org"}},testnet:!0};var ca={id:42220,name:"Celo",network:"celo",nativeCurrency:{decimals:18,name:"CELO",symbol:"CELO"},rpcUrls:{default:{http:["https://forno.celo.org"]},infura:{http:["https://celo-mainnet.infura.io/v3"]},public:{http:["https://forno.celo.org"]}},blockExplorers:{default:{name:"Celo Explorer",url:"https://explorer.celo.org/mainnet"},etherscan:{name:"CeloScan",url:"https://celoscan.io"}},testnet:!1};var da={id:44787,name:"Alfajores",network:"celo-alfajores",nativeCurrency:{decimals:18,name:"CELO",symbol:"A-CELO"},rpcUrls:{default:{http:["https://alfajores-forno.celo-testnet.org"]},infura:{http:["https://celo-alfajores.infura.io/v3"]},public:{http:["https://alfajores-forno.celo-testnet.org"]}},blockExplorers:{default:{name:"Celo Explorer",url:"https://explorer.celo.org/alfajores"},etherscan:{name:"CeloScan",url:"https://alfajores.celoscan.io/"}},testnet:!0};var pa={id:314,name:"Filecoin Mainnet",network:"filecoin-mainnet",nativeCurrency:{decimals:18,name:"filecoin",symbol:"FIL"},rpcUrls:{default:{http:["https://api.node.glif.io/rpc/v1"]},public:{http:["https://api.node.glif.io/rpc/v1"]}},blockExplorers:{default:{name:"Filfox",url:"https://filfox.info/en"},filscan:{name:"Filscan",url:"https://filscan.io"},filscout:{name:"Filscout",url:"https://filscout.io/en"},glif:{name:"Glif",url:"https://explorer.glif.io"}}};var ua={id:314159,name:"Filecoin Calibration",network:"filecoin-calibration",nativeCurrency:{decimals:18,name:"testnet filecoin",symbol:"tFIL"},rpcUrls:{default:{http:["https://api.calibration.node.glif.io/rpc/v1"]},public:{http:["https://api.calibration.node.glif.io/rpc/v1"]}},blockExplorers:{default:{name:"Filscan",url:"https://calibration.filscan.io"}}};var ma={id:5,network:"goerli",name:"Goerli",nativeCurrency:{name:"Goerli Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://eth-goerli.g.alchemy.com/v2"],webSocket:["wss://eth-goerli.g.alchemy.com/v2"]},infura:{http:["https://goerli.infura.io/v3"],webSocket:["wss://goerli.infura.io/ws/v3"]},default:{http:["https://rpc.ankr.com/eth_goerli"]},public:{http:["https://rpc.ankr.com/eth_goerli"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://goerli.etherscan.io"},default:{name:"Etherscan",url:"https://goerli.etherscan.io"}},testnet:!0};var ha={id:1,network:"homestead",name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://eth-mainnet.g.alchemy.com/v2"],webSocket:["wss://eth-mainnet.g.alchemy.com/v2"]},infura:{http:["https://mainnet.infura.io/v3"],webSocket:["wss://mainnet.infura.io/ws/v3"]},default:{http:["https://cloudflare-eth.com"]},public:{http:["https://cloudflare-eth.com"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://etherscan.io"},default:{name:"Etherscan",url:"https://etherscan.io"}}};var fa={id:10,name:"Optimism",network:"optimism",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://opt-mainnet.g.alchemy.com/v2"],webSocket:["wss://opt-mainnet.g.alchemy.com/v2"]},infura:{http:["https://optimism-mainnet.infura.io/v3"],webSocket:["wss://optimism-mainnet.infura.io/ws/v3"]},default:{http:["https://mainnet.optimism.io"]},public:{http:["https://mainnet.optimism.io"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://optimistic.etherscan.io"},default:{name:"Optimism Explorer",url:"https://explorer.optimism.io"}}};var ya={id:420,name:"Optimism Goerli",network:"optimism-goerli",nativeCurrency:{name:"Goerli Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://opt-goerli.g.alchemy.com/v2"],webSocket:["wss://opt-goerli.g.alchemy.com/v2"]},infura:{http:["https://optimism-goerli.infura.io/v3"],webSocket:["wss://optimism-goerli.infura.io/ws/v3"]},default:{http:["https://goerli.optimism.io"]},public:{http:["https://goerli.optimism.io"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://goerli-optimism.etherscan.io"},default:{name:"Etherscan",url:"https://goerli-optimism.etherscan.io"}},testnet:!0};var ga={id:137,name:"Polygon",network:"matic",nativeCurrency:{name:"MATIC",symbol:"MATIC",decimals:18},rpcUrls:{alchemy:{http:["https://polygon-mainnet.g.alchemy.com/v2"],webSocket:["wss://polygon-mainnet.g.alchemy.com/v2"]},infura:{http:["https://polygon-mainnet.infura.io/v3"],webSocket:["wss://polygon-mainnet.infura.io/ws/v3"]},default:{http:["https://polygon-rpc.com"]},public:{http:["https://polygon-rpc.com"]}},blockExplorers:{etherscan:{name:"PolygonScan",url:"https://polygonscan.com"},default:{name:"PolygonScan",url:"https://polygonscan.com"}}};var va={id:80001,name:"Polygon Mumbai",network:"maticmum",nativeCurrency:{name:"MATIC",symbol:"MATIC",decimals:18},rpcUrls:{alchemy:{http:["https://polygon-mumbai.g.alchemy.com/v2"],webSocket:["wss://polygon-mumbai.g.alchemy.com/v2"]},infura:{http:["https://polygon-mumbai.infura.io/v3"],webSocket:["wss://polygon-mumbai.infura.io/ws/v3"]},default:{http:["https://matic-mumbai.chainstacklabs.com"]},public:{http:["https://matic-mumbai.chainstacklabs.com"]}},blockExplorers:{etherscan:{name:"PolygonScan",url:"https://mumbai.polygonscan.com"},default:{name:"PolygonScan",url:"https://mumbai.polygonscan.com"}},testnet:!0};var pr=[aa,sa,ma,ha,fa,ya,ga,va,ca,da,pa,ua,la];var mr=()=>{let e=window;if(!e.ethereum)return!1;if(ur(window.ethereum,!0))return!0;if(e.ethereum.providers){for(let t of e.ethereum.providers)if(ur(t,!0))return!0}return!1},_o=()=>{let e=window;if(!e.ethereum)return!1;if(ur(window.ethereum,!1))return!0;if(e.ethereum.providers){for(let t of e.ethereum.providers)if(ur(t,!1))return!0}return!1},ur=(e,t)=>e.isMetaMask?e.isMetaMask&&!t?!0:!(e.isBraveWallet&&!e._events&&!e._state||e.isApexWallet||e.isAvalanche||e.isBitKeep||e.isBlockWallet||e.isKuCoinWallet||e.isMathWallet||e.isOkxWallet||e.isOKExWallet||e.isOneInchIOSWallet||e.isOneInchAndroidWallet||e.isOpera||e.isPhantom||e.isPortal||e.isRabby||e.isTokenPocket||e.isTokenary||e.isZerion):!1,Pe=()=>{var e,t;if("phantom"in window){let o=window;if((t=(e=o==null?void 0:o.phantom)==null?void 0:e.ethereum)!=null&&t.isPhantom)return!0}return!1},it=()=>{let e=window;if(!e.ethereum)return!1;if(e.ethereum.isCoinbaseWallet)return!0;if(e.ethereum.providers){for(let t of e.ethereum.providers)if(t.isCoinbaseWallet)return!0}return!1};var ba=e=>!!String(e).toLowerCase().match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/),wa=e=>Hc(String(e),"US"),Ca=(e,t)=>{let o=e.slice(0),r=[];for(;o.length;)r.push(o.splice(0,t));return r},Ht=(e,t=3,o=4)=>{if(!e)return"";let r=2,n=3;if(t+o+r+n>=e.length)return e;let i=e.slice(0,r+t),a=e.slice(e.length-o,e.length);return`${i}...${a}`},zc=e=>new Promise(t=>setTimeout(t,e)),Ea=(e,t={})=>{let o=t.delayMs||40,r=t.maxAttempts||1e3;return new Promise(async(n,i)=>{let a=!1,l=0;for(;!a&&l<r;)e().then(()=>{a=!0,n()},(...s)=>{a=!0,i(...s)}),l+=1,await zc(o);a||i(new Error("Exceeded max attempts before resolving function"))})},hr=(e,t,o={})=>{let r=new URL(t,e);for(let[n,i]of Object.entries(o))r.searchParams.set(n,i);return r.href};var Sn=e=>e.replace(/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g,""),Ao=e=>typeof e=="string"?e:"0x"+e.toString(16);async function xa(e=3e3){let t=!1,o=window;return new Promise(r=>{o.ethereum?n():(window.addEventListener("ethereum#initialized",n,{once:!0}),setTimeout(()=>{n()},e));function n(){if(t)return;t=!0,window.removeEventListener("ethereum#initialized",n);let i=[];mr()&&i.push("metamask"),Pe()&&i.push("phantom"),o.ethereum&&o.ethereum.isBraveWallet&&i.push("brave"),r(i)}})}function kn(e){return`eip155:${String(Number(e))}`}var bt=e=>{var o;let t=pr.find(r=>r.id===e);if(!t)throw new G(`Unsupported chainId ${e}`,4901);return((o=t.rpcUrls.infura)==null?void 0:o.http[0])+`/${Ft}`};import td from"@coinbase/wallet-sdk";import{jsx as Ta,jsxs as Vc}from"react/jsx-runtime";var _e=({style:e,...t})=>Vc("svg",{width:"1024",height:"1024",viewBox:"0 0 1024 1024",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"28px",width:"28px",...e},...t,children:[Ta("rect",{width:"1024",height:"1024",fill:"#0052FF",rx:100,ry:100}),Ta("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z",fill:"white"})]});import{getAddress as lt}from"@ethersproject/address";import{Web3Provider as ka}from"@ethersproject/providers";import{default as ed}from"eventemitter3";import{isHexString as Qc}from"@ethersproject/bytes";import{JsonRpcProvider as _a}from"@ethersproject/providers";import{toUtf8String as Zc}from"@ethersproject/strings";import Jc from"eventemitter3";var $c=["eth_sign","eth_populateTransactionRequest","eth_signTransaction","personal_sign"],Pa=e=>$c.includes(e);import{ErrorCode as qc}from"@ethersproject/logger";var zt=class extends G{constructor(){super("Wallet timeout");this.type="wallet_error"}},Vt=class extends G{constructor(){super("User rejected connection");this.type="wallet_error"}},Le=e=>{if(e instanceof G)return e;if((e==null?void 0:e.code)&&(e==null?void 0:e.reason)){let t=new $t(e);return e.code===qc.ACTION_REJECTED&&(t.details=wt.E4001_USER_REJECTED_REQUEST),t}return e!=null&&e.code?new $t(e):new G("Unknown connector error",e)},Rn=class extends ke{constructor(o,r,n){super(o);this.type="provider_error";this.code=r,this.data=n}},$t=class extends Rn{constructor(o){var i,a,l;let r=o;super(r.message,r.code,r.data);let n=Object.values(wt).find(s=>s.eipCode===r.code);this.details=n||wt.UNKNOWN_ERROR,r.code===-32002&&((i=r.message)!=null&&i.includes("already pending for origin")?(a=r.message)!=null&&a.includes("wallet_requestPermissions")?this.details=wt.E32002_CONNECTION_ALREADY_PENDING:this.details=wt.E32002_REQUEST_ALREADY_PENDING:(l=r.message)!=null&&l.includes("Already processing")&&r.message.includes("eth_requestAccounts")&&(this.details=wt.E32002_WALLET_LOCKED))}},jc={ERROR_USER_EXISTS:{message:"User already exists for this address",detail:"Try another address!",retryable:!1},ERROR_TIMED_OUT:{message:"Wallet request timed out",detail:"Please try connecting again.",retryable:!0},ERROR_WALLET_CONNECTION:{message:"Could not log in with wallet",detail:"Please try connecting again.",retryable:!0},ERROR_USER_REJECTED_CONNECTION:{message:"You rejected the request",detail:"Please try connecting again.",retryable:!0}},Kc={E32002_CONNECTION_ALREADY_PENDING:{eipCode:-32002,message:"Connection request already pending",detail:"Don\u2019t see your wallet modal? Check your other browser windows.",retryable:!1},E32002_REQUEST_ALREADY_PENDING:{eipCode:-32002,message:"Resource request already pending",detail:"Don\u2019t see your wallet modal? Check your other browser windows.",retryable:!1},E32002_WALLET_LOCKED:{eipCode:-32002,message:"Wallet might be locked",detail:"Don\u2019t see your wallet modal? Check your other browser windows.",retryable:!1},E4001_USER_REJECTED_REQUEST:{eipCode:4001,message:"Signature rejected",detail:"Please try signing again.",retryable:!0}},Yc={E4001_DEFAULT_USER_REJECTED_REQUEST:{eipCode:4001,message:"User Rejected Request",detail:"The user rejected the request.",default:!0,retryable:!0},E4100_DEFAULT_UNAUTHORIZED:{eipCode:4100,message:"Unauthorized",detail:"The requested method and/or account has not been authorized by the user.",default:!0,retryable:!1},E4200_DEFAULT_UNSUPPORTED_METHOD:{eipCode:4200,message:"Unsupported Method",detail:"The Provider does not support the requested method.",default:!0,retryable:!1},E4900_DEFAULT_DISCONNECTED:{eipCode:4900,message:"Disconnected",detail:"The Provider is disconnected from all chains.",default:!0,retryable:!0},E4901_DEFAULT_CHAIN_DISCONNECTED:{eipCode:4901,message:"Chain Disconnected",detail:"The Provider is not connected to the requested chain.",default:!0,retryable:!0},E32700_DEFAULT_PARSE_ERROR:{eipCode:-32700,message:"Parse error",detail:"Invalid JSON",default:!0,retryable:!1},E32600_DEFAULT_INVALID_REQUEST:{eipCode:-32600,message:"Invalid request",detail:"JSON is not a valid request object",default:!0,retryable:!1},E32601_DEFAULT_METHOD_NOT_FOUND:{eipCode:-32601,message:"Method not found",detail:"Method does not exist",default:!0,retryable:!1},E32602_DEFAULT_INVALID_PARAMS:{eipCode:-32602,message:"Invalid params",detail:"Invalid method parameters",default:!0,retryable:!1},E32603_DEFAULT_INTERNAL_ERROR:{eipCode:-32603,message:"Internal error",detail:"Internal JSON-RPC error",default:!0,retryable:!0},E32000_DEFAULT_INVALID_INPUT:{eipCode:-32e3,message:"Invalid input",detail:"Missing or invalid parameters",default:!0,retryable:!1},E32001_DEFAULT_RESOURCE_NOT_FOUND:{eipCode:-32001,message:"Resource not found",detail:"Requested resource not found",default:!0,retryable:!1},E32002_DEFAULT_RESOURCE_UNAVAILABLE:{eipCode:-32002,message:"Resource unavailable",detail:"Requested resource not available",default:!0,retryable:!0},E32003_DEFAULT_TRANSACTION_REJECTED:{eipCode:-32003,message:"Transaction rejected",detail:"Transaction creation failed",default:!0,retryable:!0},E32004_DEFAULT_METHOD_NOT_SUPPORTED:{eipCode:-32004,message:"Method not supported",detail:"Method is not implemented",default:!0,retryable:!1},E32005_DEFAULT_LIMIT_EXCEEDED:{eipCode:-32005,message:"Limit exceeded",detail:"Request exceeds defined limit",default:!0,retryable:!1},E32006_DEFAULT_JSON_RPC_VERSION_NOT_SUPPORTED:{eipCode:-32006,message:"JSON-RPC version not supported",detail:"Version of JSON-RPC protocol is not supported",default:!0,retryable:!1}},wt={UNKNOWN_ERROR:{eipCode:0,message:"Unknown error",detail:"Unknown error",retryable:!0},...Yc,...Kc},Ke={...jc,...wt};var Xc=12e4,In=(e=new zt,t=Xc)=>new Promise((o,r)=>setTimeout(()=>{r(e)},t)),z=class{constructor(t){this.removeListener=(t,o)=>{if(this.walletProvider)try{return this.walletProvider.removeListener(t,o)}catch{console.warn("Unable to remove wallet provider listener")}};this.setWalletProvider=t=>{this.walletProvider&&this._subscriptions.forEach(o=>{this.removeListener(o.eventName,o.listener)}),this.walletProvider=t,this._subscriptions.forEach(o=>{var r;(r=this.walletProvider)==null||r.on(o.eventName,o.listener)})};this.walletProvider=t,this._subscriptions=[]}on(t,o){if(this.walletProvider)return this.walletProvider.on(t,o);this._subscriptions.push({eventName:t,listener:o})}async request(t){if(!this.walletProvider)throw new G(`A wallet request of type ${t.method} was made before setting a wallet provider.`);return Promise.race([this.walletProvider.request(t),In()]).catch(o=>{throw Le(o)})}},at=class extends Error{constructor(o,r,n){super(o);this.code=r,this.data=n}},fr=class extends Jc{constructor(o,r,n=1){super();this.walletProxy=o,this.address=r,this.chainId=n,this.provider=new _a(bt(n))}async handleSendTransaction(o){if(!o.params||!Array.isArray(o.params))throw new at(`Invalid params for ${o.method}`,4200);let r=o.params[0];if(!await So()||!this.address)throw new at("Disconnected",4900);return(await Sa(r)).transactionHash}handleSwitchEthereumChain(o){if(!o.params||!Array.isArray(o.params))throw new at(`Invalid params for ${o.method}`,4200);let r;if(typeof o.params[0]=="string")r=o.params[0];else if("chainId"in o.params[0]&&typeof o.params[0].chainId=="string")r=o.params[0].chainId;else throw new at(`Invalid params for ${o.method}`,4200);this.chainId=Number(r),this.provider=new _a(bt(this.chainId)),this.emit("chainChanged",r)}async handlePersonalSign(o){if(!o.params||!Array.isArray(o.params))throw new Error("Invalid params for eth_estimateGas");let r=o.params[0],n=Qc(r)?Zc(r):r;return await Aa(n)}async handleEstimateGas(o){if(!o.params||!Array.isArray(o.params))throw new Error("Invalid params for eth_estimateGas");let r={...o.params[0],chainId:Ao(this.chainId)};return this.provider.send("eth_estimateGas",[r])}async request(o){switch(console.debug("Embedded1193Provider.request() called with args",o),o.method){case"eth_accounts":return this.address?[this.address]:[];case"eth_chainId":return Ao(this.chainId);case"eth_estimateGas":return this.handleEstimateGas(o);case"eth_sendTransaction":return this.handleSendTransaction(o);case"wallet_switchEthereumChain":return this.handleSwitchEthereumChain(o);case"personal_sign":return this.handlePersonalSign(o);default:break}if(Pa(o.method)){let r=await So();if(!r||!this.address)throw new at("Disconnected",4900);try{return(await this.walletProxy.rpc({address:this.address,accessToken:r,request:{method:o.method,params:o.params}})).response.data}catch(n){throw console.error(n),new at("Disconnected",4900)}}else return this.provider.send(o.method,o.params)}async connect(){let o=await So();if(!o||!this.address)return null;try{return(await this.walletProxy.connect({address:this.address,accessToken:o})).address}catch(r){return console.error(r),null}}},Me=class extends z{constructor(o){super(o)}},st=class extends z{constructor(t){super(t)}sendAsync(t,o){throw new Error("sendAsync is no longer supported by EIP-1193. Use the request method instead.")}};var ve=class extends ed{constructor(o){super();this.onAccountsChanged=o=>{this.syncAccounts(o)};this.onChainChanged=o=>{this.wallets.forEach(r=>{r.chainId=kn(o)}),this.emit("walletsUpdated")};this.onDisconnect=()=>{this.connected=!1,this.wallets=[],this.emit("walletsUpdated")};this.onConnect=()=>{this.connected=!0,this.syncAccounts()};this.wallets=[],this.walletClientType=o,this.connected=!1,this.initialized=!1}buildConnectedWallet(o,r){let n=async()=>!!this.wallets.find(i=>lt(i.address)===lt(o));return{address:lt(o),chainId:r,connectedAt:Date.now(),walletClientType:this.walletClientType,connectorType:this.connectorType,isConnected:n,getEthereumProvider:async()=>{if(!await n())throw new G("Wallet is not currently connected.");return this.proxyProvider},getEthersProvider:async()=>{if(!await n())throw new G("Wallet is not currently connected.");return new ka(new Me(this.proxyProvider))},getWeb3jsProvider:async()=>{if(!await n())throw new G("Wallet is not currently connected.");return new st(this.proxyProvider)},sign:async i=>{if(!await n())throw new G("Wallet is not currently connected.");return await this.sign(i)},disconnect:()=>{this.disconnect()}}}async syncAccounts(o){let r=o;if(r===void 0){let l=await this.proxyProvider.request({method:"eth_accounts"});Array.isArray(l)&&(r=l)}if(r===void 0||!Array.isArray(r)||r.length<=0)return;let n=[],i=await this.proxyProvider.request({method:"eth_chainId"}),a=kn(i);for(let l of r)n.find(s=>lt(s.address)===lt(l))||n.push(this.buildConnectedWallet(lt(l),a));yr(n,this.wallets)||(this.wallets=n,this.emit("walletsUpdated"))}async getConnectedWallet(){let o=await this.proxyProvider.request({method:"eth_accounts"});return this.wallets.sort((r,n)=>n.connectedAt-r.connectedAt).find(r=>o.find(n=>lt(n)===lt(r.address)))||null}async isConnected(){let o=await this.proxyProvider.request({method:"eth_accounts"});return Array.isArray(o)&&o.length>0}async sign(o){return await this.connect({showPrompt:!1}),new ka(new Me(this.proxyProvider)).getSigner().signMessage(o)}subscribeListeners(){this.proxyProvider.on("accountsChanged",this.onAccountsChanged),this.proxyProvider.on("chainChanged",this.onChainChanged),this.proxyProvider.on("disconnect",this.onDisconnect),this.proxyProvider.on("connect",this.onConnect)}unsubscribeListeners(){this.proxyProvider.removeListener("accountsChanged",this.onAccountsChanged),this.proxyProvider.removeListener("chainChanged",this.onChainChanged),this.proxyProvider.removeListener("disconnect",this.onDisconnect),this.proxyProvider.removeListener("connect",this.onConnect)}};var od=e=>{let t=`https://mainnet.infura.io/v3/${Ft}`,o=1;return e.makeWeb3Provider(t,o)},gr,vr=class extends ve{constructor(){super("coinbase_wallet");this.connectorType="coinbase_wallet";this.proxyProvider=new z,this.subscribeListeners(),gr||(gr=new td({appName:"Privy",darkMode:!1,headlessMode:!1})),this.proxyProvider.setWalletProvider(od(gr)),this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}async connect(o){return o.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}disconnect(){gr.disconnect()}get walletBranding(){return{name:"Coinbase Wallet",icon:_e}}async promptConnection(){try{let o=await this.proxyProvider.request({method:"eth_requestAccounts"});if(o.length===0)throw new G("Unable to retrieve accounts");this.connected=!0,await this.syncAccounts(o)}catch(o){throw Le(o)}}};import{jsx as Ra}from"react/jsx-runtime";var qt=({style:e,...t})=>Ra("svg",{width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"1.25rem",width:"1.25rem",...e},...t,children:Ra("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.99555 0.929932C-1.12055 1.31799 -0.499722 9.15734 2.17445 8.76915C0.0807959 10.5544 -0.960455 16.6416 6.01654 16.0265C10.6356 15.9489 15.5635 12.2232 15.5635 8.1095C15.5635 2.63748 10.7516 0.929932 7.99555 0.929932ZM9.47052 7.53055C9.47052 8.49933 8.81856 9.28468 8.01433 9.28468C7.2101 9.28468 6.55814 8.49933 6.55814 7.53055C6.55814 6.56176 7.2101 5.77641 8.01433 5.77641C8.81856 5.77641 9.47052 6.56176 9.47052 7.53055ZM12.3171 9.28468C13.1213 9.28468 13.7733 8.49933 13.7733 7.53055C13.7733 6.56176 13.1213 5.77641 12.3171 5.77641C11.5129 5.77641 10.8609 6.56176 10.8609 7.53055C10.8609 8.49933 11.5129 9.28468 12.3171 9.28468Z",fill:t.color||"var(--privy-color-foreground-3)"})});var br=class extends ve{constructor(o){super("privy");this.connectorType="embedded";this.proxyProvider=o,this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}async connect(o){return await this.isConnected()?(await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[Ao((o==null?void 0:o.chainId)||"0x1")]}),this.getConnectedWallet()):null}get walletBranding(){return{name:"Privy Wallet",icon:qt}}disconnect(){this.connected=!1}async promptConnection(){}};import{getAddress as ly}from"@ethersproject/address";import{Web3Provider as dy}from"@ethersproject/providers";import{isMobile as nd}from"react-device-detect";import{jsx as be,jsxs as rd}from"react/jsx-runtime";var ae=({style:e,...t})=>rd("svg",{xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",x:0,y:0,viewBox:"0 0 318.6 318.6",width:"28",height:"28",style:{height:"28px",width:"28px",...e},...t,children:[be("style",{children:".s1{stroke-linecap:round;stroke-linejoin:round}.s2{fill:#e4761b;stroke:#e4761b}.s3{fill:#f6851b;stroke:#f6851b}"}),be("path",{fill:"#e2761b",stroke:"#e2761b",className:"s1",d:"m274.1 35.5-99.5 73.9L193 65.8z"}),be("path",{d:"m44.4 35.5 98.7 74.6-17.5-44.3zm193.9 171.3-26.5 40.6 56.7 15.6 16.3-55.3zm-204.4.9L50.1 263l56.7-15.6-26.5-40.6z",className:"s1 s2"}),be("path",{d:"m103.6 138.2-15.8 23.9 56.3 2.5-2-60.5zm111.3 0-39-34.8-1.3 61.2 56.2-2.5zM106.8 247.4l33.8-16.5-29.2-22.8zm71.1-16.5 33.9 16.5-4.7-39.3z",className:"s1 s2"}),be("path",{fill:"#d7c1b3",stroke:"#d7c1b3",className:"s1",d:"m211.8 247.4-33.9-16.5 2.7 22.1-.3 9.3zm-105 0 31.5 14.9-.2-9.3 2.5-22.1z"}),be("path",{fill:"#233447",stroke:"#233447",className:"s1",d:"m138.8 193.5-28.2-8.3 19.9-9.1zm40.9 0 8.3-17.4 20 9.1z"}),be("path",{fill:"#cd6116",stroke:"#cd6116",className:"s1",d:"m106.8 247.4 4.8-40.6-31.3.9zM207 206.8l4.8 40.6 26.5-39.7zm23.8-44.7-56.2 2.5 5.2 28.9 8.3-17.4 20 9.1zm-120.2 23.1 20-9.1 8.2 17.4 5.3-28.9-56.3-2.5z"}),be("path",{fill:"#e4751f",stroke:"#e4751f",className:"s1",d:"m87.8 162.1 23.6 46-.8-22.9zm120.3 23.1-1 22.9 23.7-46zm-64-20.6-5.3 28.9 6.6 34.1 1.5-44.9zm30.5 0-2.7 18 1.2 45 6.7-34.1z"}),be("path",{d:"m179.8 193.5-6.7 34.1 4.8 3.3 29.2-22.8 1-22.9zm-69.2-8.3.8 22.9 29.2 22.8 4.8-3.3-6.6-34.1z",className:"s3"}),be("path",{fill:"#c0ad9e",stroke:"#c0ad9e",className:"s1",d:"m180.3 262.3.3-9.3-2.5-2.2h-37.7l-2.3 2.2.2 9.3-31.5-14.9 11 9 22.3 15.5h38.3l22.4-15.5 11-9z"}),be("path",{fill:"#161616",stroke:"#161616",className:"s1",d:"m177.9 230.9-4.8-3.3h-27.7l-4.8 3.3-2.5 22.1 2.3-2.2h37.7l2.5 2.2z"}),be("path",{fill:"#763d16",stroke:"#763d16",className:"s1",d:"m278.3 114.2 8.5-40.8-12.7-37.9-96.2 71.4 37 31.3 52.3 15.3 11.6-13.5-5-3.6 8-7.3-6.2-4.8 8-6.1zM31.8 73.4l8.5 40.8-5.4 4 8 6.1-6.1 4.8 8 7.3-5 3.6 11.5 13.5 52.3-15.3 37-31.3-96.2-71.4z"}),be("path",{d:"m267.2 153.5-52.3-15.3 15.9 23.9-23.7 46 31.2-.4h46.5zm-163.6-15.3-52.3 15.3-17.4 54.2h46.4l31.1.4-23.6-46zm71 26.4 3.3-57.7 15.2-41.1h-67.5l15 41.1 3.5 57.7 1.2 18.2.1 44.8h27.7l.2-44.8z",className:"s3"})]});var wr=class extends ve{constructor(){super("metamask");this.connectorType="injected";this.proxyProvider=new z,this.subscribeListeners();let o=window,r=o.ethereum,n=o.ethereum.providers||[];for(let i of n)if(i.isMetaMask){r=i;break}this.proxyProvider.setWalletProvider(r),this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}async connect(o){return o.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}get walletBranding(){return{name:"MetaMask",icon:ae}}disconnect(){console.warn("Metamask does not support programmatic disconnect.")}async promptConnection(){try{!nd&&mr()&&await this.proxyProvider.request({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]});let o=await this.proxyProvider.request({method:"eth_requestAccounts"});if(!o||o.length===0)throw new G("Unable to retrieve accounts");await this.syncAccounts(o)}catch(o){throw Le(o)}}};import{jsx as jt,jsxs as Cr}from"react/jsx-runtime";var Oe=({style:e,...t})=>Cr("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"28px",width:"28px",...e},...t,children:[jt("rect",{width:"28",height:"28",rx:"6",fill:"url(#paint0_linear_1765_9937)"}),jt("path",{d:"M24.0223 14.1704H21.5542C21.5542 9.14083 17.4627 5.06372 12.4151 5.06372C7.43008 5.06372 3.37717 9.04101 3.27798 13.9845C3.17536 19.0945 7.98653 23.5318 13.1154 23.5318H13.7605C18.2822 23.5318 24.3426 20.0047 25.2895 15.7072C25.4643 14.9151 24.8364 14.1704 24.0223 14.1704ZM8.74752 14.3945C8.74752 15.0671 8.19544 15.6172 7.52045 15.6172C6.84545 15.6172 6.29341 15.0669 6.29341 14.3945V12.4165C6.29341 11.7439 6.84545 11.1938 7.52045 11.1938C8.19544 11.1938 8.74752 11.7439 8.74752 12.4165V14.3945ZM13.0083 14.3945C13.0083 15.0671 12.4563 15.6172 11.7813 15.6172C11.1063 15.6172 10.5543 15.0669 10.5543 14.3945V12.4165C10.5543 11.7439 11.1065 11.1938 11.7813 11.1938C12.4563 11.1938 13.0083 11.7439 13.0083 12.4165V14.3945Z",fill:"url(#paint1_linear_1765_9937)"}),Cr("defs",{children:[Cr("linearGradient",{id:"paint0_linear_1765_9937",x1:"14",y1:"0",x2:"14",y2:"28",gradientUnits:"userSpaceOnUse",children:[jt("stop",{stopColor:"#534BB1"}),jt("stop",{offset:"1",stopColor:"#551BF9"})]}),Cr("linearGradient",{id:"paint1_linear_1765_9937",x1:"14.2976",y1:"5.06372",x2:"14.2976",y2:"23.5318",gradientUnits:"userSpaceOnUse",children:[jt("stop",{stopColor:"white"}),jt("stop",{offset:"1",stopColor:"white",stopOpacity:"0.82"})]})]})]});var Er=class extends ve{constructor(){super("phantom");this.connectorType="injected";this.proxyProvider=new z,this.subscribeListeners(),this.proxyProvider.setWalletProvider(window.phantom.ethereum),this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}async connect(o){return o.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}get walletBranding(){return{name:"Phantom",icon:Oe}}disconnect(){console.warn("Phantom does not support programmatic disconnect.")}async promptConnection(){try{let o=await this.proxyProvider.request({method:"eth_requestAccounts"});await this.syncAccounts(o)}catch(o){throw Le(o)}}};import{EthereumProvider as fd}from"@walletconnect/ethereum-provider";import{WalletConnectModal as yd}from"@walletconnect/modal";import{isAndroid as Da,isMobile as gd}from"react-device-detect";import{createContext as ad,useContext as sd,useEffect as Wn,useState as Wa}from"react";import{jsx as id}from"react/jsx-runtime";function Ia(e){return id("link",{rel:"prefetch",href:e.src})}import{jsx as ld,jsxs as cd}from"react/jsx-runtime";var Ye="LANDING",Na=ad({ready:!1,app:null,currentScreen:Ye,lastScreen:Ye,navigate:x,navigateBack:x,setModalData:x}),La=e=>{var h,C,b;let t=e.appConfig,o=e.authenticated,r=e.visible,[n,i]=Wa(e.initialScreen||Ye),[a,l]=Wa(e.initialScreen||Ye);Wn(()=>{o||i(Ye)},[o]),Wn(()=>{r||(l(Ye),i(Ye))},[r]),Wn(()=>{e.initialScreen&&n===Ye&&(i(e.initialScreen),l(e.initialScreen))},[e.initialScreen]);let s=e.initialScreen&&n===Ye?e.initialScreen:n,u={ready:!!(t!=null&&t.id),app:t,data:e.data,setModalData:e.setModalData,currentScreen:s,lastScreen:a,navigate:m=>{l(n),i(m)},navigateBack:()=>{i(a)}};return cd(Na.Provider,{value:u,children:[(typeof((h=t==null?void 0:t.appearance)==null?void 0:h.logo)=="string"||((b=(C=t==null?void 0:t.appearance)==null?void 0:C.logo)==null?void 0:b.type)==="img")&&ld(Ia,{src:typeof t.appearance.logo=="string"?t.appearance.logo:t.appearance.logo.props.src}),e.children]})},v=()=>sd(Na);import{jsx as Kt,jsxs as dd}from"react/jsx-runtime";var Yt=({style:e,...t})=>{let{app:o}=v();return dd("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"28px",width:"28px",...e},...t,children:[Kt("rect",{width:"28",height:"28",rx:"3",fill:(o==null?void 0:o.appearance.palette.colorScheme)==="dark"?"#3396ff":"#141414"}),Kt("g",{clipPath:"url(#clip0_1765_9946)",children:Kt("path",{d:"M8.09448 10.3941C11.3558 7.20196 16.6442 7.20196 19.9055 10.3941L20.2982 10.7782C20.3369 10.8157 20.3677 10.8606 20.3887 10.9102C20.4097 10.9599 20.4206 11.0132 20.4206 11.0671C20.4206 11.121 20.4097 11.1744 20.3887 11.224C20.3677 11.2737 20.3369 11.3186 20.2982 11.3561L18.9554 12.6702C18.9158 12.7086 18.8628 12.7301 18.8077 12.7301C18.7526 12.7301 18.6996 12.7086 18.66 12.6702L18.1198 12.1415C15.8448 9.91503 12.1557 9.91503 9.88015 12.1415L9.30167 12.7075C9.26207 12.7459 9.20909 12.7673 9.15395 12.7673C9.0988 12.7673 9.04582 12.7459 9.00622 12.7075L7.66346 11.3934C7.62475 11.3559 7.59397 11.3109 7.57295 11.2613C7.55193 11.2117 7.5411 11.1583 7.5411 11.1044C7.5411 11.0505 7.55193 10.9971 7.57295 10.9475C7.59397 10.8979 7.62475 10.8529 7.66346 10.8154L8.09448 10.3941ZM22.6829 13.1115L23.8776 14.2814C23.9163 14.319 23.9471 14.3639 23.9681 14.4135C23.9892 14.4632 24 14.5165 24 14.5704C24 14.6243 23.9892 14.6777 23.9681 14.7273C23.9471 14.777 23.9163 14.8219 23.8776 14.8594L18.4893 20.1332C18.4102 20.2101 18.3042 20.2531 18.1938 20.2531C18.0835 20.2531 17.9775 20.2101 17.8984 20.1332L14.0743 16.3901C14.0545 16.3708 14.0279 16.36 14.0003 16.36C13.9726 16.36 13.9461 16.3708 13.9263 16.3901L10.1021 20.1332C10.023 20.2101 9.91703 20.2531 9.8067 20.2531C9.69636 20.2531 9.59038 20.2101 9.51124 20.1332L4.12236 14.8594C4.08365 14.8219 4.05287 14.777 4.03185 14.7273C4.01083 14.6777 4 14.6243 4 14.5704C4 14.5165 4.01083 14.4632 4.03185 14.4135C4.05287 14.3639 4.08365 14.319 4.12236 14.2814L5.31767 13.1115C5.39678 13.0348 5.50265 12.9919 5.61285 12.9919C5.72305 12.9919 5.82892 13.0348 5.90803 13.1115L9.73216 16.8546C9.75194 16.874 9.7785 16.8848 9.80616 16.8848C9.83381 16.8848 9.86037 16.874 9.88015 16.8546L13.7043 13.1115C13.7834 13.0346 13.8894 12.9916 13.9997 12.9916C14.1101 12.9916 14.216 13.0346 14.2952 13.1115L18.1198 16.8546C18.1396 16.874 18.1662 16.8848 18.1938 16.8848C18.2215 16.8848 18.2481 16.874 18.2678 16.8546L22.092 13.1115C22.1711 13.0346 22.2771 12.9916 22.3874 12.9916C22.4977 12.9916 22.6037 13.0346 22.6829 13.1115Z",fill:"white"})}),Kt("defs",{children:Kt("clipPath",{id:"clip0_1765_9946",children:Kt("rect",{width:"20",height:"12.2531",fill:"white",transform:"translate(4 8)"})})})]})};import{isAndroid as pd}from"react-device-detect";var xr=e=>{let t;try{t=new URL(e).hostname}catch{return}for(let[o,r]of Object.entries(ud))if(r.hostname===t)return{walletClientType:o,entry:r}};var ud={metamask:{id:"c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96",displayName:"MetaMask",image_id:"5195e9db-94d8-4579-6f11-ef553be95100",hostname:"metamask.io",mobile:{native:"metamask:"}},trust:{id:"4622a2b2d6af1c9844944291e5e7351a6aa24cd7b23099efac1b2fd875da31a0",displayName:"Trust",image_id:"0528ee7e-16d1-4089-21e3-bbfb41933100",hostname:"trustwallet.com",mobile:{universal:"https://link.trustwallet.com"}},safe:{id:"225affb176778569276e484e1b92637ad061b01e13a048b35a9d280c3b58970f",displayName:"Safe",image_id:"a1cb2777-f8f9-49b0-53fd-443d20ee0b00",hostname:"safe.global",mobile:{universal:"https://app.safe.global/"}},rainbow:{id:"1ae92b26df02f0abca6304df07debccd18262fdf5fe82daa81593582dac9a369",displayName:"Rainbow",image_id:"7a33d7f1-3d12-4b5c-f3ee-5cd83cb1b500",hostname:"rainbow.me",mobile:{universal:"https://rnbwapp.com"}},uniswap:{id:"c03dfee351b6fcc421b4494ea33b9d4b92a984f87aa76d1663bb28705e95034a",displayName:"Uniswap",image_id:"bff9cf1f-df19-42ce-f62a-87f04df13c00",hostname:"uniswap.org",mobile:{universal:"https://uniswap.org/app"}},zerion:{id:"ecc4036f814562b41a5268adc86270fba1365471402006302e70169465b7ac18",displayName:"Zerion",image_id:"f216b371-96cf-409a-9d88-296392b85800",hostname:"zerion.io",mobile:{universal:"https://wallet.zerion.io"}},argent:{id:"bc949c5d968ae81310268bf9193f9c9fb7bb4e1283e1284af8f2bd4992535fd6",displayName:"Argent",image_id:"215158d2-614b-49c9-410f-77aa661c3900",hostname:"www.argent.xyz",mobile:{universal:"https://www.argent.xyz/app"}},spot:{id:"74f8092562bd79675e276d8b2062a83601a4106d30202f2d509195e30e19673d",displayName:"Spot",image_id:"1bf33a89-b049-4a1c-d1f6-4dd7419ee400",hostname:"www.spot-wallet.com",mobile:{universal:"https://spot.so"}},omni:{id:"afbd95522f4041c71dd4f1a065f971fd32372865b416f95a0b1db759ae33f2a7",displayName:"Omni",image_id:"2cd67b4c-282b-4809-e7c0-a88cd5116f00",hostname:"omni.app",mobile:{universal:"https://links.omni.app"}},cryptocom:{id:"f2436c67184f158d1beda5df53298ee84abfc367581e4505134b5bcf5f46697d",displayName:"Crypto.com",image_id:"7c5ff577-a68d-49c5-02cd-3d83637b0b00",hostname:"crypto.com",mobile:{universal:"https://wallet.crypto.com"}},blockchain:{id:"84b43e8ddfcd18e5fcb5d21e7277733f9cccef76f7d92c836d0e481db0c70c04",displayName:"Blockchain",image_id:"6f913b80-86c0-46f9-61ca-cc90a1805900",hostname:"www.blockchain.com",mobile:{universal:"https://www.blockchain.com"}},safepal:{id:"0b415a746fb9ee99cce155c2ceca0c6f6061b1dbca2d722b3ba16381d0562150",displayName:"SafePal",image_id:"252753e7-b783-4e03-7f77-d39864530900",hostname:"safepal.com",mobile:{universal:"https://link.safepal.io"}},bitkeep:{id:"38f5d18bd8522c244bdd70cb4a68e0e718865155811c043f052fb9f1c51de662",displayName:"BitKeep",image_id:"3f7075d0-4ab7-4db5-404d-3e4c05e6fe00",hostname:"bitkeep.com",mobile:{universal:"https://bkapp.vip"}},zengo:{id:"9414d5a85c8f4eabc1b5b15ebe0cd399e1a2a9d35643ab0ad22a6e4a32f596f0",displayName:"ZenGo",image_id:"cfc07342-23ea-4f3f-f071-ec9d2cd86b00",hostname:"zengo.com",mobile:{universal:"https://get.zengo.com/"}},"1inch":{id:"c286eebc742a537cd1d6818363e9dc53b21759a1e8e5d9b263d0c03ec7703576",displayName:"1inch",image_id:"52b1da3c-9e72-40ae-5dac-6142addd9c00",hostname:"wallet.1inch.io",mobile:{universal:"https://wallet.1inch.io/wc/"}},binance:{id:"8a0ee50d1f22f6651afcae7eb4253e52a3310b90af5daef78a8c4929a9bb99d4",displayName:"Binance",image_id:"ebac7b39-688c-41e3-7912-a4fefba74600",hostname:"www.binance.com",mobile:{universal:"https://app.binance.com/cedefi"}},exodus:{id:"e9ff15be73584489ca4a66f64d32c4537711797e30b6660dbcb71ea72a42b1f4",displayName:"Exodus",image_id:"4c16cad4-cac9-4643-6726-c696efaf5200",hostname:"exodus.com",mobile:{universal:"https://exodus.com/m"}},mew_wallet:{id:"f5b4eeb6015d66be3f5940a895cbaa49ef3439e518cd771270e6b553b48f31d2",displayName:"MEW wallet",image_id:"e2024511-2c9b-46d7-3111-52df3d241700",hostname:"mewwallet.com",mobile:{universal:"https://mewwallet.com"}},alphawallet:{id:"138f51c8d00ac7b9ac9d8dc75344d096a7dfe370a568aa167eabc0a21830ed98",displayName:"AlphaWallet",image_id:"5b1cddfb-056e-4e78-029a-54de5d70c500",hostname:"alphawallet.com",mobile:{universal:"https://aw.app"}},keyring_pro:{id:"47bb07617af518642f3413a201ec5859faa63acb1dd175ca95085d35d38afb83",displayName:"KEYRING PRO",image_id:"dda0f0fb-34e8-4a57-dcea-b008e7d1ff00",hostname:"keyring.app",mobile:{universal:"https://keyring.app/"}},mathwallet:{id:"7674bb4e353bf52886768a3ddc2a4562ce2f4191c80831291218ebd90f5f5e26",displayName:"MathWallet",image_id:"26a8f588-3231-4411-60ce-5bb6b805a700",hostname:"mathwallet.org",mobile:{universal:"https://www.mathwallet.org"}},unstoppable:{id:"8308656f4548bb81b3508afe355cfbb7f0cb6253d1cc7f998080601f838ecee3",displayName:"Unstoppable",image_id:"4725dda0-4471-4d0f-7adf-6bbe8b929c00",hostname:"unstoppabledomains.com",mobile:{universal:"https://unstoppabledomains.com/mobile"}},obvious:{id:"031f0187049b7f96c6f039d1c9c8138ff7a17fd75d38b34350c7182232cc29aa",displayName:"Obvious",image_id:"61abe2ca-b06d-4a8b-de3e-8326f523e900",hostname:"obvious.technology",mobile:{universal:"https://wallet.obvious.technology"}},ambire:{id:"2c81da3add65899baeac53758a07e652eea46dbb5195b8074772c62a77bbf568",displayName:"Ambire",image_id:"c39b3a16-1a38-4588-f089-cb7aeb584700",hostname:"www.ambire.com",mobile:{universal:"https://mobile.ambire.com"}},internet_money_wallet:{id:"dd43441a6368ec9046540c46c5fdc58f79926d17ce61a176444568ca7c970dcd",displayName:"Internet Money Wallet",image_id:"204b2240-5ce4-4996-6ec4-f06a22726900",hostname:"internetmoney.io",mobile:{universal:"https://internetmoney.io"}},coin98:{id:"2a3c89040ac3b723a1972a33a125b1db11e258a6975d3a61252cd64e6ea5ea01",displayName:"Coin98",image_id:"fc460647-ea95-447a-99f0-1bff8fa4be00",hostname:"coin98.com",mobile:{universal:"https://coin98.services"}},abc_wallet:{id:"b956da9052132e3dabdcd78feb596d5194c99b7345d8c4bd7a47cabdcb69a25f",displayName:"ABC Wallet",image_id:"f9854c79-14ba-4987-42e1-4a82abbf5700",hostname:"myabcwallet.io",mobile:{universal:"https://abcwalletconnect.page.link"}},arculus_wallet:{id:"0e4915107da5b3408b38e248f7a710f4529d54cd30e9d12ff0eb886d45c18e92",displayName:"Arculus Wallet",image_id:"f78dab27-7165-4a3d-fdb1-fcff06c0a700",hostname:"www.getarculus.com",mobile:{universal:"https://gw.arculus.co/app"}},haha:{id:"719bd888109f5e8dd23419b20e749900ce4d2fc6858cf588395f19c82fd036b3",displayName:"HaHa",image_id:"79285c9f-2630-451e-0680-c71b42fb7400",hostname:"www.haha.me",mobile:{universal:"https://haha.me"}},cling_wallet:{id:"942d0e22a7e6b520b0a03abcafc4dbe156a1fc151876e3c4a842f914277278ef",displayName:"Cling Wallet",image_id:"2d8006c3-852b-458a-d6b0-916c5ba76800",hostname:"clingon.io",mobile:{universal:"https://cling.carrieverse.com/apple-app-site-association"}},broearn:{id:"8ff6eccefefa7506339201bc33346f92a43118d6ff7d6e71d499d8187a1c56a2",displayName:"Broearn",image_id:"339b9e9d-e2a7-46eb-4ed3-272321257a00",hostname:"www.broearn.com",mobile:{universal:"https://www.broearn.com/link/wallet/"}},copiosa:{id:"07f99a5d9849bb049d74830012b286f8b238e72b0337933ef22b84947409db80",displayName:"Copiosa",image_id:"cae1be94-9f53-4eba-b915-f6e381d5a500",hostname:"copiosa.io",mobile:{universal:"https://copiosa.io/action/"}},burrito_wallet:{id:"8821748c25de9dbc4f72a691b25a6ddad9d7df12fa23333fd9c8b5fdc14cc819",displayName:"Burrito Wallet",image_id:"7eec7187-3f48-4fda-53bb-b0ad55749a00",hostname:"burritowallet.com",mobile:{universal:"https://burritowallet.com/wc?uri="}},enjin_wallet:{id:"bdc9433ffdaee55d31737d83b931caa1f17e30666f5b8e03eea794bac960eb4a",displayName:"Enjin Wallet",image_id:"add9626b-a5fa-4c12-178c-e5584e6dcd00",hostname:"enjin.io",mobile:{universal:"https://deeplink.wallet.enjin.io/"}},plasma_wallet:{id:"cbe13eb482c76f1fa401ff4c84d9acd0b8bc9af311ca0620a0b192fb28359b4e",displayName:"Plasma Wallet",image_id:"c268e78d-ffb0-4c8b-5cad-04c3add48500",hostname:"plasma-wallet.com",mobile:{universal:"https://plasma-wallet.com"}},avacus:{id:"94f785c0c8fb8c4f38cd9cd704416430bcaa2137f27e1468782d624bcd155a43",displayName:"Avacus",image_id:"a7106965-91cc-4a73-4688-c5c72ae0ed00",hostname:"avacus.cc",mobile:{universal:"https://avacus.app.link"}},bee:{id:"2cca8c1b0bea04ba37dee4017991d348cdb7b826804ab2bd31073254f345b715",displayName:"Bee",image_id:"f90bc33f-f085-40cf-7538-fae5ae84f900",hostname:"www.beewallet.app",mobile:{universal:"https://beewallet.app/wc"}},pitaka:{id:"14e5d957c6eb62d3ee8fc6239703ac2d537d7e3552154836ca0beef775f630bc",displayName:"Pitaka",image_id:"691c0716-5213-4b99-e837-079268313800",hostname:"pitaka.io",mobile:{universal:"https://app.pitaka.io"}},pltwallet:{id:"576c90ceaea34f29ff0104837cf2b2e23d201be43be1433feeb18d375430e1fd",displayName:"PLTwallet",image_id:"a5d9dd15-8cef-42de-8bed-09e01a8b0200",hostname:"pltwallet.io",mobile:{universal:"https://pltwallet.io/"}},minerva:{id:"49bb9d698dbdf2c3d4627d66f99dd9fe90bba1eec84b143f56c64a51473c60bd",displayName:"Minerva",image_id:"b57b2163-1bd8-4f6b-3311-470767e6d200",hostname:"minerva.digital",mobile:{universal:"https://minerva.digital"}},kryptogo:{id:"19418ecfd44963883e4d6abca1adeb2036f3b5ffb9bee0ec61f267a9641f878b",displayName:"KryptoGO",image_id:"3ccbd966-97e8-45a0-1ceb-6141a8978e00",hostname:"kryptogo.com",mobile:{universal:"https://kryptogo.page.link"}},prema:{id:"5b8e33346dfb2a532748c247876db8d596734da8977905a27b947ba1e2cf465b",displayName:"PREMA",image_id:"6487869b-1165-4f30-aa3a-115665be8300",hostname:"premanft.com",mobile:{universal:"https://premanft.com"}},slingshot:{id:"d23de318f0f56038c5edb730a083216ff0cce00c1514e619ab32231cc9ec484b",displayName:"Slingshot",image_id:"10c75467-6612-48ad-b97b-63985e922200",hostname:"slingshot.finance",mobile:{universal:"https://app.slingshot.finance"}},kriptonio:{id:"50df7da345f84e5a79aaf617df5167335a4b6751626df2e8a38f07029b3dde7b",displayName:"Kriptonio",image_id:"363fae03-882a-4d81-a721-6e6f6e9ac500",hostname:"kriptonio.com",mobile:{universal:"https://app.kriptonio.com/mobile"}},timeless:{id:"9751385960bca290c13b443155288f892f62ee920337eda8c5a8874135daaea8",displayName:"Timeless",image_id:"32e89601-0490-42fc-0cc4-8627d62a2000",hostname:"timelesswallet.xyz",mobile:{universal:"https://timelesswallet.xyz"}},secux:{id:"6464873279d46030c0b6b005b33da6be5ed57a752be3ef1f857dc10eaf8028aa",displayName:"SecuX",image_id:"98183be0-3125-45ee-a6b6-fbd47ebefd00",hostname:"secuxtech.com",mobile:{universal:"https://wsweb.secuxtech.com"}},bitizen:{id:"41f20106359ff63cf732adf1f7dc1a157176c9b02fd266b50da6dcc1e9b86071",displayName:"Bitizen",image_id:"75dd1471-77e9-4811-ce57-ec8fc980ec00",hostname:"bitizen.org",mobile:{universal:"https://bitizen.org/wallet"}},blocto:{id:"14e7176536cb3706e221daaa3cfd7b88b7da8c7dfb64d1d241044164802c6bdd",displayName:"Blocto",image_id:"374258d3-c749-4f37-7815-77e61f798c00",hostname:"blocto.io",mobile:{universal:"https://blocto.app"}},safemoon:{id:"a0e04f1086aac204d4ebdd5f985c12ed226cd0006323fd8143715f9324da58d1",displayName:"SafeMoon",image_id:"ea0140c7-787c-43a4-838f-d5ab6a342000",hostname:"safemoon.com",mobile:{universal:"https://safemoon.com/wc"}}},Ma=(e,t="md")=>`https://registry.walletconnect.com/v2/logo/${t}/${e}`;function md(e){return{name:e.displayName||"",universalLink:e.mobile.universal||"",deepLink:e.mobile.native||""}}function hd(e,t){let o=encodeURIComponent(e);return t.universalLink?`${t.universalLink}/wc?uri=${o}`:t.deepLink?`${t.deepLink}${t.deepLink.endsWith(":")?"//":"/"}wc?uri=${e}`:""}function Oa(e,t){return pd?e:hd(e,md(t))}var ko=class extends ve{constructor(o,r){super(r||"unknown");this.connectorType="wallet_connect_v2";this.walletConnectCloudProjectId=o,this.proxyProvider=new z,this.createProvider().then(n=>{var i,a;if(this.provider=n,this.proxyProvider.setWalletProvider(n),this.subscribeListeners(),n.session){if((i=this.walletProvider.session)!=null&&i.peer.metadata.url){let l=xr((a=this.walletProvider.session)==null?void 0:a.peer.metadata.url);this.walletEntry=l==null?void 0:l.entry,this.walletClientType=(l==null?void 0:l.walletClientType)||"unknown"}this.connected=!0,this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}else this.emit("initialized"),this.initialized=!0}),this.modal=new yd({projectId:this.walletConnectCloudProjectId}),this.modal.subscribeModal(n=>{!n.open&&!this.walletProvider.session&&this.onQrModalClosed&&this.onQrModalClosed()})}async connect(o){return o.showPrompt&&await this.promptConnection(),this.getConnectedWallet()}async isConnected(){return this.walletProvider.connected}get walletBranding(){var o,r,n;return this.walletEntry?{name:this.walletEntry.displayName,icon:this.walletClientType==="metamask"?ae:Ma(this.walletEntry.image_id)}:{name:Sn(((o=this.walletProvider.session)==null?void 0:o.peer.metadata.name)||"")||"WalletConnect",icon:((n=(r=this.walletProvider.session)==null?void 0:r.peer.metadata.icons)==null?void 0:n[0])||Yt}}async resetConnection(){await this.isConnected()&&(await this.walletProvider.disconnect(),this.walletEntry=void 0)}async promptConnection(){if(!!this.provider)return new Promise((o,r)=>{let n=()=>{r(new Vt)};this.onQrModalClosed=n,(async()=>{var s,u;let a="",l=await Promise.race([this.walletProvider.enable(),In()]);if(l.length>0&&(a=l[0]),!a||a==="")throw new G("Unable to retrieve address");if((s=this.walletProvider.session)!=null&&s.peer.metadata.url){let h=xr((u=this.walletProvider.session)==null?void 0:u.peer.metadata.url);this.walletEntry=h==null?void 0:h.entry,this.walletClientType=(h==null?void 0:h.walletClientType)||"unknown"}this.connected=!0,await this.syncAccounts(l),o()})().catch(a=>{if(a){r(Le(a));return}r(new G("Unknown error during connection"))}).finally(()=>this.modal.closeModal())})}disconnect(){this.walletProvider.disconnect().then(()=>this.onDisconnect()).catch(()=>console.warn("Unable to disconnect Wallet Connect provider"))}get walletProvider(){return this.proxyProvider.walletProvider}setWalletProvider(o){this.proxyProvider.setWalletProvider(o)}async createProvider(){var n,i;let o={};for(let a of pr){let l=(i=(n=a.rpcUrls.infura)==null?void 0:n.http)==null?void 0:i[0];l&&(o[a.id]=l+"/"+Ft)}let r=await fd.init({projectId:this.walletConnectCloudProjectId,chains:[1],rpcMap:o,showQrModal:!1});return r.on("display_uri",a=>{if(gd&&this.walletEntry){let s=Oa(a,this.walletEntry);Da?window.open(s,"_self"):window.open(s,"_self","noopener,noreferrer")}else Da?window.open(a,"_self"):this.modal.openModal({uri:a})}),r.on("connect",()=>{var a,l;if(this.modal.closeModal(),(a=r.session)!=null&&a.peer.metadata.url){let s=xr((l=r.session)==null?void 0:l.peer.metadata.url);this.walletEntry=s==null?void 0:s.entry,this.walletClientType=(s==null?void 0:s.walletClientType)||"unknown"}}),r}async enableProvider(){return this.walletProvider.connected?Promise.resolve(this.walletProvider.accounts):await this.walletProvider.enable()}};var Nn=e=>{let t=localStorage.getItem("-walletlink:https://www.walletlink.org:Addresses");return t?!!(e==null?void 0:e.linkedAccounts.filter(r=>r.type=="wallet"&&r.address===Ua(t)).length):!1},Ro=class extends vd{constructor(o){super();this.getEthereumProvider=()=>{let o=this.wallets[0],r=this.walletConnectors.find(n=>n.wallets.find(i=>i.address===(o==null?void 0:o.address)));return!o||!r?new z:r.proxyProvider};this.walletConnectCloudProjectId=o,this.walletConnectors=[],this.initialized=!1,this.storedConnections=this.loadConnectionHistory()}get wallets(){let o=new Set,r=this.walletConnectors.flatMap(i=>i.wallets).sort((i,a)=>i.connectedAt&&a.connectedAt?a.connectedAt-i.connectedAt:0).filter(i=>{let a=`${i.address}${i.walletClientType}${i.connectorType}`;return o.has(a)?!1:(o.add(a),!0)}),n=r.findIndex(i=>i.address===(this.activeWallet?this.activeWallet:"unknown"));return n>=0&&r.unshift(r.splice(n,1)[0]),r}initialize(){this.initialized||(j.get(Tn)&&(j.getKeys().forEach(o=>{o.startsWith("walletconnect")&&j.del(o)}),j.del(Tn)),xa().then(o=>o.forEach(r=>{switch(r){case"metamask":this.createWalletConnector("injected","metamask");break;case"phantom":this.createWalletConnector("injected","phantom");break;case"unknown":default:break}})),(it()||j.getKeys().find(o=>o.startsWith("-walletlink")))&&this.createWalletConnector("coinbase_wallet","coinbase_wallet"),this.createWalletConnector("wallet_connect_v2","unknown"),this.initialized=!0)}findWalletConnector(o,r){return o==="wallet_connect_v2"?this.walletConnectors.find(n=>n.connectorType===o)||null:this.walletConnectors.find(n=>n.connectorType===o&&n.walletClientType===r)||null}onInitialized(o){o.wallets.forEach(r=>{let n=this.storedConnections.find(i=>i.address===r.address&&i.connectorType===r.connectorType&&i.walletClientType===r.walletClientType);n&&(r.connectedAt=n.connectedAt)}),this.saveConnectionHistory(),this.emit("walletsUpdated")}onWalletsUpdated(o){o.initialized&&(this.saveConnectionHistory(),this.emit("walletsUpdated"))}addEmbeddedWalletConnector(o,r){if(!this.findWalletConnector("embedded","privy")){let i=new fr(o,r),a=new br(i);this.addWalletConnector(a)}}removeEmbeddedWalletConnector(){let o=this.findWalletConnector("embedded","privy");if(o){let r=this.walletConnectors.indexOf(o);this.walletConnectors.splice(r,1),this.saveConnectionHistory(),this.emit("walletsUpdated")}}async createWalletConnector(o,r){let n=this.findWalletConnector(o,r);if(n)return n instanceof ko&&await n.resetConnection(),n;let a=(()=>{switch(o){case"injected":switch(r){case"phantom":return Pe()?new Er:null;case"metamask":default:return _o()?new wr:null}case"coinbase_wallet":return new vr;case"wallet_connect_v2":return new ko(this.walletConnectCloudProjectId)}})();return a&&this.addWalletConnector(a),a||null}addWalletConnector(o){this.walletConnectors.push(o),o.on("initialized",()=>this.onInitialized(o)),o.on("walletsUpdated",()=>this.onWalletsUpdated(o))}loadConnectionHistory(){let o=a=>a&&typeof a.address=="string"&&typeof a.connectorType=="string"&&typeof a.walletClientType=="string"&&typeof a.connectedAt=="number",r=j.get(Pn);return r&&Array.isArray(r)&&r.map(a=>o(a)).every(Boolean)?r:[]}saveConnectionHistory(){let o=this.wallets.map(r=>({address:r.address,connectorType:r.connectorType,walletClientType:r.walletClientType,connectedAt:r.connectedAt}));j.put(Pn,o)}async activeWalletSign(o){let r=this.wallets,n=r.length>0?r[0]:null;return n?n.sign(o):null}setActiveWallet(o){this.activeWallet=Ua(o),this.emit("walletsUpdated")}};function yr(e,t){if(e.length!==t.length)return!1;for(let o=0;o<e.length;o++){let r=e[o],n=t[o];if((r==null?void 0:r.address)!==(n==null?void 0:n.address)||(r==null?void 0:r.chainId)!==(n==null?void 0:n.chainId)||(r==null?void 0:r.connectorType)!==(n==null?void 0:n.connectorType)||(r==null?void 0:r.connectedAt)!==(n==null?void 0:n.connectedAt)||(r==null?void 0:r.walletClientType)!==(n==null?void 0:n.walletClientType)||(r==null?void 0:r.isConnected)!==(n==null?void 0:n.isConnected)||(r==null?void 0:r.linked)!==(n==null?void 0:n.linked))return!1}return!0}import{ofetch as bd}from"ofetch";var wd=[sr(),lr()],Tr=class{constructor(t,o,r){this.appId=t,this.sdkVersion=Cn,this.client=o,this.defaults=r,this.fallbackApiUrl=o.fallbackApiUrl,this.baseFetch=bd.create({baseURL:this.defaults.baseURL,credentials:"include",onRequest:async({request:n,options:i})=>{let a=new Headers(i.headers);a.set("privy-app-id",this.appId),a.set("privy-client",`react-auth:${this.sdkVersion}`);let l=!wd.includes(n.toString());if(!a.has("authorization")&&l){let s=await this.client.getAccessToken();s!==null&&a.set("authorization",`Bearer ${s}`)}i.headers=a,i.signal||(i.signal=AbortSignal.timeout(this.defaults.timeout))},onRequestError:({error:n})=>{if(n instanceof DOMException&&n.name==="AbortError")throw new ar}})}async get(t,o){try{return await this.baseFetch(t,o)}catch(r){throw J(r)}}async post(t,o,r){try{return await this.baseFetch(t,{method:"POST",...o?{body:o}:{},...r})}catch(n){throw J(n)}}async delete(t,o){try{return await this.baseFetch(t,{method:"DELETE",...o})}catch(r){throw J(r)}}};import Pr from"js-cookie";function Ba(e){return e instanceof yt?"email":e instanceof vt?"sms":e instanceof gt?"siwe":e instanceof rt?e.meta.provider:null}var ct=class{constructor(t){this.promise=null;this.fn=t}execute(t){return this.promise===null&&(this.promise=(async()=>{try{return await this.fn(t)}finally{this.promise=null}})()),this.promise}};import*as Fa from"jose";var De=class{static parse(t){try{return new De(t)}catch{return null}}constructor(t){this.value=t,this._decoded=Fa.decodeJwt(t)}get subject(){return this._decoded.sub}get expiration(){return this._decoded.exp}get issuer(){return this._decoded.iss}get audience(){return this._decoded.aud}isExpired(t=0){let o=Date.now(),r=(this.expiration-t)*1e3;return o>=r}};var Cd=30,_r=class{constructor(){this.authenticateOnce=new ct(async t=>this._authenticate(t)),this.linkOnce=new ct(async t=>this._link(t)),this.refreshOnce=new ct(this._refresh.bind(this)),this.destroyOnce=new ct(this._destroy.bind(this)),this.forkSessionOnce=new ct(this._forkSession.bind(this))}get token(){try{let t=j.get(Gt);return typeof t=="string"?new De(t).value:null}catch(t){return console.error(t),this.destroyLocalState(),null}}get refreshToken(){try{let t=j.get(dr);return typeof t=="string"?t:null}catch(t){return console.error(t),this.destroyLocalState(),null}}get forkedToken(){try{let t=j.get(Po);return typeof t=="string"?t:null}catch(t){return console.error(t),this.destroyLocalState(),null}}hasRefreshCredentials(){return typeof this.token=="string"&&typeof this.refreshToken=="string"}hasRecoveryCredentials(){return typeof this.forkedToken=="string"}hasActiveToken(){let t=De.parse(this.token);return t!==null&&!t.isExpired(Cd)}authenticate(t){return this.authenticateOnce.execute(t)}link(t){return this.linkOnce.execute(t)}refresh(){return this.refreshOnce.execute()}forkSession(){return this.forkSessionOnce.execute()}destroy(){return this.destroyOnce.execute()}async _authenticate(t){try{let{token:o,refresh_token:r,user:n,is_new_user:i}=await t.authenticate();this.storeToken(o),this.storeRefreshToken(r);let a=Ba(t);return a&&this.client&&this.client.createAnalyticsEvent("sdk_authenticate",{method:a,isNewUser:i}),a==="siwe"&&this.client&&this.client.createAnalyticsEvent("sdk_authenticate_siwe",{connectorType:t.meta.connectorType,walletClientType:t.meta.walletClientType}),{user:je(n),isNewUser:i}}catch(o){throw console.warn("Error authenticating session"),xe(o)}}async _link(t){try{let o=await t.link();return je(o)}catch(o){throw console.warn("Error linking account"),xe(o)}}async _refresh(){if(!this.api)throw new P("Session has no API instance");if(!this.client)throw new P("Session has no PrivyClient instance");await this.client.getAccessToken({disableAutoRefresh:!0});let t=this.token,o=this.refreshToken,r=this.forkedToken;try{let n;if(t&&o)n=await this.api.post(sr(),{refresh_token:o},{headers:{authorization:`Bearer ${t}`}}),r&&this.clearForkedToken();else if(r)n=await this.api.post(lr(),{refresh_token:r}),this.clearForkedToken();else return null;return this.storeToken(n.token),this.storeRefreshToken(n.refresh_token),je(n.user)}catch(n){if(n instanceof Ut&&n.status===400&&n.message==="Invalid auth token")return this.destroyLocalState(),null;throw xe(n)}}async _destroy(){var t;try{await((t=this.api)==null?void 0:t.post(Di(),{refresh_token:this.refreshToken}))}catch{console.warn("Error destroying session")}this.destroyLocalState()}async _forkSession(){if(!this.api)throw new P("Session has no API instance");let t=this.refreshToken;try{let o=await this.api.post(Ui(),{refresh_token:t});return this.storeToken(o.token),this.storeRefreshToken(o.refresh_token),o.new_session_refresh_token}catch(o){throw xe(o)}}destroyLocalState(){this.storeToken(null),this.storeRefreshToken(null),this.clearForkedToken()}storeToken(t){var o;if(typeof t=="string"){j.put(Gt,t);let r=(o=De.parse(t))==null?void 0:o.expiration;Pr.set(En,t,{sameSite:"Strict",secure:!0,expires:r?new Date(r*1e3):void 0})}else j.del(Gt),Pr.remove(En)}storeRefreshToken(t){typeof t=="string"?(j.put(dr,t),Pr.set(xn,t,{sameSite:"Strict",secure:!0,expires:30})):(j.del(dr),Pr.remove(xn))}clearForkedToken(){j.del(Po)}};var Ln,Io=class{constructor(t){this.apiUrl=t.apiUrl||cr,this.fallbackApiUrl=this.apiUrl,this.timeout=t.timeout||na,this.appId=t.appId,this.clientAnalyticsId=typeof window>"u"?null:crypto.randomUUID(),Ln||(Ln=new _r),this.session=Ln,this.api=this.generateApi(),this.session.client=this}initializeConnectorManager(t){this.connectors||(this.connectors=new Ro(t))}generateApi(){let t=new Tr(this.appId,this,{baseURL:this.apiUrl,timeout:this.timeout});return this.session.api=t,t}updateApiUrl(t){this.apiUrl=t||this.fallbackApiUrl,this.api=this.generateApi()}authenticate(){if(!this.authFlow)throw new P("No auth flow in progress.");return this.session.authenticate(this.authFlow)}link(){if(!this.authFlow)throw new P("No auth flow in progress.");return this.session.link(this.authFlow)}async logout(){await this.session.destroy(),this.authFlow=void 0}startAuthFlow(t){t.api=this.api,this.authFlow=t}async unlinkEmail(t){try{let o=await this.api.post(Ji(),{address:t});return je(o)}catch(o){throw xe(o)}}async unlinkPhone(t){try{let o=await this.api.post(Xi(),{phoneNumber:t});return je(o)}catch(o){throw xe(o)}}async unlinkWallet(t){try{let o=await this.api.post(Zi(),{address:t});return je(o)}catch(o){throw xe(o)}}async unlinkOAuth(t,o){try{let r=await this.api.post(ea(),{provider:t,subject:o});return je(r)}catch(r){throw xe(r)}}async createAnalyticsEvent(t,o,r){if(!(typeof window>"u"))try{this.clientAnalyticsId||console.error("No client analytics id set, refusing to send analytics event"),await this.api.post(ta(),{event_name:t,client_id:this.clientAnalyticsId,payload:{...o||{},clientTimestamp:r?r.toISOString():new Date().toISOString()}})}catch(n){console.error("Failed to create analytics event",n)}}async getAuthenticatedUser(){return this.session.hasRefreshCredentials()||this.session.hasRecoveryCredentials()?this.session.refresh():null}async getAccessToken(t){var o;return this.session.hasActiveToken()?((o=De.parse(this.session.token))==null?void 0:o.audience)!==this.appId?(await this.logout(),null):this.session.token:!(t!=null&&t.disableAutoRefresh)&&this.session.hasRefreshCredentials()?(await this.session.refresh(),this.session.token):null}async getServerConfig(){var t,o;try{let r=await this.api.get(`/api/v1/apps/${this.appId}`,{baseURL:this.fallbackApiUrl});return{id:r.id,name:r.name,verificationKey:r.verification_key,logoUrl:r.logo_url||void 0,accentColor:r.accent_color||void 0,showWalletLoginFirst:r.show_wallet_login_first,allowlistConfig:{errorTitle:r.allowlist_config.error_title,errorDetail:r.allowlist_config.error_detail,errorCtaText:r.allowlist_config.cta_text,errorCtaLink:r.allowlist_config.cta_link},walletAuth:r.wallet_auth,emailAuth:r.email_auth,smsAuth:r.sms_auth,googleOAuth:r.google_oauth,twitterOAuth:r.twitter_oauth,discordOAuth:r.discord_oauth,githubOAuth:r.github_oauth,appleOAuth:r.apple_oauth,termsAndConditionsUrl:r.terms_and_conditions_url,embeddedWalletConfig:{createOnLogin:(t=r.embedded_wallet_config)==null?void 0:t.create_on_login,requireUserPasswordOnCreate:(o=r.embedded_wallet_config)==null?void 0:o.require_user_password_on_create},privacyPolicyUrl:r.privacy_policy_url,customApiUrl:r.custom_api_url,walletConnectCloudProjectId:r.wallet_connect_cloud_project_id,createdAt:new Date(r.created_at*1e3),updatedAt:new Date(r.updated_at*1e3)}}catch(r){throw xe(r)}}async getUsdTokenPrice(t){try{return(await this.api.get(`/api/v1/token_price?chainId=${t}`)).usd}catch{console.error(`Unable to fetch token price for chain with id ${t}`);return}}async forkSession(){return await this.session.forkSession()}};import"wicg-inert";import{disableBodyScroll as Vh,clearAllBodyScrollLocks as $h}from"body-scroll-lock";import{useRef as qh,useCallback as jh}from"react";import{useEffect as Ac}from"react";import Kh from"react-dom";import Ni from"styled-components";import{createContext as Ed,useContext as xd}from"react";var Mn=Ed({isNewUserThisSession:!1,isLinking:!1,linkingHint:null,walletConnectionStatus:null,getAuthMeta:x,getAuthFlow:x,closePrivyModal:x,connectWallet:x,initLoginWithWallet:x,loginWithWallet:x,loginWithCode:x,initLoginWithEmail:x,initLoginWithSms:x,resendEmailCode:x,resendSmsCode:x,initLoginWithOAuth:x,loginWithOAuth:x,refreshUser:x,walletProxy:null,createAnalyticsEvent:x,getUsdTokenPrice:x,recoverEmbeddedWallet:x}),R=()=>xd(Mn);import{createContext as Td,useContext as Pd}from"react";var On=Td({ready:!1,authenticated:!1,user:null,walletConnectors:null,connectWallet:x,login:x,linkEmail:x,linkPhone:x,linkWallet:x,linkGoogle:x,linkTwitter:x,linkDiscord:x,linkGithub:x,linkApple:x,logout:x,getAccessToken:x,getEthereumProvider:x,getEthersProvider:x,getWeb3jsProvider:x,unlinkEmail:x,unlinkPhone:x,unlinkWallet:x,unlinkGoogle:x,unlinkTwitter:x,unlinkDiscord:x,unlinkGithub:x,unlinkApple:x,setActiveWallet:x,forkSession:x,createWallet:x,signMessage:x,sendTransaction:x,exportWallet:x}),U=()=>Pd(On);import Gn from"styled-components";import No,{css as Ga}from"styled-components";import Un from"styled-components";import{Fragment as Sd,jsx as Dn,jsxs as kd}from"react/jsx-runtime";var Ar=({success:e,fail:t})=>kd(Sd,{children:[Dn(Wo,{className:e?"success":t?"fail":""}),Dn(_d,{className:e?"success":t?"fail":""})]}),Wo=Un.span`
13
13
  && {
14
14
  width: 82px;
15
15
  height: 82px;
@@ -2135,4 +2135,4 @@ Resources:
2135
2135
  align-items: center;
2136
2136
  justify-content: center;
2137
2137
  height: 100%;
2138
- `;import vo from"tinycolor2";var kc="#FFFFFF",Xh="#000000",ef=kc,tf="#1E1E1D";function of(e){return e<.8&&e>.2&&console.warn("Background color is not light or dark enough, which could lead to accessibility issues."),e>.5?"light":"dark"}function Wt(e,t){let o=Math.max(0,Math.min(1,e.toHsl().l+t));return vo({...e.toHsl(),l:o})}function Rc({backgroundTheme:e,accentHex:t,successHex:o="#51BA81",errorHex:r="#EC6351",whiteHex:n=kc,blackHex:i=Xh}){let a;switch(e){case"light":a=ef;break;case"dark":a=tf;break;default:a=e;break}let l=vo(a),s=vo(t),u=vo(o),h=vo(r),C=of(l.getLuminance()),b=Wt(l,C==="light"?-.04:.11),m=Wt(l,C==="light"?-.88:.87),f=Wt(l,C==="light"?-.77:.75),p=Wt(l,C==="light"?-.43:.45).desaturate(C==="light"?60:20),w=Wt(l,C==="light"?-.13:.25).desaturate(C==="light"?60:20),A=Wt(s,.15),W=Wt(s,-.06),E=vo(s.getLuminance()>.5?i:n);return{colorScheme:C,background:l.toHslString(),background2:b.toHslString(),foreground:m.toHslString(),foreground2:f.toHslString(),foreground3:p.toHslString(),foreground4:w.toHslString(),accent:s.toHslString(),accentLight:A.toHslString(),accentDark:W.toHslString(),foregroundAccent:E.toHslString(),success:u.toHslString(),error:h.toHslString()}}var Xo={appearance:{theme:"light",accentColor:"#676FFF"},walletConnectCloudProjectId:ra,_render:{inDialog:!0,inParentNodeId:null}};function yn(e,t){var C,b,m,f,p,w,A,W,E,S;let o,r,n,i,a,l,s,u;if(t!=null&&t.loginMethods?(o=t.loginMethods.includes("email"),r=t.loginMethods.includes("sms"),n=t.loginMethods.includes("wallet"),i=t.loginMethods.includes("google"),a=t.loginMethods.includes("twitter"),l=t.loginMethods.includes("discord"),s=t.loginMethods.includes("github"),u=t.loginMethods.includes("apple")):(o=e.emailAuth,r=e.smsAuth,n=e.walletAuth,i=e.googleOAuth,a=e.twitterOAuth,l=e.discordOAuth,s=e.githubOAuth,u=e.appleOAuth),o&&r&&(console.warn("Enabling both email and SMS passwordless is not currently supported. Disabling SMS."),r=!1),!o&&!r&&[i,a,l,s,u].some(k=>k))throw new Error("To enable social logins you must also enable either SMS or Email login");if(![o,r,n,i,a,l,s,u].some(k=>k))throw new Error("You must enable at least one login method");return{id:e.id,name:e.name,allowlistConfig:e.allowlistConfig,appearance:{logo:((C=t==null?void 0:t.appearance)==null?void 0:C.logo)??e.logoUrl,palette:Rc({backgroundTheme:((b=t==null?void 0:t.appearance)==null?void 0:b.theme)??Xo.appearance.theme,accentHex:((m=t==null?void 0:t.appearance)==null?void 0:m.accentColor)??e.accentColor??Xo.appearance.accentColor}),showWalletLoginFirst:((f=t==null?void 0:t.appearance)==null?void 0:f.showWalletLoginFirst)??e.showWalletLoginFirst},loginMethods:{wallet:n,email:o,sms:r,google:i,twitter:a,discord:l,github:s,apple:u},legal:{termsAndConditionsUrl:((p=t==null?void 0:t.legal)==null?void 0:p.termsAndConditionsUrl)??e.termsAndConditionsUrl,privacyPolicyUrl:((w=t==null?void 0:t.legal)==null?void 0:w.privacyPolicyUrl)??e.privacyPolicyUrl},walletConnectCloudProjectId:(t==null?void 0:t.walletConnectCloudProjectId)??e.walletConnectCloudProjectId??Xo.walletConnectCloudProjectId,embeddedWallets:{createOnLogin:((A=t==null?void 0:t.embeddedWallets)==null?void 0:A.createOnLogin)??e.embeddedWalletConfig.createOnLogin,requireUserPasswordOnCreate:((W=t==null?void 0:t.embeddedWallets)==null?void 0:W.requireUserPasswordOnCreate)??e.embeddedWalletConfig.requireUserPasswordOnCreate},render:{inDialog:((E=t==null?void 0:t._render)==null?void 0:E.inDialog)??Xo._render.inDialog,inParentNodeId:((S=t==null?void 0:t._render)==null?void 0:S.inParentNodeId)??Xo._render.inParentNodeId}}}function Ic(e,t){var o;return((o=e==null?void 0:e.appearance)==null?void 0:o.logo)&&typeof e.appearance.logo=="object"&&(e.appearance.logo="component"),{...e,legacyCreateEmbeddedWalletFlag:t}}import{useRef as rf,useEffect as nf}from"react";var gn=class{constructor(){this.callbacks={}}enqueue(t,o){this.callbacks[t]=o}dequeue(t,o){let r=this.callbacks[o];if(!r)throw new Error(`cannot dequeue ${t} event: no event found for id ${o}`);switch(delete this.callbacks[o],t){case"privy:iframe:ready":return r;case"privy:wallet:create":return r;case"privy:wallet:connect":return r;case"privy:wallet:recover":return r;case"privy:wallet:rpc":return r;default:throw new Error(`invalid wallet event type ${t}`)}}};import{jsx as cf}from"react/jsx-runtime";var af=function(e){return()=>`id-${e++}`}(0);function sf(e){return typeof e.event=="string"&&/^privy:.+/.test(e.event)}function er(e){return e.error!==void 0}var bo=new gn;function tr(e,t,o){let r=o.contentWindow;if(!r)throw new Error("iframe not initialized");return new Promise((n,i)=>{let a=af();bo.enqueue(a,{resolve:n,reject:i}),r.postMessage({id:a,event:e,data:t},"*")})}function lf(e){switch(e.event){case"privy:iframe:ready":let t=bo.dequeue(e.event,e.id);return er(e)?t.reject(new mt(e.error.type,e.error.message)):t.resolve(e.data);case"privy:wallet:create":let o=bo.dequeue(e.event,e.id);return er(e)?o.reject(new mt(e.error.type,e.error.message)):o.resolve(e.data);case"privy:wallet:connect":let r=bo.dequeue(e.event,e.id);return er(e)?r.reject(new mt(e.error.type,e.error.message)):r.resolve(e.data);case"privy:wallet:recover":let n=bo.dequeue(e.event,e.id);return er(e)?n.reject(new mt(e.error.type,e.error.message)):n.resolve(e.data);case"privy:wallet:rpc":let i=bo.dequeue(e.event,e.id);return er(e)?i.reject(new mt(e.error.type,e.error.message)):i.resolve(e.data)}}function Wc(e){let t=rf(null);return nf(()=>{let o=t.current;if(!o)return;function r(l){l&&l.origin===e.origin&&sf(l.data)&&lf(l.data)}let n={create(l){return tr("privy:wallet:create",l,o)},connect(l){return tr("privy:wallet:connect",l,o)},recover(l){return tr("privy:wallet:recover",l,o)},rpc(l){return tr("privy:wallet:rpc",l,o)}};window.addEventListener("message",r);let i=()=>e.onLoad(n),a=(...l)=>{console.error("privy iframe failed to load: ",...l),e.onLoadFailed()};return Ea(()=>tr("privy:iframe:ready",{},o)).then(i,a),()=>window.removeEventListener("message",r)},[t.current]),cf("iframe",{ref:t,width:"0",height:"0",style:{display:"none",height:"0px",width:"0px"},src:hr(e.origin,`/apps/${e.appId}/embedded-wallets`)})}import{createContext as df,useContext as pf}from"react";var Li=df({wallets:[]});function uf(){return pf(Li)}import{jsx as wo,jsxs as Nc}from"react/jsx-runtime";function ff(e){return typeof e=="string"&&e.length===25}var or;function So(){if(!or){let e=j.get(Gt);return Promise.resolve(e||null)}return or.getAccessToken()}var Lc,Aa=(e,t)=>Lc(e,t),Mc,Sa=(e,t)=>Mc(e,t),yf=()=>{let t=new URLSearchParams(window.location.search).get("privy_token");if(!t)return;j.put(Po,t);let o=new URL(window.location.href);o.searchParams.delete("privy_token"),window.history.pushState({},"",o)},gf=({config:e,...t})=>{var r,n;if(!ff(t.appId))throw new P("Cannot initialize the Privy provider with an invalid Privy app ID");or||(or=new Io({appId:t.appId,apiUrl:t.apiUrl||cr}));let o=Object.assign({},e);return t.createPrivyWalletOnLogin!==void 0&&((r=o.embeddedWallets)==null?void 0:r.createOnLogin)===void 0&&(o.embeddedWallets||(o.embeddedWallets={}),o.embeddedWallets.createOnLogin=t.createPrivyWalletOnLogin?"users-without-wallets":"off"),t.createPrivyWalletOnLogin!==void 0&&((n=e==null?void 0:e.embeddedWallets)==null?void 0:n.createOnLogin)&&console.warn("Both `createPrivyWalletOnLogin` and `config.embeddedWallets.createOnLogin` are set. `createPrivyWalletOnLogin` is deprecated and should be removed."),wo(vf,{...t,config:o,client:or})},vf=e=>{let t=e.client,[o,r]=pe(!1),[n,i]=pe(!1),[a,l]=pe(!1),[s,u]=pe(null),[h,C]=pe([]),b=hf(h),[m,f]=pe(!1),[p,w]=pe(null),[A,W]=pe(!1),[E,S]=pe({status:"disconnected",connectError:null,connector:null,connectRetry:x}),[k,L]=pe(null),[N,ne]=pe(null),[H,ie]=pe({showWalletLoginFirst:!0,allowlistConfig:{errorTitle:null,errorDetail:null,errorCtaText:null,errorCtaLink:null},walletAuth:!0,emailAuth:!0,smsAuth:!1,googleOAuth:!1,twitterOAuth:!1,discordOAuth:!1,githubOAuth:!1,appleOAuth:!1,termsAndConditionsUrl:null,privacyPolicyUrl:null,embeddedWalletConfig:{createOnLogin:"off",requireUserPasswordOnCreate:!1}}),[B,I]=pe(()=>{let c=Ic(e.config,e.createPrivyWalletOnLogin);return t.createAnalyticsEvent("sdk_initialize",c),yn(H,e.config)}),[D,F]=pe(!0),[V,ue]=pe({}),[et,tt]=pe(null),te=c=>{c&&w(c),r(!0),t.createAnalyticsEvent("modal_open",{initialScreen:c})},oe=c=>{B.embeddedWallets.createOnLogin!=="off"&&F(!0),te(c)};Nt(()=>{var d,g;if(!N||!s){(d=t.connectors)==null||d.removeEmbeddedWalletConnector();return}let c=s==null?void 0:s.linkedAccounts.filter(y=>y.type==="wallet"&&y.walletClient==="privy");if(c&&c.length>0){let y=c[0].address;(g=t.connectors)==null||g.addEmbeddedWalletConnector(N,y)}},[N,s]),Nt(()=>{async function c(){var Dt;let d=await t.getServerConfig();ie(d);let g=yn(d,e.config);I(g),d.customApiUrl&&t.updateApiUrl(d.customApiUrl),t.initializeConnectorManager(g.walletConnectCloudProjectId),(Dt=t.connectors)==null||Dt.initialize();let y=ot();yf();let Z=await t.getAuthenticatedUser();l(!!Z),u(Z),i(!0),et==null||et(),y&&Z&&W(!0),rr()}c()},[t,et,n]),Nt(()=>{let c=yn(H,e.config);I(c)},[e.config]);let ot=()=>{let c=new URLSearchParams(window.location.search),d=c.get("privy_oauth_code"),g=c.get("privy_oauth_state"),y=c.get("privy_oauth_provider");return d&&g&&y?(t.startAuthFlow(new rt(y,d,g)),oe("AWAITING_OAUTH_SCREEN"),!0):!1},Lt=async(c,d,g)=>{var Z;let y=await((Z=t.connectors)==null?void 0:Z.createWalletConnector(c,d))||null;Co(y,g)};async function Co(c,d){if(!c)return S({status:"disconnected",connectError:new G("Unable to connect to wallet."),connector:null,connectRetry:x}),d==null?void 0:d(null);S({connector:c,status:"connecting",connectError:null,connectRetry:()=>Co(c,d)});try{let g=await c.connect({showPrompt:!0});return S(y=>({...y,status:"connected",connectError:null,connectRetry:x})),d==null?void 0:d(g)}catch(g){return g instanceof ke?console.error(g.cause?g.cause:g.message):console.error(g),S(y=>({...y,status:"disconnected",connectError:g})),d==null?void 0:d(null)}}let Mt=c=>{c!==null&&t.startAuthFlow(new gt(c))},rr=()=>{let c=new URLSearchParams(window.location.search),d=c.get("privy_connector"),g=c.get("privy_wallet_client");if(!d||!g)return;if(g==="phantom"&&!Pe()&&oe("LOGIN_FAILED_SCREEN"),!t.connectors)throw new P("Connector not initialized");te("AWAITING_CONNECTION");let y=new URL(window.location.href);y.searchParams.delete("privy_connector"),y.searchParams.delete("privy_wallet_client"),window.history.pushState({},"",y),Lt(d,g,Mt)};Nt(()=>{n&&a&&s===null&&t.getAuthenticatedUser().then(u)},[n,a,s,t]);let Eo=()=>{W(!0),te("LINK_WALLET_SCREEN")},nr=c=>{if(!a||!s)return!1;for(let d of s.linkedAccounts)if(d.type==="wallet"&&d.address===c.address)return!0;return!1},ir=async c=>{if(!t.connectors)throw new P("Connector not initialized");W(!!a);let d=t.connectors.findWalletConnector(c.connectorType,c.walletClientType)||null;S(g=>({...g,connector:d,status:"connected",connectError:null,connectRetry:x})),Mt(c),oe("AWAITING_CONNECTION")},Q=async(c,d)=>{if(!t.connectors)throw new P("Connector not initialized");W(!!a),await Lt(c,d,Mt)},ft=()=>{C(c=>{var g;let d=((g=t.connectors)==null?void 0:g.wallets.map(y=>({...y,linked:nr(y),loginOrLink:async()=>{if(!await y.isConnected())throw new P("Wallet is not connected");if(y.connectorType==="embedded"&&y.walletClientType==="privy")throw new P("Cannot link or login with embedded wallet");ir(y)},unlink:async()=>{if(!a)throw new P("User is not authenticated.");if(y.connectorType==="embedded"&&y.walletClientType==="privy")throw new P("Cannot unlink an embedded wallet");let Z=await t.unlinkWallet(y.address);u(Z)}})))||[];return yr(c,d)?c:d})};Nt(()=>{ft()},[s==null?void 0:s.linkedAccounts]),Nt(()=>{if(n){if(!t.connectors)throw new P("Connector not initialized");ft(),t.connectors.on("walletsUpdated",ft)}},[n]);let bn=()=>{te(a?"CONNECT_ONLY_AUTHENTICATED_SCREEN":"CONNECT_ONLY_LANDING_SCREEN")};Nt(()=>{if(!h[0])return;let c=h[0],d=b.current.find(y=>y.address===c.address),g=s==null?void 0:s.linkedAccounts.find(y=>y.type==="wallet"&&y.address===c.address);if(!d&&g){let y=Object.assign({},s);y.wallet=g&&{address:g.address,chainType:g.chainType,chainId:g.chainId,walletClient:g.walletClient},u(y)}b.current=h},[h]);let xo={ready:n,authenticated:a,user:s,walletConnectors:t.connectors||null,connectWallet:bn,linkWallet:Eo,linkEmail:()=>{W(!0),te("LINK_EMAIL_SCREEN")},linkPhone:()=>{W(!0),te("LINK_PHONE_SCREEN")},linkGoogle:async()=>{await Ot.initLoginWithOAuth("google")},linkTwitter:async()=>{await Ot.initLoginWithOAuth("twitter")},linkDiscord:async()=>{await Ot.initLoginWithOAuth("discord")},linkGithub:async()=>{await Ot.initLoginWithOAuth("github")},linkApple:async()=>{await Ot.initLoginWithOAuth("apple")},login:async()=>{if(n||(await new Promise(c=>{tt(()=>c)}),tt(null)),a){console.warn("Attempted to log in, but user is already logged in. Use a `link` helper instead.");return}oe()},logout:async()=>{await t.logout(),u(null),l(!1),w(null),W(!1),r(!1)},getAccessToken:()=>t.getAccessToken(),getEthereumProvider:()=>{var g;if(!s||!s.wallet)return new z;let c=h.find(y=>s.wallet&&y.address===s.wallet.address),d=(g=t.connectors)==null?void 0:g.walletConnectors.find(y=>y.wallets.find(Z=>Z.address===(c==null?void 0:c.address)));return!c||!d?new z:d.proxyProvider},getEthersProvider:()=>{var g;if(!s||!s.wallet)return new Mi(new Me(new z));let c=h.find(y=>s.wallet&&y.address===s.wallet.address),d=(g=t.connectors)==null?void 0:g.walletConnectors.find(y=>y.wallets.find(Z=>Z.address===(c==null?void 0:c.address)));return!c||!d?new Mi(new Me(new z)):new Mi(new Me(d.proxyProvider))},getWeb3jsProvider:()=>{var g;if(!s||!s.wallet)return new st(new z);let c=h.find(y=>s.wallet&&y.address===s.wallet.address),d=(g=t.connectors)==null?void 0:g.walletConnectors.find(y=>y.wallets.find(Z=>Z.address===(c==null?void 0:c.address)));return!c||!d?new st(new z):new st(d.proxyProvider)},unlinkWallet:async c=>{let d=await t.unlinkWallet(c);return u(d),d},unlinkEmail:async c=>{let d=await t.unlinkEmail(c);return u(d),d},unlinkPhone:async c=>{let d=await t.unlinkPhone(c);return u(d),d},unlinkGoogle:async c=>{let d=await t.unlinkOAuth("google",c);return u(d),d},unlinkTwitter:async c=>{let d=await t.unlinkOAuth("twitter",c);return u(d),d},unlinkDiscord:async c=>{let d=await t.unlinkOAuth("discord",c);return u(d),d},unlinkGithub:async c=>{let d=await t.unlinkOAuth("github",c);return u(d),d},unlinkApple:async c=>{let d=await t.unlinkOAuth("apple",c);return u(d),d},setActiveWallet:async c=>{let d=h.find(y=>vn(y.address)===vn(c)),g=s==null?void 0:s.linkedAccounts.find(y=>y.type==="wallet"&&vn(y.address)===vn(c));if(!d||!await d.isConnected())L(c),Eo();else if(!d.linked)d.loginOrLink();else{let y=Object.assign({},s);y.wallet=g&&{address:g.address,chainType:g.chainType,chainId:g.chainId,walletClient:g.walletClient},u(y)}},forkSession:()=>t.forkSession(),createWallet:()=>new Promise((c,d)=>{if(!a||!s){d(new Error("User must be authenticated before creating a Privy wallet"));return}if($(s)){d(new Error("Only one Privy wallet per user is currently allowed"));return}F(!0),ue({createWallet:{onSuccess:c,onFailure:d,callAuthOnSuccessOnClose:!1}}),te("EMBEDDED_WALLET_SCREEN")}),signMessage:(c,d)=>new Promise((g,y)=>{if(!a||!s){y(new Error("User must be authenticated before signing with a Privy wallet"));return}if(!$(s)){y(new Error("Must have a Privy wallet before signing"));return}if(typeof c!="string"||c.length<1){y(new Error("Message must be a non-empty string"));return}F(!0);let Dt={message:c,onSuccess:g,onFailure:y,uiOptions:d||{}},wn={onCompleteNavigateTo:"EMBEDDED_WALLET_SIGN_REQUEST_SCREEN",onFailure:y};ue({signMessage:Dt,connectWallet:wn}),te("EMBEDDED_WALLET_CONNECTING_SCREEN")}),sendTransaction:(c,d)=>new Promise(async(g,y)=>{if(!a||!s){y(new Error("User must be authenticated before signing with a Privy wallet"));return}if(!$(s)){y(new Error("Must have a Privy wallet before signing"));return}F(!0);let Dt={transactionRequest:c,onSuccess:g,onFailure:y,uiOptions:d||{}},wn={onCompleteNavigateTo:"EMBEDDED_WALLET_SEND_TRANSACTION_SCREEN",onFailure:y};ue({connectWallet:wn,sendTransaction:Dt}),te("EMBEDDED_WALLET_CONNECTING_SCREEN")}),exportWallet:()=>new Promise((c,d)=>{if(!a||!s){d(new Error("User must be authenticated before exporting their Privy wallet"));return}if(!$(s)){d(new Error("Must have a Privy wallet before exporting"));return}F(!0);let y={onCompleteNavigateTo:"EMBEDDED_WALLET_KEY_EXPORT_SCREEN",onFailure:d},Z={appId:e.appId,origin:t.apiUrl,onSuccess:c,onFailure:d};ue({keyExport:Z,connectWallet:y}),te("EMBEDDED_WALLET_CONNECTING_SCREEN")})};Lc=xo.signMessage,Mc=xo.sendTransaction;let Ot=(()=>({isNewUserThisSession:m,isLinking:A,linkingHint:k,walletConnectionStatus:E,getAuthFlow:()=>t.authFlow,getAuthMeta:()=>{var c;return(c=t.authFlow)==null?void 0:c.meta},closePrivyModal:(c={shouldCallAuthOnSuccess:!0})=>{var g;let d=n&&a&&s;c.shouldCallAuthOnSuccess&&d&&((g=e.onSuccess)==null||g.call(e,s,m)),t.authFlow=void 0,L(null),w(null),W(!1),f(!1),r(!1),t.createAnalyticsEvent("modal_closed")},connectWallet:Lt,initLoginWithWallet:Q,loginWithWallet:async()=>{if(!(t.authFlow instanceof gt))throw new P("Must initialize SIWE flow first.");let c,d;A?c=await t.link():{user:c,isNewUser:d}=await t.authenticate(),u(c||s||null),f(d||!1),l(!0)},initLoginWithOAuth:async c=>{t.startAuthFlow(new rt(c));let d=await t.authFlow.getAuthorizationUrl();d&&d.url&&window.location.assign(d.url)},loginWithOAuth:async()=>{if(!(t.authFlow instanceof rt))throw new P("Must initialize OAuth flow before calling loginWithOAuth");let c,d;n&&a?c=await t.link():{user:c,isNewUser:d}=await t.authenticate(),u(c),f(d||!1),l(!0)},initLoginWithEmail:async c=>{let d=new yt(c);t.startAuthFlow(d),await d.sendCodeEmail()},initLoginWithSms:async c=>{let d=new vt(c);t.startAuthFlow(d),await d.sendSmsCode()},resendEmailCode:async()=>{var c;await((c=t.authFlow)==null?void 0:c.sendCodeEmail())},resendSmsCode:async()=>{var c;await((c=t.authFlow)==null?void 0:c.sendSmsCode())},loginWithCode:async c=>{if(t.authFlow instanceof yt)t.authFlow.meta.emailCode=c.trim();else if(t.authFlow instanceof vt)t.authFlow.meta.smsCode=c.trim();else throw new P("Must initialize a passwordless code flow first");let d,g;A?d=await t.link():{user:d,isNewUser:g}=await t.authenticate(),u(d||s||null),f(g||!1),l(!0)},refreshUser:async()=>{let c=await t.getAuthenticatedUser();return u(c),c},walletProxy:N,createAnalyticsEvent:(c,d,g)=>t.createAnalyticsEvent(c,d,g),getUsdTokenPrice:c=>t.getUsdTokenPrice(c),recoverEmbeddedWallet:c=>new Promise((d,g)=>{if(!a||!s){g(new Error("User must be authenticated before recovering the Privy wallet"));return}let y=$(s);if(!y){g(new Error("Must have a Privy wallet in order to recover it"));return}F(!0),ue({recoverWallet:{privyWallet:y,onCompleteNavigateTo:c,onFailure:g,onSuccess:d}}),te("EMBEDDED_WALLET_RECOVERY_SCREEN")})}))(),Oc=mf(()=>({wallets:h}),[h]);return wo(On.Provider,{value:xo,children:Nc(Li.Provider,{value:Oc,children:[e.children,Nc(Mn.Provider,{value:Ot,children:[wo(Tc,{theme:{...B.appearance.palette||{}}}),wo(La,{appConfig:B,data:V,setModalData:ue,initialScreen:p,visible:o,authenticated:a,children:o&&wo(Sc,{})}),D&&wo(Wc,{appId:e.appId,origin:t.apiUrl,onLoad:ne,onLoadFailed:()=>null})]})]})})};export{Me as AsExternalProvider,Ro as ConnectorManager,Io as PrivyClient,gf as PrivyProvider,z as PrivyProxyProvider,Cn as VERSION,ve as WalletConnector,So as getAccessToken,U as usePrivy,uf as useWallets};
2138
+ `;import vo from"tinycolor2";var kc="#FFFFFF",Xh="#000000",ef=kc,tf="#1E1E1D";function of(e){return e<.8&&e>.2&&console.warn("Background color is not light or dark enough, which could lead to accessibility issues."),e>.5?"light":"dark"}function Wt(e,t){let o=Math.max(0,Math.min(1,e.toHsl().l+t));return vo({...e.toHsl(),l:o})}function Rc({backgroundTheme:e,accentHex:t,successHex:o="#51BA81",errorHex:r="#EC6351",whiteHex:n=kc,blackHex:i=Xh}){let a;switch(e){case"light":a=ef;break;case"dark":a=tf;break;default:a=e;break}let l=vo(a),s=vo(t),u=vo(o),h=vo(r),C=of(l.getLuminance()),b=Wt(l,C==="light"?-.04:.11),m=Wt(l,C==="light"?-.88:.87),f=Wt(l,C==="light"?-.77:.75),p=Wt(l,C==="light"?-.43:.45).desaturate(C==="light"?60:20),w=Wt(l,C==="light"?-.13:.25).desaturate(C==="light"?60:20),A=Wt(s,.15),W=Wt(s,-.06),E=vo(s.getLuminance()>.5?i:n);return{colorScheme:C,background:l.toHslString(),background2:b.toHslString(),foreground:m.toHslString(),foreground2:f.toHslString(),foreground3:p.toHslString(),foreground4:w.toHslString(),accent:s.toHslString(),accentLight:A.toHslString(),accentDark:W.toHslString(),foregroundAccent:E.toHslString(),success:u.toHslString(),error:h.toHslString()}}var Xo={appearance:{theme:"light",accentColor:"#676FFF"},walletConnectCloudProjectId:ra,_render:{inDialog:!0,inParentNodeId:null}};function yn(e,t){var C,b,m,f,p,w,A,W,E,S;let o,r,n,i,a,l,s,u;if(t!=null&&t.loginMethods?(o=t.loginMethods.includes("email"),r=t.loginMethods.includes("sms"),n=t.loginMethods.includes("wallet"),i=t.loginMethods.includes("google"),a=t.loginMethods.includes("twitter"),l=t.loginMethods.includes("discord"),s=t.loginMethods.includes("github"),u=t.loginMethods.includes("apple")):(o=e.emailAuth,r=e.smsAuth,n=e.walletAuth,i=e.googleOAuth,a=e.twitterOAuth,l=e.discordOAuth,s=e.githubOAuth,u=e.appleOAuth),o&&r&&(console.warn("Enabling both email and SMS passwordless is not currently supported. Disabling SMS."),r=!1),!o&&!r&&[i,a,l,s,u].some(k=>k))throw new Error("To enable social logins you must also enable either SMS or Email login");if(![o,r,n,i,a,l,s,u].some(k=>k))throw new Error("You must enable at least one login method");return{id:e.id,name:e.name,allowlistConfig:e.allowlistConfig,appearance:{logo:((C=t==null?void 0:t.appearance)==null?void 0:C.logo)??e.logoUrl,palette:Rc({backgroundTheme:((b=t==null?void 0:t.appearance)==null?void 0:b.theme)??Xo.appearance.theme,accentHex:((m=t==null?void 0:t.appearance)==null?void 0:m.accentColor)??e.accentColor??Xo.appearance.accentColor}),showWalletLoginFirst:((f=t==null?void 0:t.appearance)==null?void 0:f.showWalletLoginFirst)??e.showWalletLoginFirst},loginMethods:{wallet:n,email:o,sms:r,google:i,twitter:a,discord:l,github:s,apple:u},legal:{termsAndConditionsUrl:((p=t==null?void 0:t.legal)==null?void 0:p.termsAndConditionsUrl)??e.termsAndConditionsUrl,privacyPolicyUrl:((w=t==null?void 0:t.legal)==null?void 0:w.privacyPolicyUrl)??e.privacyPolicyUrl},walletConnectCloudProjectId:(t==null?void 0:t.walletConnectCloudProjectId)??e.walletConnectCloudProjectId??Xo.walletConnectCloudProjectId,embeddedWallets:{createOnLogin:((A=t==null?void 0:t.embeddedWallets)==null?void 0:A.createOnLogin)??e.embeddedWalletConfig.createOnLogin,requireUserPasswordOnCreate:((W=t==null?void 0:t.embeddedWallets)==null?void 0:W.requireUserPasswordOnCreate)??e.embeddedWalletConfig.requireUserPasswordOnCreate},render:{inDialog:((E=t==null?void 0:t._render)==null?void 0:E.inDialog)??Xo._render.inDialog,inParentNodeId:((S=t==null?void 0:t._render)==null?void 0:S.inParentNodeId)??Xo._render.inParentNodeId}}}function Ic(e,t){var o;return((o=e==null?void 0:e.appearance)==null?void 0:o.logo)&&typeof e.appearance.logo=="object"&&(e.appearance.logo="component"),{...e,legacyCreateEmbeddedWalletFlag:t}}import{useRef as rf,useEffect as nf}from"react";var gn=class{constructor(){this.callbacks={}}enqueue(t,o){this.callbacks[t]=o}dequeue(t,o){let r=this.callbacks[o];if(!r)throw new Error(`cannot dequeue ${t} event: no event found for id ${o}`);switch(delete this.callbacks[o],t){case"privy:iframe:ready":return r;case"privy:wallet:create":return r;case"privy:wallet:connect":return r;case"privy:wallet:recover":return r;case"privy:wallet:rpc":return r;default:throw new Error(`invalid wallet event type ${t}`)}}};import{jsx as cf}from"react/jsx-runtime";var af=function(e){return()=>`id-${e++}`}(0);function sf(e){return typeof e.event=="string"&&/^privy:.+/.test(e.event)}function er(e){return e.error!==void 0}var bo=new gn;function tr(e,t,o){let r=o.contentWindow;if(!r)throw new Error("iframe not initialized");return new Promise((n,i)=>{let a=af();bo.enqueue(a,{resolve:n,reject:i}),r.postMessage({id:a,event:e,data:t},"*")})}function lf(e){switch(e.event){case"privy:iframe:ready":let t=bo.dequeue(e.event,e.id);return er(e)?t.reject(new mt(e.error.type,e.error.message)):t.resolve(e.data);case"privy:wallet:create":let o=bo.dequeue(e.event,e.id);return er(e)?o.reject(new mt(e.error.type,e.error.message)):o.resolve(e.data);case"privy:wallet:connect":let r=bo.dequeue(e.event,e.id);return er(e)?r.reject(new mt(e.error.type,e.error.message)):r.resolve(e.data);case"privy:wallet:recover":let n=bo.dequeue(e.event,e.id);return er(e)?n.reject(new mt(e.error.type,e.error.message)):n.resolve(e.data);case"privy:wallet:rpc":let i=bo.dequeue(e.event,e.id);return er(e)?i.reject(new mt(e.error.type,e.error.message)):i.resolve(e.data)}}function Wc(e){let t=rf(null);return nf(()=>{let o=t.current;if(!o)return;function r(l){l&&l.origin===e.origin&&sf(l.data)&&lf(l.data)}let n={create(l){return tr("privy:wallet:create",l,o)},connect(l){return tr("privy:wallet:connect",l,o)},recover(l){return tr("privy:wallet:recover",l,o)},rpc(l){return tr("privy:wallet:rpc",l,o)}};window.addEventListener("message",r);let i=()=>e.onLoad(n),a=(...l)=>{console.error("privy iframe failed to load: ",...l),e.onLoadFailed()};return Ea(()=>tr("privy:iframe:ready",{},o)).then(i,a),()=>window.removeEventListener("message",r)},[t.current]),cf("iframe",{ref:t,width:"0",height:"0",style:{display:"none",height:"0px",width:"0px"},src:hr(e.origin,`/apps/${e.appId}/embedded-wallets`)})}import{createContext as df,useContext as pf}from"react";var Li=df({wallets:[]});function uf(){return pf(Li)}import{jsx as wo,jsxs as Nc}from"react/jsx-runtime";function ff(e){return typeof e=="string"&&e.length===25}var or;function So(){if(!or){let e=j.get(Gt);return Promise.resolve(e||null)}return or.getAccessToken()}var Lc,Aa=(e,t)=>Lc(e,t),Mc,Sa=(e,t)=>Mc(e,t),yf=()=>{let t=new URLSearchParams(window.location.search).get("privy_token");if(!t)return;j.put(Po,t);let o=new URL(window.location.href);o.searchParams.delete("privy_token"),window.history.pushState({},"",o)},gf=({config:e,...t})=>{var r,n;if(!ff(t.appId))throw new P("Cannot initialize the Privy provider with an invalid Privy app ID");or||(or=new Io({appId:t.appId,apiUrl:t.apiUrl||cr}));let o=Object.assign({},e);return t.createPrivyWalletOnLogin!==void 0&&((r=o.embeddedWallets)==null?void 0:r.createOnLogin)===void 0&&(o.embeddedWallets||(o.embeddedWallets={}),o.embeddedWallets.createOnLogin=t.createPrivyWalletOnLogin?"users-without-wallets":"off"),t.createPrivyWalletOnLogin!==void 0&&((n=e==null?void 0:e.embeddedWallets)==null?void 0:n.createOnLogin)&&console.warn("Both `createPrivyWalletOnLogin` and `config.embeddedWallets.createOnLogin` are set. `createPrivyWalletOnLogin` is deprecated and should be removed."),wo(vf,{...t,config:o,client:or})},vf=e=>{let t=e.client,[o,r]=pe(!1),[n,i]=pe(!1),[a,l]=pe(!1),[s,u]=pe(null),[h,C]=pe([]),b=hf(h),[m,f]=pe(!1),[p,w]=pe(null),[A,W]=pe(!1),[E,S]=pe({status:"disconnected",connectError:null,connector:null,connectRetry:x}),[k,L]=pe(null),[N,ne]=pe(null),[H,ie]=pe({showWalletLoginFirst:!0,allowlistConfig:{errorTitle:null,errorDetail:null,errorCtaText:null,errorCtaLink:null},walletAuth:!0,emailAuth:!0,smsAuth:!1,googleOAuth:!1,twitterOAuth:!1,discordOAuth:!1,githubOAuth:!1,appleOAuth:!1,termsAndConditionsUrl:null,privacyPolicyUrl:null,embeddedWalletConfig:{createOnLogin:"off",requireUserPasswordOnCreate:!1}}),[B,I]=pe(()=>{let c=Ic(e.config,e.createPrivyWalletOnLogin);return t.createAnalyticsEvent("sdk_initialize",c),yn(H,e.config)}),[D,F]=pe(!0),[V,ue]=pe({}),[et,tt]=pe(null),te=c=>{c&&w(c),r(!0),t.createAnalyticsEvent("modal_open",{initialScreen:c})},oe=c=>{B.embeddedWallets.createOnLogin!=="off"&&F(!0),te(c)};Nt(()=>{var d,g;if(!N||!s){(d=t.connectors)==null||d.removeEmbeddedWalletConnector();return}let c=s==null?void 0:s.linkedAccounts.filter(y=>y.type==="wallet"&&y.walletClient==="privy");if(c&&c.length>0){let y=c[0].address;(g=t.connectors)==null||g.addEmbeddedWalletConnector(N,y)}},[N,s]),Nt(()=>{async function c(){var Dt;let d=await t.getServerConfig();ie(d);let g=yn(d,e.config);I(g),d.customApiUrl&&t.updateApiUrl(d.customApiUrl),t.initializeConnectorManager(g.walletConnectCloudProjectId),(Dt=t.connectors)==null||Dt.initialize();let y=ot();yf();let Z=await t.getAuthenticatedUser();l(!!Z),u(Z),i(!0),et==null||et(),y&&Z&&W(!0),rr()}c()},[t,et,n]),Nt(()=>{let c=yn(H,e.config);I(c)},[e.config]);let ot=()=>{let c=new URLSearchParams(window.location.search),d=c.get("privy_oauth_code"),g=c.get("privy_oauth_state"),y=c.get("privy_oauth_provider");return d&&g&&y?(t.startAuthFlow(new rt(y,d,g)),oe("AWAITING_OAUTH_SCREEN"),!0):!1},Lt=async(c,d,g)=>{var Z;let y=await((Z=t.connectors)==null?void 0:Z.createWalletConnector(c,d))||null;Co(y,g)};async function Co(c,d){if(!c)return S({status:"disconnected",connectError:new G("Unable to connect to wallet."),connector:null,connectRetry:x}),d==null?void 0:d(null);S({connector:c,status:"connecting",connectError:null,connectRetry:()=>Co(c,d)});try{let g=await c.connect({showPrompt:!0});return S(y=>({...y,status:"connected",connectError:null,connectRetry:x})),d==null?void 0:d(g)}catch(g){return g instanceof ke?console.error(g.cause?g.cause:g.message):console.error(g),S(y=>({...y,status:"disconnected",connectError:g})),d==null?void 0:d(null)}}let Mt=c=>{c!==null&&t.startAuthFlow(new gt(c))},rr=()=>{let c=new URLSearchParams(window.location.search),d=c.get("privy_connector"),g=c.get("privy_wallet_client");if(!d||!g)return;if(g==="phantom"&&!Pe()&&oe("LOGIN_FAILED_SCREEN"),!t.connectors)throw new P("Connector not initialized");te("AWAITING_CONNECTION");let y=new URL(window.location.href);y.searchParams.delete("privy_connector"),y.searchParams.delete("privy_wallet_client"),window.history.pushState({},"",y),Lt(d,g,Mt)};Nt(()=>{n&&a&&s===null&&t.getAuthenticatedUser().then(u)},[n,a,s,t]);let Eo=()=>{W(!0),te("LINK_WALLET_SCREEN")},nr=c=>{if(!a||!s)return!1;for(let d of s.linkedAccounts)if(d.type==="wallet"&&d.address===c.address)return!0;return!1},ir=async c=>{if(!t.connectors)throw new P("Connector not initialized");W(!!a);let d=t.connectors.findWalletConnector(c.connectorType,c.walletClientType)||null;S(g=>({...g,connector:d,status:"connected",connectError:null,connectRetry:x})),Mt(c),oe("AWAITING_CONNECTION")},Q=async(c,d)=>{if(!t.connectors)throw new P("Connector not initialized");W(!!a),await Lt(c,d,Mt)},ft=()=>{C(c=>{var g;let d=((g=t.connectors)==null?void 0:g.wallets.map(y=>({...y,linked:nr(y),loginOrLink:async()=>{if(!await y.isConnected())throw new P("Wallet is not connected");if(y.connectorType==="embedded"&&y.walletClientType==="privy")throw new P("Cannot link or login with embedded wallet");ir(y)},unlink:async()=>{if(!a)throw new P("User is not authenticated.");if(y.connectorType==="embedded"&&y.walletClientType==="privy")throw new P("Cannot unlink an embedded wallet");let Z=await t.unlinkWallet(y.address);u(Z)}})))||[];return yr(c,d)?c:d})};Nt(()=>{ft()},[s==null?void 0:s.linkedAccounts]),Nt(()=>{if(n){if(!t.connectors)throw new P("Connector not initialized");ft(),t.connectors.on("walletsUpdated",ft)}},[n]);let bn=()=>{te(a?"CONNECT_ONLY_AUTHENTICATED_SCREEN":"CONNECT_ONLY_LANDING_SCREEN")};Nt(()=>{if(!h[0])return;let c=h[0],d=b.current.find(y=>y.address===c.address),g=s==null?void 0:s.linkedAccounts.find(y=>y.type==="wallet"&&y.address===c.address);if(!d&&g){let y=Object.assign({},s);y.wallet=g&&{address:g.address,chainType:g.chainType,chainId:g.chainId,walletClient:g.walletClient,walletClientType:g.walletClientType,connectorType:g.connectorType},u(y)}b.current=h},[h]);let xo={ready:n,authenticated:a,user:s,walletConnectors:t.connectors||null,connectWallet:bn,linkWallet:Eo,linkEmail:()=>{W(!0),te("LINK_EMAIL_SCREEN")},linkPhone:()=>{W(!0),te("LINK_PHONE_SCREEN")},linkGoogle:async()=>{await Ot.initLoginWithOAuth("google")},linkTwitter:async()=>{await Ot.initLoginWithOAuth("twitter")},linkDiscord:async()=>{await Ot.initLoginWithOAuth("discord")},linkGithub:async()=>{await Ot.initLoginWithOAuth("github")},linkApple:async()=>{await Ot.initLoginWithOAuth("apple")},login:async()=>{if(n||(await new Promise(c=>{tt(()=>c)}),tt(null)),a){console.warn("Attempted to log in, but user is already logged in. Use a `link` helper instead.");return}oe()},logout:async()=>{await t.logout(),u(null),l(!1),w(null),W(!1),r(!1)},getAccessToken:()=>t.getAccessToken(),getEthereumProvider:()=>{var g;if(!s||!s.wallet)return new z;let c=h.find(y=>s.wallet&&y.address===s.wallet.address),d=(g=t.connectors)==null?void 0:g.walletConnectors.find(y=>y.wallets.find(Z=>Z.address===(c==null?void 0:c.address)));return!c||!d?new z:d.proxyProvider},getEthersProvider:()=>{var g;if(!s||!s.wallet)return new Mi(new Me(new z));let c=h.find(y=>s.wallet&&y.address===s.wallet.address),d=(g=t.connectors)==null?void 0:g.walletConnectors.find(y=>y.wallets.find(Z=>Z.address===(c==null?void 0:c.address)));return!c||!d?new Mi(new Me(new z)):new Mi(new Me(d.proxyProvider))},getWeb3jsProvider:()=>{var g;if(!s||!s.wallet)return new st(new z);let c=h.find(y=>s.wallet&&y.address===s.wallet.address),d=(g=t.connectors)==null?void 0:g.walletConnectors.find(y=>y.wallets.find(Z=>Z.address===(c==null?void 0:c.address)));return!c||!d?new st(new z):new st(d.proxyProvider)},unlinkWallet:async c=>{let d=await t.unlinkWallet(c);return u(d),d},unlinkEmail:async c=>{let d=await t.unlinkEmail(c);return u(d),d},unlinkPhone:async c=>{let d=await t.unlinkPhone(c);return u(d),d},unlinkGoogle:async c=>{let d=await t.unlinkOAuth("google",c);return u(d),d},unlinkTwitter:async c=>{let d=await t.unlinkOAuth("twitter",c);return u(d),d},unlinkDiscord:async c=>{let d=await t.unlinkOAuth("discord",c);return u(d),d},unlinkGithub:async c=>{let d=await t.unlinkOAuth("github",c);return u(d),d},unlinkApple:async c=>{let d=await t.unlinkOAuth("apple",c);return u(d),d},setActiveWallet:async c=>{let d=h.find(y=>vn(y.address)===vn(c)),g=s==null?void 0:s.linkedAccounts.find(y=>y.type==="wallet"&&vn(y.address)===vn(c));if(!d||!await d.isConnected())L(c),Eo();else if(!d.linked)d.loginOrLink();else{let y=Object.assign({},s);y.wallet=g&&{address:g.address,chainType:g.chainType,chainId:g.chainId,walletClient:g.walletClient,walletClientType:g.walletClientType,connectorType:g.connectorType},u(y)}},forkSession:()=>t.forkSession(),createWallet:()=>new Promise((c,d)=>{if(!a||!s){d(new Error("User must be authenticated before creating a Privy wallet"));return}if($(s)){d(new Error("Only one Privy wallet per user is currently allowed"));return}F(!0),ue({createWallet:{onSuccess:c,onFailure:d,callAuthOnSuccessOnClose:!1}}),te("EMBEDDED_WALLET_SCREEN")}),signMessage:(c,d)=>new Promise((g,y)=>{if(!a||!s){y(new Error("User must be authenticated before signing with a Privy wallet"));return}if(!$(s)){y(new Error("Must have a Privy wallet before signing"));return}if(typeof c!="string"||c.length<1){y(new Error("Message must be a non-empty string"));return}F(!0);let Dt={message:c,onSuccess:g,onFailure:y,uiOptions:d||{}},wn={onCompleteNavigateTo:"EMBEDDED_WALLET_SIGN_REQUEST_SCREEN",onFailure:y};ue({signMessage:Dt,connectWallet:wn}),te("EMBEDDED_WALLET_CONNECTING_SCREEN")}),sendTransaction:(c,d)=>new Promise(async(g,y)=>{if(!a||!s){y(new Error("User must be authenticated before signing with a Privy wallet"));return}if(!$(s)){y(new Error("Must have a Privy wallet before signing"));return}F(!0);let Dt={transactionRequest:c,onSuccess:g,onFailure:y,uiOptions:d||{}},wn={onCompleteNavigateTo:"EMBEDDED_WALLET_SEND_TRANSACTION_SCREEN",onFailure:y};ue({connectWallet:wn,sendTransaction:Dt}),te("EMBEDDED_WALLET_CONNECTING_SCREEN")}),exportWallet:()=>new Promise((c,d)=>{if(!a||!s){d(new Error("User must be authenticated before exporting their Privy wallet"));return}if(!$(s)){d(new Error("Must have a Privy wallet before exporting"));return}F(!0);let y={onCompleteNavigateTo:"EMBEDDED_WALLET_KEY_EXPORT_SCREEN",onFailure:d},Z={appId:e.appId,origin:t.apiUrl,onSuccess:c,onFailure:d};ue({keyExport:Z,connectWallet:y}),te("EMBEDDED_WALLET_CONNECTING_SCREEN")})};Lc=xo.signMessage,Mc=xo.sendTransaction;let Ot=(()=>({isNewUserThisSession:m,isLinking:A,linkingHint:k,walletConnectionStatus:E,getAuthFlow:()=>t.authFlow,getAuthMeta:()=>{var c;return(c=t.authFlow)==null?void 0:c.meta},closePrivyModal:(c={shouldCallAuthOnSuccess:!0})=>{var g;let d=n&&a&&s;c.shouldCallAuthOnSuccess&&d&&((g=e.onSuccess)==null||g.call(e,s,m)),t.authFlow=void 0,L(null),w(null),W(!1),f(!1),r(!1),t.createAnalyticsEvent("modal_closed")},connectWallet:Lt,initLoginWithWallet:Q,loginWithWallet:async()=>{if(!(t.authFlow instanceof gt))throw new P("Must initialize SIWE flow first.");let c,d;A?c=await t.link():{user:c,isNewUser:d}=await t.authenticate(),u(c||s||null),f(d||!1),l(!0)},initLoginWithOAuth:async c=>{t.startAuthFlow(new rt(c));let d=await t.authFlow.getAuthorizationUrl();d&&d.url&&window.location.assign(d.url)},loginWithOAuth:async()=>{if(!(t.authFlow instanceof rt))throw new P("Must initialize OAuth flow before calling loginWithOAuth");let c,d;n&&a?c=await t.link():{user:c,isNewUser:d}=await t.authenticate(),u(c),f(d||!1),l(!0)},initLoginWithEmail:async c=>{let d=new yt(c);t.startAuthFlow(d),await d.sendCodeEmail()},initLoginWithSms:async c=>{let d=new vt(c);t.startAuthFlow(d),await d.sendSmsCode()},resendEmailCode:async()=>{var c;await((c=t.authFlow)==null?void 0:c.sendCodeEmail())},resendSmsCode:async()=>{var c;await((c=t.authFlow)==null?void 0:c.sendSmsCode())},loginWithCode:async c=>{if(t.authFlow instanceof yt)t.authFlow.meta.emailCode=c.trim();else if(t.authFlow instanceof vt)t.authFlow.meta.smsCode=c.trim();else throw new P("Must initialize a passwordless code flow first");let d,g;A?d=await t.link():{user:d,isNewUser:g}=await t.authenticate(),u(d||s||null),f(g||!1),l(!0)},refreshUser:async()=>{let c=await t.getAuthenticatedUser();return u(c),c},walletProxy:N,createAnalyticsEvent:(c,d,g)=>t.createAnalyticsEvent(c,d,g),getUsdTokenPrice:c=>t.getUsdTokenPrice(c),recoverEmbeddedWallet:c=>new Promise((d,g)=>{if(!a||!s){g(new Error("User must be authenticated before recovering the Privy wallet"));return}let y=$(s);if(!y){g(new Error("Must have a Privy wallet in order to recover it"));return}F(!0),ue({recoverWallet:{privyWallet:y,onCompleteNavigateTo:c,onFailure:g,onSuccess:d}}),te("EMBEDDED_WALLET_RECOVERY_SCREEN")})}))(),Oc=mf(()=>({wallets:h}),[h]);return wo(On.Provider,{value:xo,children:Nc(Li.Provider,{value:Oc,children:[e.children,Nc(Mn.Provider,{value:Ot,children:[wo(Tc,{theme:{...B.appearance.palette||{}}}),wo(La,{appConfig:B,data:V,setModalData:ue,initialScreen:p,visible:o,authenticated:a,children:o&&wo(Sc,{})}),D&&wo(Wc,{appId:e.appId,origin:t.apiUrl,onLoad:ne,onLoadFailed:()=>null})]})]})})};export{Me as AsExternalProvider,Ro as ConnectorManager,Io as PrivyClient,gf as PrivyProvider,z as PrivyProxyProvider,Cn as VERSION,ve as WalletConnector,So as getAccessToken,U as usePrivy,uf as useWallets};
package/dist/index.d.ts CHANGED
@@ -396,26 +396,36 @@ interface LinkMetadata {
396
396
  interface Wallet {
397
397
  /** The wallet address. */
398
398
  address: string;
399
- /** Chain type of the wallet address. */
399
+ /**
400
+ * @deprecated Use `chainId` instead.
401
+ *
402
+ * Chain type of the wallet address.
403
+ */
400
404
  chainType: 'ethereum' | 'solana';
401
405
  /**
402
- * @experimental
403
- * DO NOT USE: This feature is under active development.
406
+ * CAIP-2 formatted chain ID during the most recent verification.
404
407
  *
405
- * e.g. testnet, mainnet, goerli */
408
+ * e.g. eip155:1, eip155:5, eip155:137, etc.
409
+ */
406
410
  chainId?: string;
407
411
  /**
408
- * The wallet client used for this wallet. At the moment, there are only two expected values:
409
- *
410
- * 1. privy
411
- * 2. unknown
412
+ * @deprecated Use `walletClientType` instead.
413
+ */
414
+ walletClient: 'privy' | 'unknown';
415
+ /**
416
+ * The wallet client used for this wallet during the most recent verification.
412
417
  *
413
418
  * If the value is `privy`, then this is a privy embedded wallet.
414
419
  *
415
- * In the future, this may contain more information about other wallet clients,
416
- * like metamask, coinbase, etc.
420
+ * Other values include but are not limited to `metamask`, `rainbow`, `coinbase_wallet`, etc.
417
421
  */
418
- walletClient: 'privy' | 'unknown';
422
+ walletClientType?: string;
423
+ /**
424
+ * The connector type used for this wallet during the most recent verification.
425
+ *
426
+ * This includes but is not limited to `injected`, `wallet_connect`, `coinbase_wallet`, `embedded`.
427
+ */
428
+ connectorType?: string;
419
429
  /**
420
430
  * If this is a 'privy' embedded wallet, stores the recovery method:
421
431
  *
@@ -1131,8 +1141,19 @@ interface ResponsePhoneAccount {
1131
1141
  interface ResponseEthereumAccount {
1132
1142
  type: 'wallet';
1133
1143
  address: string;
1144
+ /**
1145
+ * @deprecated This will be removed in favor of the CAIP-2 formatted chain_id field.
1146
+ *
1147
+ * Chain type of the wallet address.
1148
+ */
1134
1149
  chain_type: 'ethereum';
1150
+ chain_id?: string;
1151
+ /**
1152
+ * @deprecated Use `wallet_client_type` instead.
1153
+ */
1135
1154
  wallet_client: 'privy' | 'unknown';
1155
+ wallet_client_type?: string;
1156
+ connector_type?: string;
1136
1157
  recovery_method?: 'privy' | 'user-passcode';
1137
1158
  verified_at: number;
1138
1159
  }
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ Chain ID: ${t}
9
9
  Nonce: ${a}
10
10
  Issued At: ${i}
11
11
  Resources:
12
- - https://privy.io`;this.wallet=t}get meta(){return{connectorType:this.wallet.connectorType,walletClientType:this.wallet.walletClientType}}async authenticate(){if(!this.api)throw new A("Auth flow has no API instance");try{let{message:t,signature:o}=await this.sign(),r=await this.api.post(pa(),{message:t,signature:o});return{user:r.user,token:r.token,refresh_token:r.refresh_token,is_new_user:r.is_new_user}}catch(t){throw ce(t)}}async link(){if(!this.api)throw new A("Auth flow has no API instance");try{let{message:t,signature:o}=await this.sign();return await this.api.post(ua(),{message:t,signature:o})}catch(t){throw ce(t)}}async sign(){if(!this.api)throw new A("Auth flow has no API instance");if(this.preparedMessage||await this.buildSiweMessage(),!this.preparedMessage)throw new A("Could not prepare SIWE message");let t=await this.wallet.sign(this.preparedMessage);return{message:this.preparedMessage,signature:t}}async buildSiweMessage(){if(!this.api)throw new A("Auth flow has no API instance");let t=this.wallet.address,o=this.wallet.chainId.replace("eip155:",""),r=await this.api.post(da(),{address:t});return this.preparedMessage=this.prepareMessage(o,t,r.nonce),this.preparedMessage}prepareMessage(t,o,r){let n=window.location.host,i=window.location.origin,a="By signing, you are proving you own this wallet and logging in. This does not initiate a transaction or cost any fees.",l=new Date().toISOString();return this.createSiweMessage(t,o,n,i,l,r,a)}};var to=class{constructor(t){this.meta={phoneNumber:t}}async authenticate(){if(!this.api)throw new A("Auth flow has no API instance");if(!this.meta.phoneNumber||!this.meta.smsCode)throw new A("phone number and sms code must be set prior to calling authenticate.");try{let t=ga(),o=await this.api.post(t,{phoneNumber:this.meta.phoneNumber,code:this.meta.smsCode});return{user:o.user,token:o.token,refresh_token:o.refresh_token,is_new_user:o.is_new_user}}catch(t){throw ce(t)}}async link(){if(!this.api)throw new A("Auth flow has no API instance");if(!this.meta.phoneNumber||!this.meta.smsCode)throw new A("phone number and sms code must be set prior to calling authenticate.");try{let t=va();return await this.api.post(t,{phoneNumber:this.meta.phoneNumber,code:this.meta.smsCode})}catch(t){throw ce(t)}}async sendSmsCode(t){if(!this.api)throw new A("Auth flow has no API instance");if(t&&(this.meta.phoneNumber=t),!this.meta.phoneNumber)throw new A("phone nNumber must be set when initialzing authentication.");try{let o=ya();return await this.api.post(o,{phoneNumber:this.meta.phoneNumber})}catch(o){throw ce(o)}}};function Ct(e){return new Date(e*1e3)}function jc(e){let t=[];for(let o of e){let r=o.type;switch(o.type){case"wallet":let n={address:o.address,type:o.type,verifiedAt:Ct(o.verified_at),chainType:o.chain_type,walletClient:o.wallet_client,recoveryMethod:o.recovery_method};t.push(n);break;case"email":let i={address:o.address,type:o.type,verifiedAt:Ct(o.verified_at)};t.push(i);break;case"phone":let a={number:o.phoneNumber,type:o.type,verifiedAt:Ct(o.verified_at)};t.push(a);break;case"google_oauth":let l={subject:o.subject,email:o.email,name:o.name,type:o.type,verifiedAt:Ct(o.verified_at)};t.push(l);break;case"twitter_oauth":let s={subject:o.subject,username:o.username,name:o.name,type:o.type,verifiedAt:Ct(o.verified_at)};t.push(s);break;case"discord_oauth":let u={subject:o.subject,username:o.username,email:o.email,type:o.type,verifiedAt:Ct(o.verified_at)};t.push(u);break;case"github_oauth":let h={subject:o.subject,username:o.username,name:o.name,email:o.email,type:o.type,verifiedAt:Ct(o.verified_at)};t.push(h);break;case"apple_oauth":let E={subject:o.subject,email:o.email,type:o.type,verifiedAt:Ct(o.verified_at)};t.push(E);break;default:console.warn(`Unrecognized account type: ${r}. Please consider upgrading the Privy SDK.`)}}return t}function Dt(e,t){return e.sort((o,r)=>r.verifiedAt.getTime()-o.verifiedAt.getTime()),e.find(o=>o.type===t)}var te=e=>e==null?void 0:e.linkedAccounts.find(t=>t.type==="wallet"&&t.walletClient==="privy"),Kc=e=>e.linkedAccounts.filter(t=>t.type==="wallet"),wo=(e,t)=>{var o;return t==="all-users"&&!te(e)||t==="users-without-wallets"&&!((o=Kc(e))!=null&&o.length)};function Et(e){if(!e)return null;let t=jc(e.linked_accounts),o=Dt(t,"wallet"),r=Dt(t,"email"),n=Dt(t,"phone"),i=Dt(t,"google_oauth"),a=Dt(t,"twitter_oauth"),l=Dt(t,"discord_oauth"),s=Dt(t,"github_oauth"),u=Dt(t,"apple_oauth");return{id:e.id,createdAt:Ct(e.created_at),linkedAccounts:t,email:r&&{address:r==null?void 0:r.address},phone:n&&{number:n==null?void 0:n.number},wallet:o&&{address:o.address,chainType:o.chainType,chainId:o.chainId,walletClient:o.walletClient,recoveryMethod:o.recoveryMethod},google:i&&{subject:i.subject,email:i.email,name:i.name},twitter:a&&{subject:a.subject,username:a.username,name:a.name},discord:l&&{subject:l.subject,username:l.username,email:l.email},github:s&&{subject:s.subject,username:s.username,name:s.name,email:s.email},apple:u&&{subject:u.subject,email:u.email}}}var fi=require("@ethersproject/address"),fs=P(require("eventemitter3"));var Aa="1.28.0-beta.5";var Co="4df5e2316331463a9130964bd6078dfa",Sa="34357d3c125c2bcf2ce2bc3309d98715",Hr="https://auth.privy.io",ka=1e4,Je=1400,Ra=4500,zr=Aa;var Eo="privy:token",oi="privy-token",Vr="privy:refresh_token",ri="privy-refresh-token",tr="privy:session_transfer_token",ni="privy:connectors",ii="privy:connections";var He=1;var ai=class{constructor(){this._cache={}}get(t){return this._cache[t]}put(t,o){o!==void 0?this._cache[t]=o:this.del(t)}del(t){delete this._cache[t]}getKeys(){return Object.keys(this._cache)}},si=class{get(t){let o=localStorage.getItem(t);return o===null?void 0:JSON.parse(o)}put(t,o){o!==void 0?localStorage.setItem(t,JSON.stringify(o)):this.del(t)}del(t){localStorage.removeItem(t)}getKeys(){return Object.entries(localStorage).map(([t])=>t)}};function Qc(){return typeof window<"u"&&window.localStorage?new si:new ai}var ne=Qc();var Va=require("libphonenumber-js/min");var Ia={id:42161,name:"Arbitrum One",network:"arbitrum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://arb-mainnet.g.alchemy.com/v2"],webSocket:["wss://arb-mainnet.g.alchemy.com/v2"]},infura:{http:["https://arbitrum-mainnet.infura.io/v3"],webSocket:["wss://arbitrum-mainnet.infura.io/ws/v3"]},default:{http:["https://arb1.arbitrum.io/rpc"]},public:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{etherscan:{name:"Arbiscan",url:"https://arbiscan.io"},default:{name:"Arbiscan",url:"https://arbiscan.io"}}};var Wa={id:421613,name:"Arbitrum Goerli",network:"arbitrum-goerli",nativeCurrency:{name:"Arbitrum Goerli Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://arb-goerli.g.alchemy.com/v2"],webSocket:["wss://arb-goerli.g.alchemy.com/v2"]},infura:{http:["https://arbitrum-goerli.infura.io/v3"],webSocket:["wss://arbitrum-goerli.infura.io/ws/v3"]},default:{http:["https://goerli-rollup.arbitrum.io/rpc"]},public:{http:["https://goerli-rollup.arbitrum.io/rpc"]}},blockExplorers:{etherscan:{name:"Arbiscan",url:"https://goerli.arbiscan.io/"},default:{name:"Arbiscan",url:"https://goerli.arbiscan.io/"}},testnet:!0};var Na={id:84531,network:"base-goerli",name:"Base Goerli",nativeCurrency:{name:"Base Goerli",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://goerli.base.org"]},public:{http:["https://goerli.base.org"]}},blockExplorers:{etherscan:{name:"Basescan",url:"https://goerli.basescan.org"},default:{name:"Basescan",url:"https://goerli.basescan.org"}},testnet:!0};var La={id:42220,name:"Celo",network:"celo",nativeCurrency:{decimals:18,name:"CELO",symbol:"CELO"},rpcUrls:{default:{http:["https://forno.celo.org"]},infura:{http:["https://celo-mainnet.infura.io/v3"]},public:{http:["https://forno.celo.org"]}},blockExplorers:{default:{name:"Celo Explorer",url:"https://explorer.celo.org/mainnet"},etherscan:{name:"CeloScan",url:"https://celoscan.io"}},testnet:!1};var Ma={id:44787,name:"Alfajores",network:"celo-alfajores",nativeCurrency:{decimals:18,name:"CELO",symbol:"A-CELO"},rpcUrls:{default:{http:["https://alfajores-forno.celo-testnet.org"]},infura:{http:["https://celo-alfajores.infura.io/v3"]},public:{http:["https://alfajores-forno.celo-testnet.org"]}},blockExplorers:{default:{name:"Celo Explorer",url:"https://explorer.celo.org/alfajores"},etherscan:{name:"CeloScan",url:"https://alfajores.celoscan.io/"}},testnet:!0};var Oa={id:314,name:"Filecoin Mainnet",network:"filecoin-mainnet",nativeCurrency:{decimals:18,name:"filecoin",symbol:"FIL"},rpcUrls:{default:{http:["https://api.node.glif.io/rpc/v1"]},public:{http:["https://api.node.glif.io/rpc/v1"]}},blockExplorers:{default:{name:"Filfox",url:"https://filfox.info/en"},filscan:{name:"Filscan",url:"https://filscan.io"},filscout:{name:"Filscout",url:"https://filscout.io/en"},glif:{name:"Glif",url:"https://explorer.glif.io"}}};var Da={id:314159,name:"Filecoin Calibration",network:"filecoin-calibration",nativeCurrency:{decimals:18,name:"testnet filecoin",symbol:"tFIL"},rpcUrls:{default:{http:["https://api.calibration.node.glif.io/rpc/v1"]},public:{http:["https://api.calibration.node.glif.io/rpc/v1"]}},blockExplorers:{default:{name:"Filscan",url:"https://calibration.filscan.io"}}};var Ua={id:5,network:"goerli",name:"Goerli",nativeCurrency:{name:"Goerli Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://eth-goerli.g.alchemy.com/v2"],webSocket:["wss://eth-goerli.g.alchemy.com/v2"]},infura:{http:["https://goerli.infura.io/v3"],webSocket:["wss://goerli.infura.io/ws/v3"]},default:{http:["https://rpc.ankr.com/eth_goerli"]},public:{http:["https://rpc.ankr.com/eth_goerli"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://goerli.etherscan.io"},default:{name:"Etherscan",url:"https://goerli.etherscan.io"}},testnet:!0};var Ba={id:1,network:"homestead",name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://eth-mainnet.g.alchemy.com/v2"],webSocket:["wss://eth-mainnet.g.alchemy.com/v2"]},infura:{http:["https://mainnet.infura.io/v3"],webSocket:["wss://mainnet.infura.io/ws/v3"]},default:{http:["https://cloudflare-eth.com"]},public:{http:["https://cloudflare-eth.com"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://etherscan.io"},default:{name:"Etherscan",url:"https://etherscan.io"}}};var Fa={id:10,name:"Optimism",network:"optimism",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://opt-mainnet.g.alchemy.com/v2"],webSocket:["wss://opt-mainnet.g.alchemy.com/v2"]},infura:{http:["https://optimism-mainnet.infura.io/v3"],webSocket:["wss://optimism-mainnet.infura.io/ws/v3"]},default:{http:["https://mainnet.optimism.io"]},public:{http:["https://mainnet.optimism.io"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://optimistic.etherscan.io"},default:{name:"Optimism Explorer",url:"https://explorer.optimism.io"}}};var Ga={id:420,name:"Optimism Goerli",network:"optimism-goerli",nativeCurrency:{name:"Goerli Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://opt-goerli.g.alchemy.com/v2"],webSocket:["wss://opt-goerli.g.alchemy.com/v2"]},infura:{http:["https://optimism-goerli.infura.io/v3"],webSocket:["wss://optimism-goerli.infura.io/ws/v3"]},default:{http:["https://goerli.optimism.io"]},public:{http:["https://goerli.optimism.io"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://goerli-optimism.etherscan.io"},default:{name:"Etherscan",url:"https://goerli-optimism.etherscan.io"}},testnet:!0};var Ha={id:137,name:"Polygon",network:"matic",nativeCurrency:{name:"MATIC",symbol:"MATIC",decimals:18},rpcUrls:{alchemy:{http:["https://polygon-mainnet.g.alchemy.com/v2"],webSocket:["wss://polygon-mainnet.g.alchemy.com/v2"]},infura:{http:["https://polygon-mainnet.infura.io/v3"],webSocket:["wss://polygon-mainnet.infura.io/ws/v3"]},default:{http:["https://polygon-rpc.com"]},public:{http:["https://polygon-rpc.com"]}},blockExplorers:{etherscan:{name:"PolygonScan",url:"https://polygonscan.com"},default:{name:"PolygonScan",url:"https://polygonscan.com"}}};var za={id:80001,name:"Polygon Mumbai",network:"maticmum",nativeCurrency:{name:"MATIC",symbol:"MATIC",decimals:18},rpcUrls:{alchemy:{http:["https://polygon-mumbai.g.alchemy.com/v2"],webSocket:["wss://polygon-mumbai.g.alchemy.com/v2"]},infura:{http:["https://polygon-mumbai.infura.io/v3"],webSocket:["wss://polygon-mumbai.infura.io/ws/v3"]},default:{http:["https://matic-mumbai.chainstacklabs.com"]},public:{http:["https://matic-mumbai.chainstacklabs.com"]}},blockExplorers:{etherscan:{name:"PolygonScan",url:"https://mumbai.polygonscan.com"},default:{name:"PolygonScan",url:"https://mumbai.polygonscan.com"}},testnet:!0};var $r=[Ia,Wa,Ua,Ba,Fa,Ga,Ha,za,La,Ma,Oa,Da,Na];var jr=()=>{let e=window;if(!e.ethereum)return!1;if(qr(window.ethereum,!0))return!0;if(e.ethereum.providers){for(let t of e.ethereum.providers)if(qr(t,!0))return!0}return!1},or=()=>{let e=window;if(!e.ethereum)return!1;if(qr(window.ethereum,!1))return!0;if(e.ethereum.providers){for(let t of e.ethereum.providers)if(qr(t,!1))return!0}return!1},qr=(e,t)=>e.isMetaMask?e.isMetaMask&&!t?!0:!(e.isBraveWallet&&!e._events&&!e._state||e.isApexWallet||e.isAvalanche||e.isBitKeep||e.isBlockWallet||e.isKuCoinWallet||e.isMathWallet||e.isOkxWallet||e.isOKExWallet||e.isOneInchIOSWallet||e.isOneInchAndroidWallet||e.isOpera||e.isPhantom||e.isPortal||e.isRabby||e.isTokenPocket||e.isTokenary||e.isZerion):!1,ze=()=>{var e,t;if("phantom"in window){let o=window;if((t=(e=o==null?void 0:o.phantom)==null?void 0:e.ethereum)!=null&&t.isPhantom)return!0}return!1},Ut=()=>{let e=window;if(!e.ethereum)return!1;if(e.ethereum.isCoinbaseWallet)return!0;if(e.ethereum.providers){for(let t of e.ethereum.providers)if(t.isCoinbaseWallet)return!0}return!1};var $a=e=>!!String(e).toLowerCase().match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/),qa=e=>(0,Va.isPossiblePhoneNumber)(String(e),"US"),ja=(e,t)=>{let o=e.slice(0),r=[];for(;o.length;)r.push(o.splice(0,t));return r},xo=(e,t=3,o=4)=>{if(!e)return"";let r=2,n=3;if(t+o+r+n>=e.length)return e;let i=e.slice(0,r+t),a=e.slice(e.length-o,e.length);return`${i}...${a}`},Zc=e=>new Promise(t=>setTimeout(t,e)),Ka=(e,t={})=>{let o=t.delayMs||40,r=t.maxAttempts||1e3;return new Promise(async(n,i)=>{let a=!1,l=0;for(;!a&&l<r;)e().then(()=>{a=!0,n()},(...s)=>{a=!0,i(...s)}),l+=1,await Zc(o);a||i(new Error("Exceeded max attempts before resolving function"))})},Kr=(e,t,o={})=>{let r=new URL(t,e);for(let[n,i]of Object.entries(o))r.searchParams.set(n,i);return r.href};var li=e=>e.replace(/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g,""),rr=e=>typeof e=="string"?e:"0x"+e.toString(16);async function Ya(e=3e3){let t=!1,o=window;return new Promise(r=>{o.ethereum?n():(window.addEventListener("ethereum#initialized",n,{once:!0}),setTimeout(()=>{n()},e));function n(){if(t)return;t=!0,window.removeEventListener("ethereum#initialized",n);let i=[];jr()&&i.push("metamask"),ze()&&i.push("phantom"),o.ethereum&&o.ethereum.isBraveWallet&&i.push("brave"),r(i)}})}function ci(e){return`eip155:${String(Number(e))}`}var oo=e=>{var o;let t=$r.find(r=>r.id===e);if(!t)throw new Q(`Unsupported chainId ${e}`,4901);return((o=t.rpcUrls.infura)==null?void 0:o.http[0])+`/${Co}`};var ns=P(require("@coinbase/wallet-sdk"));var nr=require("react/jsx-runtime"),Ve=({style:e,...t})=>(0,nr.jsxs)("svg",{width:"1024",height:"1024",viewBox:"0 0 1024 1024",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"28px",width:"28px",...e},...t,children:[(0,nr.jsx)("rect",{width:"1024",height:"1024",fill:"#0052FF",rx:100,ry:100}),(0,nr.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z",fill:"white"})]});var Tt=require("@ethersproject/address"),mi=require("@ethersproject/providers"),rs=P(require("eventemitter3"));var Ja=require("@ethersproject/bytes"),pi=require("@ethersproject/providers"),Xa=require("@ethersproject/strings"),es=P(require("eventemitter3"));var Jc=["eth_sign","eth_populateTransactionRequest","eth_signTransaction","personal_sign"],Qa=e=>Jc.includes(e);var Za=require("@ethersproject/logger");var To=class extends Q{constructor(){super("Wallet timeout");this.type="wallet_error"}},Po=class extends Q{constructor(){super("User rejected connection");this.type="wallet_error"}},lt=e=>{if(e instanceof Q)return e;if((e==null?void 0:e.code)&&(e==null?void 0:e.reason)){let t=new _o(e);return e.code===Za.ErrorCode.ACTION_REJECTED&&(t.details=ro.E4001_USER_REJECTED_REQUEST),t}return e!=null&&e.code?new _o(e):new Q("Unknown connector error",e)},di=class extends Ze{constructor(o,r,n){super(o);this.type="provider_error";this.code=r,this.data=n}},_o=class extends di{constructor(o){var i,a,l;let r=o;super(r.message,r.code,r.data);let n=Object.values(ro).find(s=>s.eipCode===r.code);this.details=n||ro.UNKNOWN_ERROR,r.code===-32002&&((i=r.message)!=null&&i.includes("already pending for origin")?(a=r.message)!=null&&a.includes("wallet_requestPermissions")?this.details=ro.E32002_CONNECTION_ALREADY_PENDING:this.details=ro.E32002_REQUEST_ALREADY_PENDING:(l=r.message)!=null&&l.includes("Already processing")&&r.message.includes("eth_requestAccounts")&&(this.details=ro.E32002_WALLET_LOCKED))}},Xc={ERROR_USER_EXISTS:{message:"User already exists for this address",detail:"Try another address!",retryable:!1},ERROR_TIMED_OUT:{message:"Wallet request timed out",detail:"Please try connecting again.",retryable:!0},ERROR_WALLET_CONNECTION:{message:"Could not log in with wallet",detail:"Please try connecting again.",retryable:!0},ERROR_USER_REJECTED_CONNECTION:{message:"You rejected the request",detail:"Please try connecting again.",retryable:!0}},ed={E32002_CONNECTION_ALREADY_PENDING:{eipCode:-32002,message:"Connection request already pending",detail:"Don\u2019t see your wallet modal? Check your other browser windows.",retryable:!1},E32002_REQUEST_ALREADY_PENDING:{eipCode:-32002,message:"Resource request already pending",detail:"Don\u2019t see your wallet modal? Check your other browser windows.",retryable:!1},E32002_WALLET_LOCKED:{eipCode:-32002,message:"Wallet might be locked",detail:"Don\u2019t see your wallet modal? Check your other browser windows.",retryable:!1},E4001_USER_REJECTED_REQUEST:{eipCode:4001,message:"Signature rejected",detail:"Please try signing again.",retryable:!0}},td={E4001_DEFAULT_USER_REJECTED_REQUEST:{eipCode:4001,message:"User Rejected Request",detail:"The user rejected the request.",default:!0,retryable:!0},E4100_DEFAULT_UNAUTHORIZED:{eipCode:4100,message:"Unauthorized",detail:"The requested method and/or account has not been authorized by the user.",default:!0,retryable:!1},E4200_DEFAULT_UNSUPPORTED_METHOD:{eipCode:4200,message:"Unsupported Method",detail:"The Provider does not support the requested method.",default:!0,retryable:!1},E4900_DEFAULT_DISCONNECTED:{eipCode:4900,message:"Disconnected",detail:"The Provider is disconnected from all chains.",default:!0,retryable:!0},E4901_DEFAULT_CHAIN_DISCONNECTED:{eipCode:4901,message:"Chain Disconnected",detail:"The Provider is not connected to the requested chain.",default:!0,retryable:!0},E32700_DEFAULT_PARSE_ERROR:{eipCode:-32700,message:"Parse error",detail:"Invalid JSON",default:!0,retryable:!1},E32600_DEFAULT_INVALID_REQUEST:{eipCode:-32600,message:"Invalid request",detail:"JSON is not a valid request object",default:!0,retryable:!1},E32601_DEFAULT_METHOD_NOT_FOUND:{eipCode:-32601,message:"Method not found",detail:"Method does not exist",default:!0,retryable:!1},E32602_DEFAULT_INVALID_PARAMS:{eipCode:-32602,message:"Invalid params",detail:"Invalid method parameters",default:!0,retryable:!1},E32603_DEFAULT_INTERNAL_ERROR:{eipCode:-32603,message:"Internal error",detail:"Internal JSON-RPC error",default:!0,retryable:!0},E32000_DEFAULT_INVALID_INPUT:{eipCode:-32e3,message:"Invalid input",detail:"Missing or invalid parameters",default:!0,retryable:!1},E32001_DEFAULT_RESOURCE_NOT_FOUND:{eipCode:-32001,message:"Resource not found",detail:"Requested resource not found",default:!0,retryable:!1},E32002_DEFAULT_RESOURCE_UNAVAILABLE:{eipCode:-32002,message:"Resource unavailable",detail:"Requested resource not available",default:!0,retryable:!0},E32003_DEFAULT_TRANSACTION_REJECTED:{eipCode:-32003,message:"Transaction rejected",detail:"Transaction creation failed",default:!0,retryable:!0},E32004_DEFAULT_METHOD_NOT_SUPPORTED:{eipCode:-32004,message:"Method not supported",detail:"Method is not implemented",default:!0,retryable:!1},E32005_DEFAULT_LIMIT_EXCEEDED:{eipCode:-32005,message:"Limit exceeded",detail:"Request exceeds defined limit",default:!0,retryable:!1},E32006_DEFAULT_JSON_RPC_VERSION_NOT_SUPPORTED:{eipCode:-32006,message:"JSON-RPC version not supported",detail:"Version of JSON-RPC protocol is not supported",default:!0,retryable:!1}},ro={UNKNOWN_ERROR:{eipCode:0,message:"Unknown error",detail:"Unknown error",retryable:!0},...td,...ed},xt={...Xc,...ro};var od=12e4,ui=(e=new To,t=od)=>new Promise((o,r)=>setTimeout(()=>{r(e)},t)),J=class{constructor(t){this.removeListener=(t,o)=>{if(this.walletProvider)try{return this.walletProvider.removeListener(t,o)}catch{console.warn("Unable to remove wallet provider listener")}};this.setWalletProvider=t=>{this.walletProvider&&this._subscriptions.forEach(o=>{this.removeListener(o.eventName,o.listener)}),this.walletProvider=t,this._subscriptions.forEach(o=>{var r;(r=this.walletProvider)==null||r.on(o.eventName,o.listener)})};this.walletProvider=t,this._subscriptions=[]}on(t,o){if(this.walletProvider)return this.walletProvider.on(t,o);this._subscriptions.push({eventName:t,listener:o})}async request(t){if(!this.walletProvider)throw new Q(`A wallet request of type ${t.method} was made before setting a wallet provider.`);return Promise.race([this.walletProvider.request(t),ui()]).catch(o=>{throw lt(o)})}},Bt=class extends Error{constructor(o,r,n){super(o);this.code=r,this.data=n}},Yr=class extends es.default{constructor(o,r,n=1){super();this.walletProxy=o,this.address=r,this.chainId=n,this.provider=new pi.JsonRpcProvider(oo(n))}async handleSendTransaction(o){if(!o.params||!Array.isArray(o.params))throw new Bt(`Invalid params for ${o.method}`,4200);let r=o.params[0];if(!await Ao()||!this.address)throw new Bt("Disconnected",4900);return(await os(r)).transactionHash}handleSwitchEthereumChain(o){if(!o.params||!Array.isArray(o.params))throw new Bt(`Invalid params for ${o.method}`,4200);let r;if(typeof o.params[0]=="string")r=o.params[0];else if("chainId"in o.params[0]&&typeof o.params[0].chainId=="string")r=o.params[0].chainId;else throw new Bt(`Invalid params for ${o.method}`,4200);this.chainId=Number(r),this.provider=new pi.JsonRpcProvider(oo(this.chainId)),this.emit("chainChanged",r)}async handlePersonalSign(o){if(!o.params||!Array.isArray(o.params))throw new Error("Invalid params for eth_estimateGas");let r=o.params[0],n=(0,Ja.isHexString)(r)?(0,Xa.toUtf8String)(r):r;return await ts(n)}async handleEstimateGas(o){if(!o.params||!Array.isArray(o.params))throw new Error("Invalid params for eth_estimateGas");let r={...o.params[0],chainId:rr(this.chainId)};return this.provider.send("eth_estimateGas",[r])}async request(o){switch(console.debug("Embedded1193Provider.request() called with args",o),o.method){case"eth_accounts":return this.address?[this.address]:[];case"eth_chainId":return rr(this.chainId);case"eth_estimateGas":return this.handleEstimateGas(o);case"eth_sendTransaction":return this.handleSendTransaction(o);case"wallet_switchEthereumChain":return this.handleSwitchEthereumChain(o);case"personal_sign":return this.handlePersonalSign(o);default:break}if(Qa(o.method)){let r=await Ao();if(!r||!this.address)throw new Bt("Disconnected",4900);try{return(await this.walletProxy.rpc({address:this.address,accessToken:r,request:{method:o.method,params:o.params}})).response.data}catch(n){throw console.error(n),new Bt("Disconnected",4900)}}else return this.provider.send(o.method,o.params)}async connect(){let o=await Ao();if(!o||!this.address)return null;try{return(await this.walletProxy.connect({address:this.address,accessToken:o})).address}catch(r){return console.error(r),null}}},Xe=class extends J{constructor(o){super(o)}},Ft=class extends J{constructor(t){super(t)}sendAsync(t,o){throw new Error("sendAsync is no longer supported by EIP-1193. Use the request method instead.")}};var Se=class extends rs.default{constructor(o){super();this.onAccountsChanged=o=>{this.syncAccounts(o)};this.onChainChanged=o=>{this.wallets.forEach(r=>{r.chainId=ci(o)}),this.emit("walletsUpdated")};this.onDisconnect=()=>{this.connected=!1,this.wallets=[],this.emit("walletsUpdated")};this.onConnect=()=>{this.connected=!0,this.syncAccounts()};this.wallets=[],this.walletClientType=o,this.connected=!1,this.initialized=!1}buildConnectedWallet(o,r){let n=async()=>!!this.wallets.find(i=>(0,Tt.getAddress)(i.address)===(0,Tt.getAddress)(o));return{address:(0,Tt.getAddress)(o),chainId:r,connectedAt:Date.now(),walletClientType:this.walletClientType,connectorType:this.connectorType,isConnected:n,getEthereumProvider:async()=>{if(!await n())throw new Q("Wallet is not currently connected.");return this.proxyProvider},getEthersProvider:async()=>{if(!await n())throw new Q("Wallet is not currently connected.");return new mi.Web3Provider(new Xe(this.proxyProvider))},getWeb3jsProvider:async()=>{if(!await n())throw new Q("Wallet is not currently connected.");return new Ft(this.proxyProvider)},sign:async i=>{if(!await n())throw new Q("Wallet is not currently connected.");return await this.sign(i)},disconnect:()=>{this.disconnect()}}}async syncAccounts(o){let r=o;if(r===void 0){let l=await this.proxyProvider.request({method:"eth_accounts"});Array.isArray(l)&&(r=l)}if(r===void 0||!Array.isArray(r)||r.length<=0)return;let n=[],i=await this.proxyProvider.request({method:"eth_chainId"}),a=ci(i);for(let l of r)n.find(s=>(0,Tt.getAddress)(s.address)===(0,Tt.getAddress)(l))||n.push(this.buildConnectedWallet((0,Tt.getAddress)(l),a));Qr(n,this.wallets)||(this.wallets=n,this.emit("walletsUpdated"))}async getConnectedWallet(){let o=await this.proxyProvider.request({method:"eth_accounts"});return this.wallets.sort((r,n)=>n.connectedAt-r.connectedAt).find(r=>o.find(n=>(0,Tt.getAddress)(n)===(0,Tt.getAddress)(r.address)))||null}async isConnected(){let o=await this.proxyProvider.request({method:"eth_accounts"});return Array.isArray(o)&&o.length>0}async sign(o){return await this.connect({showPrompt:!1}),new mi.Web3Provider(new Xe(this.proxyProvider)).getSigner().signMessage(o)}subscribeListeners(){this.proxyProvider.on("accountsChanged",this.onAccountsChanged),this.proxyProvider.on("chainChanged",this.onChainChanged),this.proxyProvider.on("disconnect",this.onDisconnect),this.proxyProvider.on("connect",this.onConnect)}unsubscribeListeners(){this.proxyProvider.removeListener("accountsChanged",this.onAccountsChanged),this.proxyProvider.removeListener("chainChanged",this.onChainChanged),this.proxyProvider.removeListener("disconnect",this.onDisconnect),this.proxyProvider.removeListener("connect",this.onConnect)}};var rd=e=>{let t=`https://mainnet.infura.io/v3/${Co}`,o=1;return e.makeWeb3Provider(t,o)},Zr,Jr=class extends Se{constructor(){super("coinbase_wallet");this.connectorType="coinbase_wallet";this.proxyProvider=new J,this.subscribeListeners(),Zr||(Zr=new ns.default({appName:"Privy",darkMode:!1,headlessMode:!1})),this.proxyProvider.setWalletProvider(rd(Zr)),this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}async connect(o){return o.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}disconnect(){Zr.disconnect()}get walletBranding(){return{name:"Coinbase Wallet",icon:Ve}}async promptConnection(){try{let o=await this.proxyProvider.request({method:"eth_requestAccounts"});if(o.length===0)throw new Q("Unable to retrieve accounts");this.connected=!0,await this.syncAccounts(o)}catch(o){throw lt(o)}}};var hi=require("react/jsx-runtime"),So=({style:e,...t})=>(0,hi.jsx)("svg",{width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"1.25rem",width:"1.25rem",...e},...t,children:(0,hi.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.99555 0.929932C-1.12055 1.31799 -0.499722 9.15734 2.17445 8.76915C0.0807959 10.5544 -0.960455 16.6416 6.01654 16.0265C10.6356 15.9489 15.5635 12.2232 15.5635 8.1095C15.5635 2.63748 10.7516 0.929932 7.99555 0.929932ZM9.47052 7.53055C9.47052 8.49933 8.81856 9.28468 8.01433 9.28468C7.2101 9.28468 6.55814 8.49933 6.55814 7.53055C6.55814 6.56176 7.2101 5.77641 8.01433 5.77641C8.81856 5.77641 9.47052 6.56176 9.47052 7.53055ZM12.3171 9.28468C13.1213 9.28468 13.7733 8.49933 13.7733 7.53055C13.7733 6.56176 13.1213 5.77641 12.3171 5.77641C11.5129 5.77641 10.8609 6.56176 10.8609 7.53055C10.8609 8.49933 11.5129 9.28468 12.3171 9.28468Z",fill:t.color||"var(--privy-color-foreground-3)"})});var Xr=class extends Se{constructor(o){super("privy");this.connectorType="embedded";this.proxyProvider=o,this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}async connect(o){return await this.isConnected()?(await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[rr((o==null?void 0:o.chainId)||"0x1")]}),this.getConnectedWallet()):null}get walletBranding(){return{name:"Privy Wallet",icon:So}}disconnect(){this.connected=!1}async promptConnection(){}};var nd=require("@ethersproject/address"),id=require("@ethersproject/providers"),is=require("react-device-detect");var ge=require("react/jsx-runtime"),ve=({style:e,...t})=>(0,ge.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",x:0,y:0,viewBox:"0 0 318.6 318.6",width:"28",height:"28",style:{height:"28px",width:"28px",...e},...t,children:[(0,ge.jsx)("style",{children:".s1{stroke-linecap:round;stroke-linejoin:round}.s2{fill:#e4761b;stroke:#e4761b}.s3{fill:#f6851b;stroke:#f6851b}"}),(0,ge.jsx)("path",{fill:"#e2761b",stroke:"#e2761b",className:"s1",d:"m274.1 35.5-99.5 73.9L193 65.8z"}),(0,ge.jsx)("path",{d:"m44.4 35.5 98.7 74.6-17.5-44.3zm193.9 171.3-26.5 40.6 56.7 15.6 16.3-55.3zm-204.4.9L50.1 263l56.7-15.6-26.5-40.6z",className:"s1 s2"}),(0,ge.jsx)("path",{d:"m103.6 138.2-15.8 23.9 56.3 2.5-2-60.5zm111.3 0-39-34.8-1.3 61.2 56.2-2.5zM106.8 247.4l33.8-16.5-29.2-22.8zm71.1-16.5 33.9 16.5-4.7-39.3z",className:"s1 s2"}),(0,ge.jsx)("path",{fill:"#d7c1b3",stroke:"#d7c1b3",className:"s1",d:"m211.8 247.4-33.9-16.5 2.7 22.1-.3 9.3zm-105 0 31.5 14.9-.2-9.3 2.5-22.1z"}),(0,ge.jsx)("path",{fill:"#233447",stroke:"#233447",className:"s1",d:"m138.8 193.5-28.2-8.3 19.9-9.1zm40.9 0 8.3-17.4 20 9.1z"}),(0,ge.jsx)("path",{fill:"#cd6116",stroke:"#cd6116",className:"s1",d:"m106.8 247.4 4.8-40.6-31.3.9zM207 206.8l4.8 40.6 26.5-39.7zm23.8-44.7-56.2 2.5 5.2 28.9 8.3-17.4 20 9.1zm-120.2 23.1 20-9.1 8.2 17.4 5.3-28.9-56.3-2.5z"}),(0,ge.jsx)("path",{fill:"#e4751f",stroke:"#e4751f",className:"s1",d:"m87.8 162.1 23.6 46-.8-22.9zm120.3 23.1-1 22.9 23.7-46zm-64-20.6-5.3 28.9 6.6 34.1 1.5-44.9zm30.5 0-2.7 18 1.2 45 6.7-34.1z"}),(0,ge.jsx)("path",{d:"m179.8 193.5-6.7 34.1 4.8 3.3 29.2-22.8 1-22.9zm-69.2-8.3.8 22.9 29.2 22.8 4.8-3.3-6.6-34.1z",className:"s3"}),(0,ge.jsx)("path",{fill:"#c0ad9e",stroke:"#c0ad9e",className:"s1",d:"m180.3 262.3.3-9.3-2.5-2.2h-37.7l-2.3 2.2.2 9.3-31.5-14.9 11 9 22.3 15.5h38.3l22.4-15.5 11-9z"}),(0,ge.jsx)("path",{fill:"#161616",stroke:"#161616",className:"s1",d:"m177.9 230.9-4.8-3.3h-27.7l-4.8 3.3-2.5 22.1 2.3-2.2h37.7l2.5 2.2z"}),(0,ge.jsx)("path",{fill:"#763d16",stroke:"#763d16",className:"s1",d:"m278.3 114.2 8.5-40.8-12.7-37.9-96.2 71.4 37 31.3 52.3 15.3 11.6-13.5-5-3.6 8-7.3-6.2-4.8 8-6.1zM31.8 73.4l8.5 40.8-5.4 4 8 6.1-6.1 4.8 8 7.3-5 3.6 11.5 13.5 52.3-15.3 37-31.3-96.2-71.4z"}),(0,ge.jsx)("path",{d:"m267.2 153.5-52.3-15.3 15.9 23.9-23.7 46 31.2-.4h46.5zm-163.6-15.3-52.3 15.3-17.4 54.2h46.4l31.1.4-23.6-46zm71 26.4 3.3-57.7 15.2-41.1h-67.5l15 41.1 3.5 57.7 1.2 18.2.1 44.8h27.7l.2-44.8z",className:"s3"})]});var en=class extends Se{constructor(){super("metamask");this.connectorType="injected";this.proxyProvider=new J,this.subscribeListeners();let o=window,r=o.ethereum,n=o.ethereum.providers||[];for(let i of n)if(i.isMetaMask){r=i;break}this.proxyProvider.setWalletProvider(r),this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}async connect(o){return o.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}get walletBranding(){return{name:"MetaMask",icon:ve}}disconnect(){console.warn("Metamask does not support programmatic disconnect.")}async promptConnection(){try{!is.isMobile&&jr()&&await this.proxyProvider.request({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]});let o=await this.proxyProvider.request({method:"eth_requestAccounts"});if(!o||o.length===0)throw new Q("Unable to retrieve accounts");await this.syncAccounts(o)}catch(o){throw lt(o)}}};var $e=require("react/jsx-runtime"),ct=({style:e,...t})=>(0,$e.jsxs)("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"28px",width:"28px",...e},...t,children:[(0,$e.jsx)("rect",{width:"28",height:"28",rx:"6",fill:"url(#paint0_linear_1765_9937)"}),(0,$e.jsx)("path",{d:"M24.0223 14.1704H21.5542C21.5542 9.14083 17.4627 5.06372 12.4151 5.06372C7.43008 5.06372 3.37717 9.04101 3.27798 13.9845C3.17536 19.0945 7.98653 23.5318 13.1154 23.5318H13.7605C18.2822 23.5318 24.3426 20.0047 25.2895 15.7072C25.4643 14.9151 24.8364 14.1704 24.0223 14.1704ZM8.74752 14.3945C8.74752 15.0671 8.19544 15.6172 7.52045 15.6172C6.84545 15.6172 6.29341 15.0669 6.29341 14.3945V12.4165C6.29341 11.7439 6.84545 11.1938 7.52045 11.1938C8.19544 11.1938 8.74752 11.7439 8.74752 12.4165V14.3945ZM13.0083 14.3945C13.0083 15.0671 12.4563 15.6172 11.7813 15.6172C11.1063 15.6172 10.5543 15.0669 10.5543 14.3945V12.4165C10.5543 11.7439 11.1065 11.1938 11.7813 11.1938C12.4563 11.1938 13.0083 11.7439 13.0083 12.4165V14.3945Z",fill:"url(#paint1_linear_1765_9937)"}),(0,$e.jsxs)("defs",{children:[(0,$e.jsxs)("linearGradient",{id:"paint0_linear_1765_9937",x1:"14",y1:"0",x2:"14",y2:"28",gradientUnits:"userSpaceOnUse",children:[(0,$e.jsx)("stop",{stopColor:"#534BB1"}),(0,$e.jsx)("stop",{offset:"1",stopColor:"#551BF9"})]}),(0,$e.jsxs)("linearGradient",{id:"paint1_linear_1765_9937",x1:"14.2976",y1:"5.06372",x2:"14.2976",y2:"23.5318",gradientUnits:"userSpaceOnUse",children:[(0,$e.jsx)("stop",{stopColor:"white"}),(0,$e.jsx)("stop",{offset:"1",stopColor:"white",stopOpacity:"0.82"})]})]})]});var tn=class extends Se{constructor(){super("phantom");this.connectorType="injected";this.proxyProvider=new J,this.subscribeListeners(),this.proxyProvider.setWalletProvider(window.phantom.ethereum),this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}async connect(o){return o.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}get walletBranding(){return{name:"Phantom",icon:ct}}disconnect(){console.warn("Phantom does not support programmatic disconnect.")}async promptConnection(){try{let o=await this.proxyProvider.request({method:"eth_requestAccounts"});await this.syncAccounts(o)}catch(o){throw lt(o)}}};var ms=require("@walletconnect/ethereum-provider"),hs=require("@walletconnect/modal"),ir=require("react-device-detect");var et=require("react");var ss=require("react/jsx-runtime");function as(e){return(0,ss.jsx)("link",{rel:"prefetch",href:e.src})}var on=require("react/jsx-runtime"),Pt="LANDING",ls=(0,et.createContext)({ready:!1,app:null,currentScreen:Pt,lastScreen:Pt,navigate:T,navigateBack:T,setModalData:T}),cs=e=>{var h,E,w;let t=e.appConfig,o=e.authenticated,r=e.visible,[n,i]=(0,et.useState)(e.initialScreen||Pt),[a,l]=(0,et.useState)(e.initialScreen||Pt);(0,et.useEffect)(()=>{o||i(Pt)},[o]),(0,et.useEffect)(()=>{r||(l(Pt),i(Pt))},[r]),(0,et.useEffect)(()=>{e.initialScreen&&n===Pt&&(i(e.initialScreen),l(e.initialScreen))},[e.initialScreen]);let s=e.initialScreen&&n===Pt?e.initialScreen:n,u={ready:!!(t!=null&&t.id),app:t,data:e.data,setModalData:e.setModalData,currentScreen:s,lastScreen:a,navigate:m=>{l(n),i(m)},navigateBack:()=>{i(a)}};return(0,on.jsxs)(ls.Provider,{value:u,children:[(typeof((h=t==null?void 0:t.appearance)==null?void 0:h.logo)=="string"||((w=(E=t==null?void 0:t.appearance)==null?void 0:E.logo)==null?void 0:w.type)==="img")&&(0,on.jsx)(as,{src:typeof t.appearance.logo=="string"?t.appearance.logo:t.appearance.logo.props.src}),e.children]})},b=()=>(0,et.useContext)(ls);var _t=require("react/jsx-runtime"),ko=({style:e,...t})=>{let{app:o}=b();return(0,_t.jsxs)("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"28px",width:"28px",...e},...t,children:[(0,_t.jsx)("rect",{width:"28",height:"28",rx:"3",fill:(o==null?void 0:o.appearance.palette.colorScheme)==="dark"?"#3396ff":"#141414"}),(0,_t.jsx)("g",{clipPath:"url(#clip0_1765_9946)",children:(0,_t.jsx)("path",{d:"M8.09448 10.3941C11.3558 7.20196 16.6442 7.20196 19.9055 10.3941L20.2982 10.7782C20.3369 10.8157 20.3677 10.8606 20.3887 10.9102C20.4097 10.9599 20.4206 11.0132 20.4206 11.0671C20.4206 11.121 20.4097 11.1744 20.3887 11.224C20.3677 11.2737 20.3369 11.3186 20.2982 11.3561L18.9554 12.6702C18.9158 12.7086 18.8628 12.7301 18.8077 12.7301C18.7526 12.7301 18.6996 12.7086 18.66 12.6702L18.1198 12.1415C15.8448 9.91503 12.1557 9.91503 9.88015 12.1415L9.30167 12.7075C9.26207 12.7459 9.20909 12.7673 9.15395 12.7673C9.0988 12.7673 9.04582 12.7459 9.00622 12.7075L7.66346 11.3934C7.62475 11.3559 7.59397 11.3109 7.57295 11.2613C7.55193 11.2117 7.5411 11.1583 7.5411 11.1044C7.5411 11.0505 7.55193 10.9971 7.57295 10.9475C7.59397 10.8979 7.62475 10.8529 7.66346 10.8154L8.09448 10.3941ZM22.6829 13.1115L23.8776 14.2814C23.9163 14.319 23.9471 14.3639 23.9681 14.4135C23.9892 14.4632 24 14.5165 24 14.5704C24 14.6243 23.9892 14.6777 23.9681 14.7273C23.9471 14.777 23.9163 14.8219 23.8776 14.8594L18.4893 20.1332C18.4102 20.2101 18.3042 20.2531 18.1938 20.2531C18.0835 20.2531 17.9775 20.2101 17.8984 20.1332L14.0743 16.3901C14.0545 16.3708 14.0279 16.36 14.0003 16.36C13.9726 16.36 13.9461 16.3708 13.9263 16.3901L10.1021 20.1332C10.023 20.2101 9.91703 20.2531 9.8067 20.2531C9.69636 20.2531 9.59038 20.2101 9.51124 20.1332L4.12236 14.8594C4.08365 14.8219 4.05287 14.777 4.03185 14.7273C4.01083 14.6777 4 14.6243 4 14.5704C4 14.5165 4.01083 14.4632 4.03185 14.4135C4.05287 14.3639 4.08365 14.319 4.12236 14.2814L5.31767 13.1115C5.39678 13.0348 5.50265 12.9919 5.61285 12.9919C5.72305 12.9919 5.82892 13.0348 5.90803 13.1115L9.73216 16.8546C9.75194 16.874 9.7785 16.8848 9.80616 16.8848C9.83381 16.8848 9.86037 16.874 9.88015 16.8546L13.7043 13.1115C13.7834 13.0346 13.8894 12.9916 13.9997 12.9916C14.1101 12.9916 14.216 13.0346 14.2952 13.1115L18.1198 16.8546C18.1396 16.874 18.1662 16.8848 18.1938 16.8848C18.2215 16.8848 18.2481 16.874 18.2678 16.8546L22.092 13.1115C22.1711 13.0346 22.2771 12.9916 22.3874 12.9916C22.4977 12.9916 22.6037 13.0346 22.6829 13.1115Z",fill:"white"})}),(0,_t.jsx)("defs",{children:(0,_t.jsx)("clipPath",{id:"clip0_1765_9946",children:(0,_t.jsx)("rect",{width:"20",height:"12.2531",fill:"white",transform:"translate(4 8)"})})})]})};var ds=require("react-device-detect");var rn=e=>{let t;try{t=new URL(e).hostname}catch{return}for(let[o,r]of Object.entries(ad))if(r.hostname===t)return{walletClientType:o,entry:r}};var ad={metamask:{id:"c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96",displayName:"MetaMask",image_id:"5195e9db-94d8-4579-6f11-ef553be95100",hostname:"metamask.io",mobile:{native:"metamask:"}},trust:{id:"4622a2b2d6af1c9844944291e5e7351a6aa24cd7b23099efac1b2fd875da31a0",displayName:"Trust",image_id:"0528ee7e-16d1-4089-21e3-bbfb41933100",hostname:"trustwallet.com",mobile:{universal:"https://link.trustwallet.com"}},safe:{id:"225affb176778569276e484e1b92637ad061b01e13a048b35a9d280c3b58970f",displayName:"Safe",image_id:"a1cb2777-f8f9-49b0-53fd-443d20ee0b00",hostname:"safe.global",mobile:{universal:"https://app.safe.global/"}},rainbow:{id:"1ae92b26df02f0abca6304df07debccd18262fdf5fe82daa81593582dac9a369",displayName:"Rainbow",image_id:"7a33d7f1-3d12-4b5c-f3ee-5cd83cb1b500",hostname:"rainbow.me",mobile:{universal:"https://rnbwapp.com"}},uniswap:{id:"c03dfee351b6fcc421b4494ea33b9d4b92a984f87aa76d1663bb28705e95034a",displayName:"Uniswap",image_id:"bff9cf1f-df19-42ce-f62a-87f04df13c00",hostname:"uniswap.org",mobile:{universal:"https://uniswap.org/app"}},zerion:{id:"ecc4036f814562b41a5268adc86270fba1365471402006302e70169465b7ac18",displayName:"Zerion",image_id:"f216b371-96cf-409a-9d88-296392b85800",hostname:"zerion.io",mobile:{universal:"https://wallet.zerion.io"}},argent:{id:"bc949c5d968ae81310268bf9193f9c9fb7bb4e1283e1284af8f2bd4992535fd6",displayName:"Argent",image_id:"215158d2-614b-49c9-410f-77aa661c3900",hostname:"www.argent.xyz",mobile:{universal:"https://www.argent.xyz/app"}},spot:{id:"74f8092562bd79675e276d8b2062a83601a4106d30202f2d509195e30e19673d",displayName:"Spot",image_id:"1bf33a89-b049-4a1c-d1f6-4dd7419ee400",hostname:"www.spot-wallet.com",mobile:{universal:"https://spot.so"}},omni:{id:"afbd95522f4041c71dd4f1a065f971fd32372865b416f95a0b1db759ae33f2a7",displayName:"Omni",image_id:"2cd67b4c-282b-4809-e7c0-a88cd5116f00",hostname:"omni.app",mobile:{universal:"https://links.omni.app"}},cryptocom:{id:"f2436c67184f158d1beda5df53298ee84abfc367581e4505134b5bcf5f46697d",displayName:"Crypto.com",image_id:"7c5ff577-a68d-49c5-02cd-3d83637b0b00",hostname:"crypto.com",mobile:{universal:"https://wallet.crypto.com"}},blockchain:{id:"84b43e8ddfcd18e5fcb5d21e7277733f9cccef76f7d92c836d0e481db0c70c04",displayName:"Blockchain",image_id:"6f913b80-86c0-46f9-61ca-cc90a1805900",hostname:"www.blockchain.com",mobile:{universal:"https://www.blockchain.com"}},safepal:{id:"0b415a746fb9ee99cce155c2ceca0c6f6061b1dbca2d722b3ba16381d0562150",displayName:"SafePal",image_id:"252753e7-b783-4e03-7f77-d39864530900",hostname:"safepal.com",mobile:{universal:"https://link.safepal.io"}},bitkeep:{id:"38f5d18bd8522c244bdd70cb4a68e0e718865155811c043f052fb9f1c51de662",displayName:"BitKeep",image_id:"3f7075d0-4ab7-4db5-404d-3e4c05e6fe00",hostname:"bitkeep.com",mobile:{universal:"https://bkapp.vip"}},zengo:{id:"9414d5a85c8f4eabc1b5b15ebe0cd399e1a2a9d35643ab0ad22a6e4a32f596f0",displayName:"ZenGo",image_id:"cfc07342-23ea-4f3f-f071-ec9d2cd86b00",hostname:"zengo.com",mobile:{universal:"https://get.zengo.com/"}},"1inch":{id:"c286eebc742a537cd1d6818363e9dc53b21759a1e8e5d9b263d0c03ec7703576",displayName:"1inch",image_id:"52b1da3c-9e72-40ae-5dac-6142addd9c00",hostname:"wallet.1inch.io",mobile:{universal:"https://wallet.1inch.io/wc/"}},binance:{id:"8a0ee50d1f22f6651afcae7eb4253e52a3310b90af5daef78a8c4929a9bb99d4",displayName:"Binance",image_id:"ebac7b39-688c-41e3-7912-a4fefba74600",hostname:"www.binance.com",mobile:{universal:"https://app.binance.com/cedefi"}},exodus:{id:"e9ff15be73584489ca4a66f64d32c4537711797e30b6660dbcb71ea72a42b1f4",displayName:"Exodus",image_id:"4c16cad4-cac9-4643-6726-c696efaf5200",hostname:"exodus.com",mobile:{universal:"https://exodus.com/m"}},mew_wallet:{id:"f5b4eeb6015d66be3f5940a895cbaa49ef3439e518cd771270e6b553b48f31d2",displayName:"MEW wallet",image_id:"e2024511-2c9b-46d7-3111-52df3d241700",hostname:"mewwallet.com",mobile:{universal:"https://mewwallet.com"}},alphawallet:{id:"138f51c8d00ac7b9ac9d8dc75344d096a7dfe370a568aa167eabc0a21830ed98",displayName:"AlphaWallet",image_id:"5b1cddfb-056e-4e78-029a-54de5d70c500",hostname:"alphawallet.com",mobile:{universal:"https://aw.app"}},keyring_pro:{id:"47bb07617af518642f3413a201ec5859faa63acb1dd175ca95085d35d38afb83",displayName:"KEYRING PRO",image_id:"dda0f0fb-34e8-4a57-dcea-b008e7d1ff00",hostname:"keyring.app",mobile:{universal:"https://keyring.app/"}},mathwallet:{id:"7674bb4e353bf52886768a3ddc2a4562ce2f4191c80831291218ebd90f5f5e26",displayName:"MathWallet",image_id:"26a8f588-3231-4411-60ce-5bb6b805a700",hostname:"mathwallet.org",mobile:{universal:"https://www.mathwallet.org"}},unstoppable:{id:"8308656f4548bb81b3508afe355cfbb7f0cb6253d1cc7f998080601f838ecee3",displayName:"Unstoppable",image_id:"4725dda0-4471-4d0f-7adf-6bbe8b929c00",hostname:"unstoppabledomains.com",mobile:{universal:"https://unstoppabledomains.com/mobile"}},obvious:{id:"031f0187049b7f96c6f039d1c9c8138ff7a17fd75d38b34350c7182232cc29aa",displayName:"Obvious",image_id:"61abe2ca-b06d-4a8b-de3e-8326f523e900",hostname:"obvious.technology",mobile:{universal:"https://wallet.obvious.technology"}},ambire:{id:"2c81da3add65899baeac53758a07e652eea46dbb5195b8074772c62a77bbf568",displayName:"Ambire",image_id:"c39b3a16-1a38-4588-f089-cb7aeb584700",hostname:"www.ambire.com",mobile:{universal:"https://mobile.ambire.com"}},internet_money_wallet:{id:"dd43441a6368ec9046540c46c5fdc58f79926d17ce61a176444568ca7c970dcd",displayName:"Internet Money Wallet",image_id:"204b2240-5ce4-4996-6ec4-f06a22726900",hostname:"internetmoney.io",mobile:{universal:"https://internetmoney.io"}},coin98:{id:"2a3c89040ac3b723a1972a33a125b1db11e258a6975d3a61252cd64e6ea5ea01",displayName:"Coin98",image_id:"fc460647-ea95-447a-99f0-1bff8fa4be00",hostname:"coin98.com",mobile:{universal:"https://coin98.services"}},abc_wallet:{id:"b956da9052132e3dabdcd78feb596d5194c99b7345d8c4bd7a47cabdcb69a25f",displayName:"ABC Wallet",image_id:"f9854c79-14ba-4987-42e1-4a82abbf5700",hostname:"myabcwallet.io",mobile:{universal:"https://abcwalletconnect.page.link"}},arculus_wallet:{id:"0e4915107da5b3408b38e248f7a710f4529d54cd30e9d12ff0eb886d45c18e92",displayName:"Arculus Wallet",image_id:"f78dab27-7165-4a3d-fdb1-fcff06c0a700",hostname:"www.getarculus.com",mobile:{universal:"https://gw.arculus.co/app"}},haha:{id:"719bd888109f5e8dd23419b20e749900ce4d2fc6858cf588395f19c82fd036b3",displayName:"HaHa",image_id:"79285c9f-2630-451e-0680-c71b42fb7400",hostname:"www.haha.me",mobile:{universal:"https://haha.me"}},cling_wallet:{id:"942d0e22a7e6b520b0a03abcafc4dbe156a1fc151876e3c4a842f914277278ef",displayName:"Cling Wallet",image_id:"2d8006c3-852b-458a-d6b0-916c5ba76800",hostname:"clingon.io",mobile:{universal:"https://cling.carrieverse.com/apple-app-site-association"}},broearn:{id:"8ff6eccefefa7506339201bc33346f92a43118d6ff7d6e71d499d8187a1c56a2",displayName:"Broearn",image_id:"339b9e9d-e2a7-46eb-4ed3-272321257a00",hostname:"www.broearn.com",mobile:{universal:"https://www.broearn.com/link/wallet/"}},copiosa:{id:"07f99a5d9849bb049d74830012b286f8b238e72b0337933ef22b84947409db80",displayName:"Copiosa",image_id:"cae1be94-9f53-4eba-b915-f6e381d5a500",hostname:"copiosa.io",mobile:{universal:"https://copiosa.io/action/"}},burrito_wallet:{id:"8821748c25de9dbc4f72a691b25a6ddad9d7df12fa23333fd9c8b5fdc14cc819",displayName:"Burrito Wallet",image_id:"7eec7187-3f48-4fda-53bb-b0ad55749a00",hostname:"burritowallet.com",mobile:{universal:"https://burritowallet.com/wc?uri="}},enjin_wallet:{id:"bdc9433ffdaee55d31737d83b931caa1f17e30666f5b8e03eea794bac960eb4a",displayName:"Enjin Wallet",image_id:"add9626b-a5fa-4c12-178c-e5584e6dcd00",hostname:"enjin.io",mobile:{universal:"https://deeplink.wallet.enjin.io/"}},plasma_wallet:{id:"cbe13eb482c76f1fa401ff4c84d9acd0b8bc9af311ca0620a0b192fb28359b4e",displayName:"Plasma Wallet",image_id:"c268e78d-ffb0-4c8b-5cad-04c3add48500",hostname:"plasma-wallet.com",mobile:{universal:"https://plasma-wallet.com"}},avacus:{id:"94f785c0c8fb8c4f38cd9cd704416430bcaa2137f27e1468782d624bcd155a43",displayName:"Avacus",image_id:"a7106965-91cc-4a73-4688-c5c72ae0ed00",hostname:"avacus.cc",mobile:{universal:"https://avacus.app.link"}},bee:{id:"2cca8c1b0bea04ba37dee4017991d348cdb7b826804ab2bd31073254f345b715",displayName:"Bee",image_id:"f90bc33f-f085-40cf-7538-fae5ae84f900",hostname:"www.beewallet.app",mobile:{universal:"https://beewallet.app/wc"}},pitaka:{id:"14e5d957c6eb62d3ee8fc6239703ac2d537d7e3552154836ca0beef775f630bc",displayName:"Pitaka",image_id:"691c0716-5213-4b99-e837-079268313800",hostname:"pitaka.io",mobile:{universal:"https://app.pitaka.io"}},pltwallet:{id:"576c90ceaea34f29ff0104837cf2b2e23d201be43be1433feeb18d375430e1fd",displayName:"PLTwallet",image_id:"a5d9dd15-8cef-42de-8bed-09e01a8b0200",hostname:"pltwallet.io",mobile:{universal:"https://pltwallet.io/"}},minerva:{id:"49bb9d698dbdf2c3d4627d66f99dd9fe90bba1eec84b143f56c64a51473c60bd",displayName:"Minerva",image_id:"b57b2163-1bd8-4f6b-3311-470767e6d200",hostname:"minerva.digital",mobile:{universal:"https://minerva.digital"}},kryptogo:{id:"19418ecfd44963883e4d6abca1adeb2036f3b5ffb9bee0ec61f267a9641f878b",displayName:"KryptoGO",image_id:"3ccbd966-97e8-45a0-1ceb-6141a8978e00",hostname:"kryptogo.com",mobile:{universal:"https://kryptogo.page.link"}},prema:{id:"5b8e33346dfb2a532748c247876db8d596734da8977905a27b947ba1e2cf465b",displayName:"PREMA",image_id:"6487869b-1165-4f30-aa3a-115665be8300",hostname:"premanft.com",mobile:{universal:"https://premanft.com"}},slingshot:{id:"d23de318f0f56038c5edb730a083216ff0cce00c1514e619ab32231cc9ec484b",displayName:"Slingshot",image_id:"10c75467-6612-48ad-b97b-63985e922200",hostname:"slingshot.finance",mobile:{universal:"https://app.slingshot.finance"}},kriptonio:{id:"50df7da345f84e5a79aaf617df5167335a4b6751626df2e8a38f07029b3dde7b",displayName:"Kriptonio",image_id:"363fae03-882a-4d81-a721-6e6f6e9ac500",hostname:"kriptonio.com",mobile:{universal:"https://app.kriptonio.com/mobile"}},timeless:{id:"9751385960bca290c13b443155288f892f62ee920337eda8c5a8874135daaea8",displayName:"Timeless",image_id:"32e89601-0490-42fc-0cc4-8627d62a2000",hostname:"timelesswallet.xyz",mobile:{universal:"https://timelesswallet.xyz"}},secux:{id:"6464873279d46030c0b6b005b33da6be5ed57a752be3ef1f857dc10eaf8028aa",displayName:"SecuX",image_id:"98183be0-3125-45ee-a6b6-fbd47ebefd00",hostname:"secuxtech.com",mobile:{universal:"https://wsweb.secuxtech.com"}},bitizen:{id:"41f20106359ff63cf732adf1f7dc1a157176c9b02fd266b50da6dcc1e9b86071",displayName:"Bitizen",image_id:"75dd1471-77e9-4811-ce57-ec8fc980ec00",hostname:"bitizen.org",mobile:{universal:"https://bitizen.org/wallet"}},blocto:{id:"14e7176536cb3706e221daaa3cfd7b88b7da8c7dfb64d1d241044164802c6bdd",displayName:"Blocto",image_id:"374258d3-c749-4f37-7815-77e61f798c00",hostname:"blocto.io",mobile:{universal:"https://blocto.app"}},safemoon:{id:"a0e04f1086aac204d4ebdd5f985c12ed226cd0006323fd8143715f9324da58d1",displayName:"SafeMoon",image_id:"ea0140c7-787c-43a4-838f-d5ab6a342000",hostname:"safemoon.com",mobile:{universal:"https://safemoon.com/wc"}}},ps=(e,t="md")=>`https://registry.walletconnect.com/v2/logo/${t}/${e}`;function sd(e){return{name:e.displayName||"",universalLink:e.mobile.universal||"",deepLink:e.mobile.native||""}}function ld(e,t){let o=encodeURIComponent(e);return t.universalLink?`${t.universalLink}/wc?uri=${o}`:t.deepLink?`${t.deepLink}${t.deepLink.endsWith(":")?"//":"/"}wc?uri=${e}`:""}function us(e,t){return ds.isAndroid?e:ld(e,sd(t))}var ar=class extends Se{constructor(o,r){super(r||"unknown");this.connectorType="wallet_connect_v2";this.walletConnectCloudProjectId=o,this.proxyProvider=new J,this.createProvider().then(n=>{var i,a;if(this.provider=n,this.proxyProvider.setWalletProvider(n),this.subscribeListeners(),n.session){if((i=this.walletProvider.session)!=null&&i.peer.metadata.url){let l=rn((a=this.walletProvider.session)==null?void 0:a.peer.metadata.url);this.walletEntry=l==null?void 0:l.entry,this.walletClientType=(l==null?void 0:l.walletClientType)||"unknown"}this.connected=!0,this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}else this.emit("initialized"),this.initialized=!0}),this.modal=new hs.WalletConnectModal({projectId:this.walletConnectCloudProjectId}),this.modal.subscribeModal(n=>{!n.open&&!this.walletProvider.session&&this.onQrModalClosed&&this.onQrModalClosed()})}async connect(o){return o.showPrompt&&await this.promptConnection(),this.getConnectedWallet()}async isConnected(){return this.walletProvider.connected}get walletBranding(){var o,r,n;return this.walletEntry?{name:this.walletEntry.displayName,icon:this.walletClientType==="metamask"?ve:ps(this.walletEntry.image_id)}:{name:li(((o=this.walletProvider.session)==null?void 0:o.peer.metadata.name)||"")||"WalletConnect",icon:((n=(r=this.walletProvider.session)==null?void 0:r.peer.metadata.icons)==null?void 0:n[0])||ko}}async resetConnection(){await this.isConnected()&&(await this.walletProvider.disconnect(),this.walletEntry=void 0)}async promptConnection(){if(!!this.provider)return new Promise((o,r)=>{let n=()=>{r(new Po)};this.onQrModalClosed=n,(async()=>{var s,u;let a="",l=await Promise.race([this.walletProvider.enable(),ui()]);if(l.length>0&&(a=l[0]),!a||a==="")throw new Q("Unable to retrieve address");if((s=this.walletProvider.session)!=null&&s.peer.metadata.url){let h=rn((u=this.walletProvider.session)==null?void 0:u.peer.metadata.url);this.walletEntry=h==null?void 0:h.entry,this.walletClientType=(h==null?void 0:h.walletClientType)||"unknown"}this.connected=!0,await this.syncAccounts(l),o()})().catch(a=>{if(a){r(lt(a));return}r(new Q("Unknown error during connection"))}).finally(()=>this.modal.closeModal())})}disconnect(){this.walletProvider.disconnect().then(()=>this.onDisconnect()).catch(()=>console.warn("Unable to disconnect Wallet Connect provider"))}get walletProvider(){return this.proxyProvider.walletProvider}setWalletProvider(o){this.proxyProvider.setWalletProvider(o)}async createProvider(){var n,i;let o={};for(let a of $r){let l=(i=(n=a.rpcUrls.infura)==null?void 0:n.http)==null?void 0:i[0];l&&(o[a.id]=l+"/"+Co)}let r=await ms.EthereumProvider.init({projectId:this.walletConnectCloudProjectId,chains:[1],rpcMap:o,showQrModal:!1});return r.on("display_uri",a=>{if(ir.isMobile&&this.walletEntry){let s=us(a,this.walletEntry);ir.isAndroid?window.open(s,"_self"):window.open(s,"_self","noopener,noreferrer")}else ir.isAndroid?window.open(a,"_self"):this.modal.openModal({uri:a})}),r.on("connect",()=>{var a,l;if(this.modal.closeModal(),(a=r.session)!=null&&a.peer.metadata.url){let s=rn((l=r.session)==null?void 0:l.peer.metadata.url);this.walletEntry=s==null?void 0:s.entry,this.walletClientType=(s==null?void 0:s.walletClientType)||"unknown"}}),r}async enableProvider(){return this.walletProvider.connected?Promise.resolve(this.walletProvider.accounts):await this.walletProvider.enable()}};var yi=e=>{let t=localStorage.getItem("-walletlink:https://www.walletlink.org:Addresses");return t?!!(e==null?void 0:e.linkedAccounts.filter(r=>r.type=="wallet"&&r.address===(0,fi.getAddress)(t)).length):!1},Ro=class extends fs.default{constructor(o){super();this.getEthereumProvider=()=>{let o=this.wallets[0],r=this.walletConnectors.find(n=>n.wallets.find(i=>i.address===(o==null?void 0:o.address)));return!o||!r?new J:r.proxyProvider};this.walletConnectCloudProjectId=o,this.walletConnectors=[],this.initialized=!1,this.storedConnections=this.loadConnectionHistory()}get wallets(){let o=new Set,r=this.walletConnectors.flatMap(i=>i.wallets).sort((i,a)=>i.connectedAt&&a.connectedAt?a.connectedAt-i.connectedAt:0).filter(i=>{let a=`${i.address}${i.walletClientType}${i.connectorType}`;return o.has(a)?!1:(o.add(a),!0)}),n=r.findIndex(i=>i.address===(this.activeWallet?this.activeWallet:"unknown"));return n>=0&&r.unshift(r.splice(n,1)[0]),r}initialize(){this.initialized||(ne.get(ni)&&(ne.getKeys().forEach(o=>{o.startsWith("walletconnect")&&ne.del(o)}),ne.del(ni)),Ya().then(o=>o.forEach(r=>{switch(r){case"metamask":this.createWalletConnector("injected","metamask");break;case"phantom":this.createWalletConnector("injected","phantom");break;case"unknown":default:break}})),(Ut()||ne.getKeys().find(o=>o.startsWith("-walletlink")))&&this.createWalletConnector("coinbase_wallet","coinbase_wallet"),this.createWalletConnector("wallet_connect_v2","unknown"),this.initialized=!0)}findWalletConnector(o,r){return o==="wallet_connect_v2"?this.walletConnectors.find(n=>n.connectorType===o)||null:this.walletConnectors.find(n=>n.connectorType===o&&n.walletClientType===r)||null}onInitialized(o){o.wallets.forEach(r=>{let n=this.storedConnections.find(i=>i.address===r.address&&i.connectorType===r.connectorType&&i.walletClientType===r.walletClientType);n&&(r.connectedAt=n.connectedAt)}),this.saveConnectionHistory(),this.emit("walletsUpdated")}onWalletsUpdated(o){o.initialized&&(this.saveConnectionHistory(),this.emit("walletsUpdated"))}addEmbeddedWalletConnector(o,r){if(!this.findWalletConnector("embedded","privy")){let i=new Yr(o,r),a=new Xr(i);this.addWalletConnector(a)}}removeEmbeddedWalletConnector(){let o=this.findWalletConnector("embedded","privy");if(o){let r=this.walletConnectors.indexOf(o);this.walletConnectors.splice(r,1),this.saveConnectionHistory(),this.emit("walletsUpdated")}}async createWalletConnector(o,r){let n=this.findWalletConnector(o,r);if(n)return n instanceof ar&&await n.resetConnection(),n;let a=(()=>{switch(o){case"injected":switch(r){case"phantom":return ze()?new tn:null;case"metamask":default:return or()?new en:null}case"coinbase_wallet":return new Jr;case"wallet_connect_v2":return new ar(this.walletConnectCloudProjectId)}})();return a&&this.addWalletConnector(a),a||null}addWalletConnector(o){this.walletConnectors.push(o),o.on("initialized",()=>this.onInitialized(o)),o.on("walletsUpdated",()=>this.onWalletsUpdated(o))}loadConnectionHistory(){let o=a=>a&&typeof a.address=="string"&&typeof a.connectorType=="string"&&typeof a.walletClientType=="string"&&typeof a.connectedAt=="number",r=ne.get(ii);return r&&Array.isArray(r)&&r.map(a=>o(a)).every(Boolean)?r:[]}saveConnectionHistory(){let o=this.wallets.map(r=>({address:r.address,connectorType:r.connectorType,walletClientType:r.walletClientType,connectedAt:r.connectedAt}));ne.put(ii,o)}async activeWalletSign(o){let r=this.wallets,n=r.length>0?r[0]:null;return n?n.sign(o):null}setActiveWallet(o){this.activeWallet=(0,fi.getAddress)(o),this.emit("walletsUpdated")}};function Qr(e,t){if(e.length!==t.length)return!1;for(let o=0;o<e.length;o++){let r=e[o],n=t[o];if((r==null?void 0:r.address)!==(n==null?void 0:n.address)||(r==null?void 0:r.chainId)!==(n==null?void 0:n.chainId)||(r==null?void 0:r.connectorType)!==(n==null?void 0:n.connectorType)||(r==null?void 0:r.connectedAt)!==(n==null?void 0:n.connectedAt)||(r==null?void 0:r.walletClientType)!==(n==null?void 0:n.walletClientType)||(r==null?void 0:r.isConnected)!==(n==null?void 0:n.isConnected)||(r==null?void 0:r.linked)!==(n==null?void 0:n.linked))return!1}return!0}var ys=require("ofetch");var cd=[Fr(),Gr()],nn=class{constructor(t,o,r){this.appId=t,this.sdkVersion=zr,this.client=o,this.defaults=r,this.fallbackApiUrl=o.fallbackApiUrl,this.baseFetch=ys.ofetch.create({baseURL:this.defaults.baseURL,credentials:"include",onRequest:async({request:n,options:i})=>{let a=new Headers(i.headers);a.set("privy-app-id",this.appId),a.set("privy-client",`react-auth:${this.sdkVersion}`);let l=!cd.includes(n.toString());if(!a.has("authorization")&&l){let s=await this.client.getAccessToken();s!==null&&a.set("authorization",`Bearer ${s}`)}i.headers=a,i.signal||(i.signal=AbortSignal.timeout(this.defaults.timeout))},onRequestError:({error:n})=>{if(n instanceof DOMException&&n.name==="AbortError")throw new Br}})}async get(t,o){try{return await this.baseFetch(t,o)}catch(r){throw ce(r)}}async post(t,o,r){try{return await this.baseFetch(t,{method:"POST",...o?{body:o}:{},...r})}catch(n){throw ce(n)}}async delete(t,o){try{return await this.baseFetch(t,{method:"DELETE",...o})}catch(r){throw ce(r)}}};var sr=P(require("js-cookie"));function gs(e){return e instanceof Xt?"email":e instanceof to?"sms":e instanceof eo?"siwe":e instanceof Ot?e.meta.provider:null}var Gt=class{constructor(t){this.promise=null;this.fn=t}execute(t){return this.promise===null&&(this.promise=(async()=>{try{return await this.fn(t)}finally{this.promise=null}})()),this.promise}};var vs=P(require("jose")),dt=class{static parse(t){try{return new dt(t)}catch{return null}}constructor(t){this.value=t,this._decoded=vs.decodeJwt(t)}get subject(){return this._decoded.sub}get expiration(){return this._decoded.exp}get issuer(){return this._decoded.iss}get audience(){return this._decoded.aud}isExpired(t=0){let o=Date.now(),r=(this.expiration-t)*1e3;return o>=r}};var dd=30,an=class{constructor(){this.authenticateOnce=new Gt(async t=>this._authenticate(t)),this.linkOnce=new Gt(async t=>this._link(t)),this.refreshOnce=new Gt(this._refresh.bind(this)),this.destroyOnce=new Gt(this._destroy.bind(this)),this.forkSessionOnce=new Gt(this._forkSession.bind(this))}get token(){try{let t=ne.get(Eo);return typeof t=="string"?new dt(t).value:null}catch(t){return console.error(t),this.destroyLocalState(),null}}get refreshToken(){try{let t=ne.get(Vr);return typeof t=="string"?t:null}catch(t){return console.error(t),this.destroyLocalState(),null}}get forkedToken(){try{let t=ne.get(tr);return typeof t=="string"?t:null}catch(t){return console.error(t),this.destroyLocalState(),null}}hasRefreshCredentials(){return typeof this.token=="string"&&typeof this.refreshToken=="string"}hasRecoveryCredentials(){return typeof this.forkedToken=="string"}hasActiveToken(){let t=dt.parse(this.token);return t!==null&&!t.isExpired(dd)}authenticate(t){return this.authenticateOnce.execute(t)}link(t){return this.linkOnce.execute(t)}refresh(){return this.refreshOnce.execute()}forkSession(){return this.forkSessionOnce.execute()}destroy(){return this.destroyOnce.execute()}async _authenticate(t){try{let{token:o,refresh_token:r,user:n,is_new_user:i}=await t.authenticate();this.storeToken(o),this.storeRefreshToken(r);let a=gs(t);return a&&this.client&&this.client.createAnalyticsEvent("sdk_authenticate",{method:a,isNewUser:i}),a==="siwe"&&this.client&&this.client.createAnalyticsEvent("sdk_authenticate_siwe",{connectorType:t.meta.connectorType,walletClientType:t.meta.walletClientType}),{user:Et(n),isNewUser:i}}catch(o){throw console.warn("Error authenticating session"),Ge(o)}}async _link(t){try{let o=await t.link();return Et(o)}catch(o){throw console.warn("Error linking account"),Ge(o)}}async _refresh(){if(!this.api)throw new A("Session has no API instance");if(!this.client)throw new A("Session has no PrivyClient instance");await this.client.getAccessToken({disableAutoRefresh:!0});let t=this.token,o=this.refreshToken,r=this.forkedToken;try{let n;if(t&&o)n=await this.api.post(Fr(),{refresh_token:o},{headers:{authorization:`Bearer ${t}`}}),r&&this.clearForkedToken();else if(r)n=await this.api.post(Gr(),{refresh_token:r}),this.clearForkedToken();else return null;return this.storeToken(n.token),this.storeRefreshToken(n.refresh_token),Et(n.user)}catch(n){if(n instanceof bo&&n.status===400&&n.message==="Invalid auth token")return this.destroyLocalState(),null;throw Ge(n)}}async _destroy(){var t;try{await((t=this.api)==null?void 0:t.post(la(),{refresh_token:this.refreshToken}))}catch{console.warn("Error destroying session")}this.destroyLocalState()}async _forkSession(){if(!this.api)throw new A("Session has no API instance");let t=this.refreshToken;try{let o=await this.api.post(ca(),{refresh_token:t});return this.storeToken(o.token),this.storeRefreshToken(o.refresh_token),o.new_session_refresh_token}catch(o){throw Ge(o)}}destroyLocalState(){this.storeToken(null),this.storeRefreshToken(null),this.clearForkedToken()}storeToken(t){var o;if(typeof t=="string"){ne.put(Eo,t);let r=(o=dt.parse(t))==null?void 0:o.expiration;sr.default.set(oi,t,{sameSite:"Strict",secure:!0,expires:r?new Date(r*1e3):void 0})}else ne.del(Eo),sr.default.remove(oi)}storeRefreshToken(t){typeof t=="string"?(ne.put(Vr,t),sr.default.set(ri,t,{sameSite:"Strict",secure:!0,expires:30})):(ne.del(Vr),sr.default.remove(ri))}clearForkedToken(){ne.del(tr)}};var gi,Io=class{constructor(t){this.apiUrl=t.apiUrl||Hr,this.fallbackApiUrl=this.apiUrl,this.timeout=t.timeout||ka,this.appId=t.appId,this.clientAnalyticsId=typeof window>"u"?null:crypto.randomUUID(),gi||(gi=new an),this.session=gi,this.api=this.generateApi(),this.session.client=this}initializeConnectorManager(t){this.connectors||(this.connectors=new Ro(t))}generateApi(){let t=new nn(this.appId,this,{baseURL:this.apiUrl,timeout:this.timeout});return this.session.api=t,t}updateApiUrl(t){this.apiUrl=t||this.fallbackApiUrl,this.api=this.generateApi()}authenticate(){if(!this.authFlow)throw new A("No auth flow in progress.");return this.session.authenticate(this.authFlow)}link(){if(!this.authFlow)throw new A("No auth flow in progress.");return this.session.link(this.authFlow)}async logout(){await this.session.destroy(),this.authFlow=void 0}startAuthFlow(t){t.api=this.api,this.authFlow=t}async unlinkEmail(t){try{let o=await this.api.post(xa(),{address:t});return Et(o)}catch(o){throw Ge(o)}}async unlinkPhone(t){try{let o=await this.api.post(Ta(),{phoneNumber:t});return Et(o)}catch(o){throw Ge(o)}}async unlinkWallet(t){try{let o=await this.api.post(Ea(),{address:t});return Et(o)}catch(o){throw Ge(o)}}async unlinkOAuth(t,o){try{let r=await this.api.post(Pa(),{provider:t,subject:o});return Et(r)}catch(r){throw Ge(r)}}async createAnalyticsEvent(t,o,r){if(!(typeof window>"u"))try{this.clientAnalyticsId||console.error("No client analytics id set, refusing to send analytics event"),await this.api.post(_a(),{event_name:t,client_id:this.clientAnalyticsId,payload:{...o||{},clientTimestamp:r?r.toISOString():new Date().toISOString()}})}catch(n){console.error("Failed to create analytics event",n)}}async getAuthenticatedUser(){return this.session.hasRefreshCredentials()||this.session.hasRecoveryCredentials()?this.session.refresh():null}async getAccessToken(t){var o;return this.session.hasActiveToken()?((o=dt.parse(this.session.token))==null?void 0:o.audience)!==this.appId?(await this.logout(),null):this.session.token:!(t!=null&&t.disableAutoRefresh)&&this.session.hasRefreshCredentials()?(await this.session.refresh(),this.session.token):null}async getServerConfig(){var t,o;try{let r=await this.api.get(`/api/v1/apps/${this.appId}`,{baseURL:this.fallbackApiUrl});return{id:r.id,name:r.name,verificationKey:r.verification_key,logoUrl:r.logo_url||void 0,accentColor:r.accent_color||void 0,showWalletLoginFirst:r.show_wallet_login_first,allowlistConfig:{errorTitle:r.allowlist_config.error_title,errorDetail:r.allowlist_config.error_detail,errorCtaText:r.allowlist_config.cta_text,errorCtaLink:r.allowlist_config.cta_link},walletAuth:r.wallet_auth,emailAuth:r.email_auth,smsAuth:r.sms_auth,googleOAuth:r.google_oauth,twitterOAuth:r.twitter_oauth,discordOAuth:r.discord_oauth,githubOAuth:r.github_oauth,appleOAuth:r.apple_oauth,termsAndConditionsUrl:r.terms_and_conditions_url,embeddedWalletConfig:{createOnLogin:(t=r.embedded_wallet_config)==null?void 0:t.create_on_login,requireUserPasswordOnCreate:(o=r.embedded_wallet_config)==null?void 0:o.require_user_password_on_create},privacyPolicyUrl:r.privacy_policy_url,customApiUrl:r.custom_api_url,walletConnectCloudProjectId:r.wallet_connect_cloud_project_id,createdAt:new Date(r.created_at*1e3),updatedAt:new Date(r.updated_at*1e3)}}catch(r){throw Ge(r)}}async getUsdTokenPrice(t){try{return(await this.api.get(`/api/v1/token_price?chainId=${t}`)).usd}catch{console.error(`Unable to fetch token price for chain with id ${t}`);return}}async forkSession(){return await this.session.forkSession()}};var F4=require("wicg-inert"),qn=require("body-scroll-lock"),jn=require("react"),ra=require("react"),Sc=P(require("react-dom")),Kn=P(require("styled-components"));var sn=require("react");var vi=(0,sn.createContext)({isNewUserThisSession:!1,isLinking:!1,linkingHint:null,walletConnectionStatus:null,getAuthMeta:T,getAuthFlow:T,closePrivyModal:T,connectWallet:T,initLoginWithWallet:T,loginWithWallet:T,loginWithCode:T,initLoginWithEmail:T,initLoginWithSms:T,resendEmailCode:T,resendSmsCode:T,initLoginWithOAuth:T,loginWithOAuth:T,refreshUser:T,walletProxy:null,createAnalyticsEvent:T,getUsdTokenPrice:T,recoverEmbeddedWallet:T}),I=()=>(0,sn.useContext)(vi);var ln=require("react");var bi=(0,ln.createContext)({ready:!1,authenticated:!1,user:null,walletConnectors:null,connectWallet:T,login:T,linkEmail:T,linkPhone:T,linkWallet:T,linkGoogle:T,linkTwitter:T,linkDiscord:T,linkGithub:T,linkApple:T,logout:T,getAccessToken:T,getEthereumProvider:T,getEthersProvider:T,getWeb3jsProvider:T,unlinkEmail:T,unlinkPhone:T,unlinkWallet:T,unlinkGoogle:T,unlinkTwitter:T,unlinkDiscord:T,unlinkGithub:T,unlinkApple:T,setActiveWallet:T,forkSession:T,createWallet:T,signMessage:T,sendTransaction:T,exportWallet:T}),G=()=>(0,ln.useContext)(bi);var mn=P(require("styled-components"));var At=P(require("styled-components"));var cn=P(require("styled-components")),Ht=require("react/jsx-runtime"),dn=({success:e,fail:t})=>(0,Ht.jsxs)(Ht.Fragment,{children:[(0,Ht.jsx)(lr,{className:e?"success":t?"fail":""}),(0,Ht.jsx)(pd,{className:e?"success":t?"fail":""})]}),lr=cn.default.span`
12
+ - https://privy.io`;this.wallet=t}get meta(){return{connectorType:this.wallet.connectorType,walletClientType:this.wallet.walletClientType}}async authenticate(){if(!this.api)throw new A("Auth flow has no API instance");try{let{message:t,signature:o}=await this.sign(),r=await this.api.post(pa(),{message:t,signature:o,chainId:this.wallet.chainId,walletClientType:this.wallet.walletClientType,connectorType:this.wallet.connectorType});return{user:r.user,token:r.token,refresh_token:r.refresh_token,is_new_user:r.is_new_user}}catch(t){throw ce(t)}}async link(){if(!this.api)throw new A("Auth flow has no API instance");try{let{message:t,signature:o}=await this.sign();return await this.api.post(ua(),{message:t,signature:o,chainId:this.wallet.chainId,walletClientType:this.wallet.walletClientType,connectorType:this.wallet.connectorType})}catch(t){throw ce(t)}}async sign(){if(!this.api)throw new A("Auth flow has no API instance");if(this.preparedMessage||await this.buildSiweMessage(),!this.preparedMessage)throw new A("Could not prepare SIWE message");let t=await this.wallet.sign(this.preparedMessage);return{message:this.preparedMessage,signature:t}}async buildSiweMessage(){if(!this.api)throw new A("Auth flow has no API instance");let t=this.wallet.address,o=this.wallet.chainId.replace("eip155:",""),r=await this.api.post(da(),{address:t});return this.preparedMessage=this.prepareMessage(o,t,r.nonce),this.preparedMessage}prepareMessage(t,o,r){let n=window.location.host,i=window.location.origin,a="By signing, you are proving you own this wallet and logging in. This does not initiate a transaction or cost any fees.",l=new Date().toISOString();return this.createSiweMessage(t,o,n,i,l,r,a)}};var to=class{constructor(t){this.meta={phoneNumber:t}}async authenticate(){if(!this.api)throw new A("Auth flow has no API instance");if(!this.meta.phoneNumber||!this.meta.smsCode)throw new A("phone number and sms code must be set prior to calling authenticate.");try{let t=ga(),o=await this.api.post(t,{phoneNumber:this.meta.phoneNumber,code:this.meta.smsCode});return{user:o.user,token:o.token,refresh_token:o.refresh_token,is_new_user:o.is_new_user}}catch(t){throw ce(t)}}async link(){if(!this.api)throw new A("Auth flow has no API instance");if(!this.meta.phoneNumber||!this.meta.smsCode)throw new A("phone number and sms code must be set prior to calling authenticate.");try{let t=va();return await this.api.post(t,{phoneNumber:this.meta.phoneNumber,code:this.meta.smsCode})}catch(t){throw ce(t)}}async sendSmsCode(t){if(!this.api)throw new A("Auth flow has no API instance");if(t&&(this.meta.phoneNumber=t),!this.meta.phoneNumber)throw new A("phone nNumber must be set when initialzing authentication.");try{let o=ya();return await this.api.post(o,{phoneNumber:this.meta.phoneNumber})}catch(o){throw ce(o)}}};function Ct(e){return new Date(e*1e3)}function jc(e){let t=[];for(let o of e){let r=o.type;switch(o.type){case"wallet":let n={address:o.address,type:o.type,verifiedAt:Ct(o.verified_at),chainType:"ethereum",chainId:o.chain_id,walletClient:o.wallet_client_type==="privy"?"privy":"unknown",walletClientType:o.wallet_client_type,connectorType:o.connector_type,recoveryMethod:o.recovery_method};t.push(n);break;case"email":let i={address:o.address,type:o.type,verifiedAt:Ct(o.verified_at)};t.push(i);break;case"phone":let a={number:o.phoneNumber,type:o.type,verifiedAt:Ct(o.verified_at)};t.push(a);break;case"google_oauth":let l={subject:o.subject,email:o.email,name:o.name,type:o.type,verifiedAt:Ct(o.verified_at)};t.push(l);break;case"twitter_oauth":let s={subject:o.subject,username:o.username,name:o.name,type:o.type,verifiedAt:Ct(o.verified_at)};t.push(s);break;case"discord_oauth":let u={subject:o.subject,username:o.username,email:o.email,type:o.type,verifiedAt:Ct(o.verified_at)};t.push(u);break;case"github_oauth":let h={subject:o.subject,username:o.username,name:o.name,email:o.email,type:o.type,verifiedAt:Ct(o.verified_at)};t.push(h);break;case"apple_oauth":let E={subject:o.subject,email:o.email,type:o.type,verifiedAt:Ct(o.verified_at)};t.push(E);break;default:console.warn(`Unrecognized account type: ${r}. Please consider upgrading the Privy SDK.`)}}return t}function Dt(e,t){return e.sort((o,r)=>r.verifiedAt.getTime()-o.verifiedAt.getTime()),e.find(o=>o.type===t)}var te=e=>e==null?void 0:e.linkedAccounts.find(t=>t.type==="wallet"&&t.walletClient==="privy"),Kc=e=>e.linkedAccounts.filter(t=>t.type==="wallet"),wo=(e,t)=>{var o;return t==="all-users"&&!te(e)||t==="users-without-wallets"&&!((o=Kc(e))!=null&&o.length)};function Et(e){if(!e)return null;let t=jc(e.linked_accounts),o=Dt(t,"wallet"),r=Dt(t,"email"),n=Dt(t,"phone"),i=Dt(t,"google_oauth"),a=Dt(t,"twitter_oauth"),l=Dt(t,"discord_oauth"),s=Dt(t,"github_oauth"),u=Dt(t,"apple_oauth");return{id:e.id,createdAt:Ct(e.created_at),linkedAccounts:t,email:r&&{address:r==null?void 0:r.address},phone:n&&{number:n==null?void 0:n.number},wallet:o&&{address:o.address,chainType:o.chainType,chainId:o.chainId,walletClient:o.walletClient,walletClientType:o.walletClientType,connectorType:o.connectorType,recoveryMethod:o.recoveryMethod},google:i&&{subject:i.subject,email:i.email,name:i.name},twitter:a&&{subject:a.subject,username:a.username,name:a.name},discord:l&&{subject:l.subject,username:l.username,email:l.email},github:s&&{subject:s.subject,username:s.username,name:s.name,email:s.email},apple:u&&{subject:u.subject,email:u.email}}}var fi=require("@ethersproject/address"),fs=P(require("eventemitter3"));var Aa="1.28.0-beta.7";var Co="4df5e2316331463a9130964bd6078dfa",Sa="34357d3c125c2bcf2ce2bc3309d98715",Hr="https://auth.privy.io",ka=1e4,Je=1400,Ra=4500,zr=Aa;var Eo="privy:token",oi="privy-token",Vr="privy:refresh_token",ri="privy-refresh-token",tr="privy:session_transfer_token",ni="privy:connectors",ii="privy:connections";var He=1;var ai=class{constructor(){this._cache={}}get(t){return this._cache[t]}put(t,o){o!==void 0?this._cache[t]=o:this.del(t)}del(t){delete this._cache[t]}getKeys(){return Object.keys(this._cache)}},si=class{get(t){let o=localStorage.getItem(t);return o===null?void 0:JSON.parse(o)}put(t,o){o!==void 0?localStorage.setItem(t,JSON.stringify(o)):this.del(t)}del(t){localStorage.removeItem(t)}getKeys(){return Object.entries(localStorage).map(([t])=>t)}};function Qc(){return typeof window<"u"&&window.localStorage?new si:new ai}var ne=Qc();var Va=require("libphonenumber-js/min");var Ia={id:42161,name:"Arbitrum One",network:"arbitrum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://arb-mainnet.g.alchemy.com/v2"],webSocket:["wss://arb-mainnet.g.alchemy.com/v2"]},infura:{http:["https://arbitrum-mainnet.infura.io/v3"],webSocket:["wss://arbitrum-mainnet.infura.io/ws/v3"]},default:{http:["https://arb1.arbitrum.io/rpc"]},public:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{etherscan:{name:"Arbiscan",url:"https://arbiscan.io"},default:{name:"Arbiscan",url:"https://arbiscan.io"}}};var Wa={id:421613,name:"Arbitrum Goerli",network:"arbitrum-goerli",nativeCurrency:{name:"Arbitrum Goerli Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://arb-goerli.g.alchemy.com/v2"],webSocket:["wss://arb-goerli.g.alchemy.com/v2"]},infura:{http:["https://arbitrum-goerli.infura.io/v3"],webSocket:["wss://arbitrum-goerli.infura.io/ws/v3"]},default:{http:["https://goerli-rollup.arbitrum.io/rpc"]},public:{http:["https://goerli-rollup.arbitrum.io/rpc"]}},blockExplorers:{etherscan:{name:"Arbiscan",url:"https://goerli.arbiscan.io/"},default:{name:"Arbiscan",url:"https://goerli.arbiscan.io/"}},testnet:!0};var Na={id:84531,network:"base-goerli",name:"Base Goerli",nativeCurrency:{name:"Base Goerli",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://goerli.base.org"]},public:{http:["https://goerli.base.org"]}},blockExplorers:{etherscan:{name:"Basescan",url:"https://goerli.basescan.org"},default:{name:"Basescan",url:"https://goerli.basescan.org"}},testnet:!0};var La={id:42220,name:"Celo",network:"celo",nativeCurrency:{decimals:18,name:"CELO",symbol:"CELO"},rpcUrls:{default:{http:["https://forno.celo.org"]},infura:{http:["https://celo-mainnet.infura.io/v3"]},public:{http:["https://forno.celo.org"]}},blockExplorers:{default:{name:"Celo Explorer",url:"https://explorer.celo.org/mainnet"},etherscan:{name:"CeloScan",url:"https://celoscan.io"}},testnet:!1};var Ma={id:44787,name:"Alfajores",network:"celo-alfajores",nativeCurrency:{decimals:18,name:"CELO",symbol:"A-CELO"},rpcUrls:{default:{http:["https://alfajores-forno.celo-testnet.org"]},infura:{http:["https://celo-alfajores.infura.io/v3"]},public:{http:["https://alfajores-forno.celo-testnet.org"]}},blockExplorers:{default:{name:"Celo Explorer",url:"https://explorer.celo.org/alfajores"},etherscan:{name:"CeloScan",url:"https://alfajores.celoscan.io/"}},testnet:!0};var Oa={id:314,name:"Filecoin Mainnet",network:"filecoin-mainnet",nativeCurrency:{decimals:18,name:"filecoin",symbol:"FIL"},rpcUrls:{default:{http:["https://api.node.glif.io/rpc/v1"]},public:{http:["https://api.node.glif.io/rpc/v1"]}},blockExplorers:{default:{name:"Filfox",url:"https://filfox.info/en"},filscan:{name:"Filscan",url:"https://filscan.io"},filscout:{name:"Filscout",url:"https://filscout.io/en"},glif:{name:"Glif",url:"https://explorer.glif.io"}}};var Da={id:314159,name:"Filecoin Calibration",network:"filecoin-calibration",nativeCurrency:{decimals:18,name:"testnet filecoin",symbol:"tFIL"},rpcUrls:{default:{http:["https://api.calibration.node.glif.io/rpc/v1"]},public:{http:["https://api.calibration.node.glif.io/rpc/v1"]}},blockExplorers:{default:{name:"Filscan",url:"https://calibration.filscan.io"}}};var Ua={id:5,network:"goerli",name:"Goerli",nativeCurrency:{name:"Goerli Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://eth-goerli.g.alchemy.com/v2"],webSocket:["wss://eth-goerli.g.alchemy.com/v2"]},infura:{http:["https://goerli.infura.io/v3"],webSocket:["wss://goerli.infura.io/ws/v3"]},default:{http:["https://rpc.ankr.com/eth_goerli"]},public:{http:["https://rpc.ankr.com/eth_goerli"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://goerli.etherscan.io"},default:{name:"Etherscan",url:"https://goerli.etherscan.io"}},testnet:!0};var Ba={id:1,network:"homestead",name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://eth-mainnet.g.alchemy.com/v2"],webSocket:["wss://eth-mainnet.g.alchemy.com/v2"]},infura:{http:["https://mainnet.infura.io/v3"],webSocket:["wss://mainnet.infura.io/ws/v3"]},default:{http:["https://cloudflare-eth.com"]},public:{http:["https://cloudflare-eth.com"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://etherscan.io"},default:{name:"Etherscan",url:"https://etherscan.io"}}};var Fa={id:10,name:"Optimism",network:"optimism",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://opt-mainnet.g.alchemy.com/v2"],webSocket:["wss://opt-mainnet.g.alchemy.com/v2"]},infura:{http:["https://optimism-mainnet.infura.io/v3"],webSocket:["wss://optimism-mainnet.infura.io/ws/v3"]},default:{http:["https://mainnet.optimism.io"]},public:{http:["https://mainnet.optimism.io"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://optimistic.etherscan.io"},default:{name:"Optimism Explorer",url:"https://explorer.optimism.io"}}};var Ga={id:420,name:"Optimism Goerli",network:"optimism-goerli",nativeCurrency:{name:"Goerli Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://opt-goerli.g.alchemy.com/v2"],webSocket:["wss://opt-goerli.g.alchemy.com/v2"]},infura:{http:["https://optimism-goerli.infura.io/v3"],webSocket:["wss://optimism-goerli.infura.io/ws/v3"]},default:{http:["https://goerli.optimism.io"]},public:{http:["https://goerli.optimism.io"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://goerli-optimism.etherscan.io"},default:{name:"Etherscan",url:"https://goerli-optimism.etherscan.io"}},testnet:!0};var Ha={id:137,name:"Polygon",network:"matic",nativeCurrency:{name:"MATIC",symbol:"MATIC",decimals:18},rpcUrls:{alchemy:{http:["https://polygon-mainnet.g.alchemy.com/v2"],webSocket:["wss://polygon-mainnet.g.alchemy.com/v2"]},infura:{http:["https://polygon-mainnet.infura.io/v3"],webSocket:["wss://polygon-mainnet.infura.io/ws/v3"]},default:{http:["https://polygon-rpc.com"]},public:{http:["https://polygon-rpc.com"]}},blockExplorers:{etherscan:{name:"PolygonScan",url:"https://polygonscan.com"},default:{name:"PolygonScan",url:"https://polygonscan.com"}}};var za={id:80001,name:"Polygon Mumbai",network:"maticmum",nativeCurrency:{name:"MATIC",symbol:"MATIC",decimals:18},rpcUrls:{alchemy:{http:["https://polygon-mumbai.g.alchemy.com/v2"],webSocket:["wss://polygon-mumbai.g.alchemy.com/v2"]},infura:{http:["https://polygon-mumbai.infura.io/v3"],webSocket:["wss://polygon-mumbai.infura.io/ws/v3"]},default:{http:["https://matic-mumbai.chainstacklabs.com"]},public:{http:["https://matic-mumbai.chainstacklabs.com"]}},blockExplorers:{etherscan:{name:"PolygonScan",url:"https://mumbai.polygonscan.com"},default:{name:"PolygonScan",url:"https://mumbai.polygonscan.com"}},testnet:!0};var $r=[Ia,Wa,Ua,Ba,Fa,Ga,Ha,za,La,Ma,Oa,Da,Na];var jr=()=>{let e=window;if(!e.ethereum)return!1;if(qr(window.ethereum,!0))return!0;if(e.ethereum.providers){for(let t of e.ethereum.providers)if(qr(t,!0))return!0}return!1},or=()=>{let e=window;if(!e.ethereum)return!1;if(qr(window.ethereum,!1))return!0;if(e.ethereum.providers){for(let t of e.ethereum.providers)if(qr(t,!1))return!0}return!1},qr=(e,t)=>e.isMetaMask?e.isMetaMask&&!t?!0:!(e.isBraveWallet&&!e._events&&!e._state||e.isApexWallet||e.isAvalanche||e.isBitKeep||e.isBlockWallet||e.isKuCoinWallet||e.isMathWallet||e.isOkxWallet||e.isOKExWallet||e.isOneInchIOSWallet||e.isOneInchAndroidWallet||e.isOpera||e.isPhantom||e.isPortal||e.isRabby||e.isTokenPocket||e.isTokenary||e.isZerion):!1,ze=()=>{var e,t;if("phantom"in window){let o=window;if((t=(e=o==null?void 0:o.phantom)==null?void 0:e.ethereum)!=null&&t.isPhantom)return!0}return!1},Ut=()=>{let e=window;if(!e.ethereum)return!1;if(e.ethereum.isCoinbaseWallet)return!0;if(e.ethereum.providers){for(let t of e.ethereum.providers)if(t.isCoinbaseWallet)return!0}return!1};var $a=e=>!!String(e).toLowerCase().match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/),qa=e=>(0,Va.isPossiblePhoneNumber)(String(e),"US"),ja=(e,t)=>{let o=e.slice(0),r=[];for(;o.length;)r.push(o.splice(0,t));return r},xo=(e,t=3,o=4)=>{if(!e)return"";let r=2,n=3;if(t+o+r+n>=e.length)return e;let i=e.slice(0,r+t),a=e.slice(e.length-o,e.length);return`${i}...${a}`},Zc=e=>new Promise(t=>setTimeout(t,e)),Ka=(e,t={})=>{let o=t.delayMs||40,r=t.maxAttempts||1e3;return new Promise(async(n,i)=>{let a=!1,l=0;for(;!a&&l<r;)e().then(()=>{a=!0,n()},(...s)=>{a=!0,i(...s)}),l+=1,await Zc(o);a||i(new Error("Exceeded max attempts before resolving function"))})},Kr=(e,t,o={})=>{let r=new URL(t,e);for(let[n,i]of Object.entries(o))r.searchParams.set(n,i);return r.href};var li=e=>e.replace(/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g,""),rr=e=>typeof e=="string"?e:"0x"+e.toString(16);async function Ya(e=3e3){let t=!1,o=window;return new Promise(r=>{o.ethereum?n():(window.addEventListener("ethereum#initialized",n,{once:!0}),setTimeout(()=>{n()},e));function n(){if(t)return;t=!0,window.removeEventListener("ethereum#initialized",n);let i=[];jr()&&i.push("metamask"),ze()&&i.push("phantom"),o.ethereum&&o.ethereum.isBraveWallet&&i.push("brave"),r(i)}})}function ci(e){return`eip155:${String(Number(e))}`}var oo=e=>{var o;let t=$r.find(r=>r.id===e);if(!t)throw new Q(`Unsupported chainId ${e}`,4901);return((o=t.rpcUrls.infura)==null?void 0:o.http[0])+`/${Co}`};var ns=P(require("@coinbase/wallet-sdk"));var nr=require("react/jsx-runtime"),Ve=({style:e,...t})=>(0,nr.jsxs)("svg",{width:"1024",height:"1024",viewBox:"0 0 1024 1024",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"28px",width:"28px",...e},...t,children:[(0,nr.jsx)("rect",{width:"1024",height:"1024",fill:"#0052FF",rx:100,ry:100}),(0,nr.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z",fill:"white"})]});var Tt=require("@ethersproject/address"),mi=require("@ethersproject/providers"),rs=P(require("eventemitter3"));var Ja=require("@ethersproject/bytes"),pi=require("@ethersproject/providers"),Xa=require("@ethersproject/strings"),es=P(require("eventemitter3"));var Jc=["eth_sign","eth_populateTransactionRequest","eth_signTransaction","personal_sign"],Qa=e=>Jc.includes(e);var Za=require("@ethersproject/logger");var To=class extends Q{constructor(){super("Wallet timeout");this.type="wallet_error"}},Po=class extends Q{constructor(){super("User rejected connection");this.type="wallet_error"}},lt=e=>{if(e instanceof Q)return e;if((e==null?void 0:e.code)&&(e==null?void 0:e.reason)){let t=new _o(e);return e.code===Za.ErrorCode.ACTION_REJECTED&&(t.details=ro.E4001_USER_REJECTED_REQUEST),t}return e!=null&&e.code?new _o(e):new Q("Unknown connector error",e)},di=class extends Ze{constructor(o,r,n){super(o);this.type="provider_error";this.code=r,this.data=n}},_o=class extends di{constructor(o){var i,a,l;let r=o;super(r.message,r.code,r.data);let n=Object.values(ro).find(s=>s.eipCode===r.code);this.details=n||ro.UNKNOWN_ERROR,r.code===-32002&&((i=r.message)!=null&&i.includes("already pending for origin")?(a=r.message)!=null&&a.includes("wallet_requestPermissions")?this.details=ro.E32002_CONNECTION_ALREADY_PENDING:this.details=ro.E32002_REQUEST_ALREADY_PENDING:(l=r.message)!=null&&l.includes("Already processing")&&r.message.includes("eth_requestAccounts")&&(this.details=ro.E32002_WALLET_LOCKED))}},Xc={ERROR_USER_EXISTS:{message:"User already exists for this address",detail:"Try another address!",retryable:!1},ERROR_TIMED_OUT:{message:"Wallet request timed out",detail:"Please try connecting again.",retryable:!0},ERROR_WALLET_CONNECTION:{message:"Could not log in with wallet",detail:"Please try connecting again.",retryable:!0},ERROR_USER_REJECTED_CONNECTION:{message:"You rejected the request",detail:"Please try connecting again.",retryable:!0}},ed={E32002_CONNECTION_ALREADY_PENDING:{eipCode:-32002,message:"Connection request already pending",detail:"Don\u2019t see your wallet modal? Check your other browser windows.",retryable:!1},E32002_REQUEST_ALREADY_PENDING:{eipCode:-32002,message:"Resource request already pending",detail:"Don\u2019t see your wallet modal? Check your other browser windows.",retryable:!1},E32002_WALLET_LOCKED:{eipCode:-32002,message:"Wallet might be locked",detail:"Don\u2019t see your wallet modal? Check your other browser windows.",retryable:!1},E4001_USER_REJECTED_REQUEST:{eipCode:4001,message:"Signature rejected",detail:"Please try signing again.",retryable:!0}},td={E4001_DEFAULT_USER_REJECTED_REQUEST:{eipCode:4001,message:"User Rejected Request",detail:"The user rejected the request.",default:!0,retryable:!0},E4100_DEFAULT_UNAUTHORIZED:{eipCode:4100,message:"Unauthorized",detail:"The requested method and/or account has not been authorized by the user.",default:!0,retryable:!1},E4200_DEFAULT_UNSUPPORTED_METHOD:{eipCode:4200,message:"Unsupported Method",detail:"The Provider does not support the requested method.",default:!0,retryable:!1},E4900_DEFAULT_DISCONNECTED:{eipCode:4900,message:"Disconnected",detail:"The Provider is disconnected from all chains.",default:!0,retryable:!0},E4901_DEFAULT_CHAIN_DISCONNECTED:{eipCode:4901,message:"Chain Disconnected",detail:"The Provider is not connected to the requested chain.",default:!0,retryable:!0},E32700_DEFAULT_PARSE_ERROR:{eipCode:-32700,message:"Parse error",detail:"Invalid JSON",default:!0,retryable:!1},E32600_DEFAULT_INVALID_REQUEST:{eipCode:-32600,message:"Invalid request",detail:"JSON is not a valid request object",default:!0,retryable:!1},E32601_DEFAULT_METHOD_NOT_FOUND:{eipCode:-32601,message:"Method not found",detail:"Method does not exist",default:!0,retryable:!1},E32602_DEFAULT_INVALID_PARAMS:{eipCode:-32602,message:"Invalid params",detail:"Invalid method parameters",default:!0,retryable:!1},E32603_DEFAULT_INTERNAL_ERROR:{eipCode:-32603,message:"Internal error",detail:"Internal JSON-RPC error",default:!0,retryable:!0},E32000_DEFAULT_INVALID_INPUT:{eipCode:-32e3,message:"Invalid input",detail:"Missing or invalid parameters",default:!0,retryable:!1},E32001_DEFAULT_RESOURCE_NOT_FOUND:{eipCode:-32001,message:"Resource not found",detail:"Requested resource not found",default:!0,retryable:!1},E32002_DEFAULT_RESOURCE_UNAVAILABLE:{eipCode:-32002,message:"Resource unavailable",detail:"Requested resource not available",default:!0,retryable:!0},E32003_DEFAULT_TRANSACTION_REJECTED:{eipCode:-32003,message:"Transaction rejected",detail:"Transaction creation failed",default:!0,retryable:!0},E32004_DEFAULT_METHOD_NOT_SUPPORTED:{eipCode:-32004,message:"Method not supported",detail:"Method is not implemented",default:!0,retryable:!1},E32005_DEFAULT_LIMIT_EXCEEDED:{eipCode:-32005,message:"Limit exceeded",detail:"Request exceeds defined limit",default:!0,retryable:!1},E32006_DEFAULT_JSON_RPC_VERSION_NOT_SUPPORTED:{eipCode:-32006,message:"JSON-RPC version not supported",detail:"Version of JSON-RPC protocol is not supported",default:!0,retryable:!1}},ro={UNKNOWN_ERROR:{eipCode:0,message:"Unknown error",detail:"Unknown error",retryable:!0},...td,...ed},xt={...Xc,...ro};var od=12e4,ui=(e=new To,t=od)=>new Promise((o,r)=>setTimeout(()=>{r(e)},t)),J=class{constructor(t){this.removeListener=(t,o)=>{if(this.walletProvider)try{return this.walletProvider.removeListener(t,o)}catch{console.warn("Unable to remove wallet provider listener")}};this.setWalletProvider=t=>{this.walletProvider&&this._subscriptions.forEach(o=>{this.removeListener(o.eventName,o.listener)}),this.walletProvider=t,this._subscriptions.forEach(o=>{var r;(r=this.walletProvider)==null||r.on(o.eventName,o.listener)})};this.walletProvider=t,this._subscriptions=[]}on(t,o){if(this.walletProvider)return this.walletProvider.on(t,o);this._subscriptions.push({eventName:t,listener:o})}async request(t){if(!this.walletProvider)throw new Q(`A wallet request of type ${t.method} was made before setting a wallet provider.`);return Promise.race([this.walletProvider.request(t),ui()]).catch(o=>{throw lt(o)})}},Bt=class extends Error{constructor(o,r,n){super(o);this.code=r,this.data=n}},Yr=class extends es.default{constructor(o,r,n=1){super();this.walletProxy=o,this.address=r,this.chainId=n,this.provider=new pi.JsonRpcProvider(oo(n))}async handleSendTransaction(o){if(!o.params||!Array.isArray(o.params))throw new Bt(`Invalid params for ${o.method}`,4200);let r=o.params[0];if(!await Ao()||!this.address)throw new Bt("Disconnected",4900);return(await os(r)).transactionHash}handleSwitchEthereumChain(o){if(!o.params||!Array.isArray(o.params))throw new Bt(`Invalid params for ${o.method}`,4200);let r;if(typeof o.params[0]=="string")r=o.params[0];else if("chainId"in o.params[0]&&typeof o.params[0].chainId=="string")r=o.params[0].chainId;else throw new Bt(`Invalid params for ${o.method}`,4200);this.chainId=Number(r),this.provider=new pi.JsonRpcProvider(oo(this.chainId)),this.emit("chainChanged",r)}async handlePersonalSign(o){if(!o.params||!Array.isArray(o.params))throw new Error("Invalid params for eth_estimateGas");let r=o.params[0],n=(0,Ja.isHexString)(r)?(0,Xa.toUtf8String)(r):r;return await ts(n)}async handleEstimateGas(o){if(!o.params||!Array.isArray(o.params))throw new Error("Invalid params for eth_estimateGas");let r={...o.params[0],chainId:rr(this.chainId)};return this.provider.send("eth_estimateGas",[r])}async request(o){switch(console.debug("Embedded1193Provider.request() called with args",o),o.method){case"eth_accounts":return this.address?[this.address]:[];case"eth_chainId":return rr(this.chainId);case"eth_estimateGas":return this.handleEstimateGas(o);case"eth_sendTransaction":return this.handleSendTransaction(o);case"wallet_switchEthereumChain":return this.handleSwitchEthereumChain(o);case"personal_sign":return this.handlePersonalSign(o);default:break}if(Qa(o.method)){let r=await Ao();if(!r||!this.address)throw new Bt("Disconnected",4900);try{return(await this.walletProxy.rpc({address:this.address,accessToken:r,request:{method:o.method,params:o.params}})).response.data}catch(n){throw console.error(n),new Bt("Disconnected",4900)}}else return this.provider.send(o.method,o.params)}async connect(){let o=await Ao();if(!o||!this.address)return null;try{return(await this.walletProxy.connect({address:this.address,accessToken:o})).address}catch(r){return console.error(r),null}}},Xe=class extends J{constructor(o){super(o)}},Ft=class extends J{constructor(t){super(t)}sendAsync(t,o){throw new Error("sendAsync is no longer supported by EIP-1193. Use the request method instead.")}};var Se=class extends rs.default{constructor(o){super();this.onAccountsChanged=o=>{this.syncAccounts(o)};this.onChainChanged=o=>{this.wallets.forEach(r=>{r.chainId=ci(o)}),this.emit("walletsUpdated")};this.onDisconnect=()=>{this.connected=!1,this.wallets=[],this.emit("walletsUpdated")};this.onConnect=()=>{this.connected=!0,this.syncAccounts()};this.wallets=[],this.walletClientType=o,this.connected=!1,this.initialized=!1}buildConnectedWallet(o,r){let n=async()=>!!this.wallets.find(i=>(0,Tt.getAddress)(i.address)===(0,Tt.getAddress)(o));return{address:(0,Tt.getAddress)(o),chainId:r,connectedAt:Date.now(),walletClientType:this.walletClientType,connectorType:this.connectorType,isConnected:n,getEthereumProvider:async()=>{if(!await n())throw new Q("Wallet is not currently connected.");return this.proxyProvider},getEthersProvider:async()=>{if(!await n())throw new Q("Wallet is not currently connected.");return new mi.Web3Provider(new Xe(this.proxyProvider))},getWeb3jsProvider:async()=>{if(!await n())throw new Q("Wallet is not currently connected.");return new Ft(this.proxyProvider)},sign:async i=>{if(!await n())throw new Q("Wallet is not currently connected.");return await this.sign(i)},disconnect:()=>{this.disconnect()}}}async syncAccounts(o){let r=o;if(r===void 0){let l=await this.proxyProvider.request({method:"eth_accounts"});Array.isArray(l)&&(r=l)}if(r===void 0||!Array.isArray(r)||r.length<=0)return;let n=[],i=await this.proxyProvider.request({method:"eth_chainId"}),a=ci(i);for(let l of r)n.find(s=>(0,Tt.getAddress)(s.address)===(0,Tt.getAddress)(l))||n.push(this.buildConnectedWallet((0,Tt.getAddress)(l),a));Qr(n,this.wallets)||(this.wallets=n,this.emit("walletsUpdated"))}async getConnectedWallet(){let o=await this.proxyProvider.request({method:"eth_accounts"});return this.wallets.sort((r,n)=>n.connectedAt-r.connectedAt).find(r=>o.find(n=>(0,Tt.getAddress)(n)===(0,Tt.getAddress)(r.address)))||null}async isConnected(){let o=await this.proxyProvider.request({method:"eth_accounts"});return Array.isArray(o)&&o.length>0}async sign(o){return await this.connect({showPrompt:!1}),new mi.Web3Provider(new Xe(this.proxyProvider)).getSigner().signMessage(o)}subscribeListeners(){this.proxyProvider.on("accountsChanged",this.onAccountsChanged),this.proxyProvider.on("chainChanged",this.onChainChanged),this.proxyProvider.on("disconnect",this.onDisconnect),this.proxyProvider.on("connect",this.onConnect)}unsubscribeListeners(){this.proxyProvider.removeListener("accountsChanged",this.onAccountsChanged),this.proxyProvider.removeListener("chainChanged",this.onChainChanged),this.proxyProvider.removeListener("disconnect",this.onDisconnect),this.proxyProvider.removeListener("connect",this.onConnect)}};var rd=e=>{let t=`https://mainnet.infura.io/v3/${Co}`,o=1;return e.makeWeb3Provider(t,o)},Zr,Jr=class extends Se{constructor(){super("coinbase_wallet");this.connectorType="coinbase_wallet";this.proxyProvider=new J,this.subscribeListeners(),Zr||(Zr=new ns.default({appName:"Privy",darkMode:!1,headlessMode:!1})),this.proxyProvider.setWalletProvider(rd(Zr)),this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}async connect(o){return o.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}disconnect(){Zr.disconnect()}get walletBranding(){return{name:"Coinbase Wallet",icon:Ve}}async promptConnection(){try{let o=await this.proxyProvider.request({method:"eth_requestAccounts"});if(o.length===0)throw new Q("Unable to retrieve accounts");this.connected=!0,await this.syncAccounts(o)}catch(o){throw lt(o)}}};var hi=require("react/jsx-runtime"),So=({style:e,...t})=>(0,hi.jsx)("svg",{width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"1.25rem",width:"1.25rem",...e},...t,children:(0,hi.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.99555 0.929932C-1.12055 1.31799 -0.499722 9.15734 2.17445 8.76915C0.0807959 10.5544 -0.960455 16.6416 6.01654 16.0265C10.6356 15.9489 15.5635 12.2232 15.5635 8.1095C15.5635 2.63748 10.7516 0.929932 7.99555 0.929932ZM9.47052 7.53055C9.47052 8.49933 8.81856 9.28468 8.01433 9.28468C7.2101 9.28468 6.55814 8.49933 6.55814 7.53055C6.55814 6.56176 7.2101 5.77641 8.01433 5.77641C8.81856 5.77641 9.47052 6.56176 9.47052 7.53055ZM12.3171 9.28468C13.1213 9.28468 13.7733 8.49933 13.7733 7.53055C13.7733 6.56176 13.1213 5.77641 12.3171 5.77641C11.5129 5.77641 10.8609 6.56176 10.8609 7.53055C10.8609 8.49933 11.5129 9.28468 12.3171 9.28468Z",fill:t.color||"var(--privy-color-foreground-3)"})});var Xr=class extends Se{constructor(o){super("privy");this.connectorType="embedded";this.proxyProvider=o,this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}async connect(o){return await this.isConnected()?(await this.proxyProvider.request({method:"wallet_switchEthereumChain",params:[rr((o==null?void 0:o.chainId)||"0x1")]}),this.getConnectedWallet()):null}get walletBranding(){return{name:"Privy Wallet",icon:So}}disconnect(){this.connected=!1}async promptConnection(){}};var nd=require("@ethersproject/address"),id=require("@ethersproject/providers"),is=require("react-device-detect");var ge=require("react/jsx-runtime"),ve=({style:e,...t})=>(0,ge.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",x:0,y:0,viewBox:"0 0 318.6 318.6",width:"28",height:"28",style:{height:"28px",width:"28px",...e},...t,children:[(0,ge.jsx)("style",{children:".s1{stroke-linecap:round;stroke-linejoin:round}.s2{fill:#e4761b;stroke:#e4761b}.s3{fill:#f6851b;stroke:#f6851b}"}),(0,ge.jsx)("path",{fill:"#e2761b",stroke:"#e2761b",className:"s1",d:"m274.1 35.5-99.5 73.9L193 65.8z"}),(0,ge.jsx)("path",{d:"m44.4 35.5 98.7 74.6-17.5-44.3zm193.9 171.3-26.5 40.6 56.7 15.6 16.3-55.3zm-204.4.9L50.1 263l56.7-15.6-26.5-40.6z",className:"s1 s2"}),(0,ge.jsx)("path",{d:"m103.6 138.2-15.8 23.9 56.3 2.5-2-60.5zm111.3 0-39-34.8-1.3 61.2 56.2-2.5zM106.8 247.4l33.8-16.5-29.2-22.8zm71.1-16.5 33.9 16.5-4.7-39.3z",className:"s1 s2"}),(0,ge.jsx)("path",{fill:"#d7c1b3",stroke:"#d7c1b3",className:"s1",d:"m211.8 247.4-33.9-16.5 2.7 22.1-.3 9.3zm-105 0 31.5 14.9-.2-9.3 2.5-22.1z"}),(0,ge.jsx)("path",{fill:"#233447",stroke:"#233447",className:"s1",d:"m138.8 193.5-28.2-8.3 19.9-9.1zm40.9 0 8.3-17.4 20 9.1z"}),(0,ge.jsx)("path",{fill:"#cd6116",stroke:"#cd6116",className:"s1",d:"m106.8 247.4 4.8-40.6-31.3.9zM207 206.8l4.8 40.6 26.5-39.7zm23.8-44.7-56.2 2.5 5.2 28.9 8.3-17.4 20 9.1zm-120.2 23.1 20-9.1 8.2 17.4 5.3-28.9-56.3-2.5z"}),(0,ge.jsx)("path",{fill:"#e4751f",stroke:"#e4751f",className:"s1",d:"m87.8 162.1 23.6 46-.8-22.9zm120.3 23.1-1 22.9 23.7-46zm-64-20.6-5.3 28.9 6.6 34.1 1.5-44.9zm30.5 0-2.7 18 1.2 45 6.7-34.1z"}),(0,ge.jsx)("path",{d:"m179.8 193.5-6.7 34.1 4.8 3.3 29.2-22.8 1-22.9zm-69.2-8.3.8 22.9 29.2 22.8 4.8-3.3-6.6-34.1z",className:"s3"}),(0,ge.jsx)("path",{fill:"#c0ad9e",stroke:"#c0ad9e",className:"s1",d:"m180.3 262.3.3-9.3-2.5-2.2h-37.7l-2.3 2.2.2 9.3-31.5-14.9 11 9 22.3 15.5h38.3l22.4-15.5 11-9z"}),(0,ge.jsx)("path",{fill:"#161616",stroke:"#161616",className:"s1",d:"m177.9 230.9-4.8-3.3h-27.7l-4.8 3.3-2.5 22.1 2.3-2.2h37.7l2.5 2.2z"}),(0,ge.jsx)("path",{fill:"#763d16",stroke:"#763d16",className:"s1",d:"m278.3 114.2 8.5-40.8-12.7-37.9-96.2 71.4 37 31.3 52.3 15.3 11.6-13.5-5-3.6 8-7.3-6.2-4.8 8-6.1zM31.8 73.4l8.5 40.8-5.4 4 8 6.1-6.1 4.8 8 7.3-5 3.6 11.5 13.5 52.3-15.3 37-31.3-96.2-71.4z"}),(0,ge.jsx)("path",{d:"m267.2 153.5-52.3-15.3 15.9 23.9-23.7 46 31.2-.4h46.5zm-163.6-15.3-52.3 15.3-17.4 54.2h46.4l31.1.4-23.6-46zm71 26.4 3.3-57.7 15.2-41.1h-67.5l15 41.1 3.5 57.7 1.2 18.2.1 44.8h27.7l.2-44.8z",className:"s3"})]});var en=class extends Se{constructor(){super("metamask");this.connectorType="injected";this.proxyProvider=new J,this.subscribeListeners();let o=window,r=o.ethereum,n=o.ethereum.providers||[];for(let i of n)if(i.isMetaMask){r=i;break}this.proxyProvider.setWalletProvider(r),this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}async connect(o){return o.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}get walletBranding(){return{name:"MetaMask",icon:ve}}disconnect(){console.warn("Metamask does not support programmatic disconnect.")}async promptConnection(){try{!is.isMobile&&jr()&&await this.proxyProvider.request({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]});let o=await this.proxyProvider.request({method:"eth_requestAccounts"});if(!o||o.length===0)throw new Q("Unable to retrieve accounts");await this.syncAccounts(o)}catch(o){throw lt(o)}}};var $e=require("react/jsx-runtime"),ct=({style:e,...t})=>(0,$e.jsxs)("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"28px",width:"28px",...e},...t,children:[(0,$e.jsx)("rect",{width:"28",height:"28",rx:"6",fill:"url(#paint0_linear_1765_9937)"}),(0,$e.jsx)("path",{d:"M24.0223 14.1704H21.5542C21.5542 9.14083 17.4627 5.06372 12.4151 5.06372C7.43008 5.06372 3.37717 9.04101 3.27798 13.9845C3.17536 19.0945 7.98653 23.5318 13.1154 23.5318H13.7605C18.2822 23.5318 24.3426 20.0047 25.2895 15.7072C25.4643 14.9151 24.8364 14.1704 24.0223 14.1704ZM8.74752 14.3945C8.74752 15.0671 8.19544 15.6172 7.52045 15.6172C6.84545 15.6172 6.29341 15.0669 6.29341 14.3945V12.4165C6.29341 11.7439 6.84545 11.1938 7.52045 11.1938C8.19544 11.1938 8.74752 11.7439 8.74752 12.4165V14.3945ZM13.0083 14.3945C13.0083 15.0671 12.4563 15.6172 11.7813 15.6172C11.1063 15.6172 10.5543 15.0669 10.5543 14.3945V12.4165C10.5543 11.7439 11.1065 11.1938 11.7813 11.1938C12.4563 11.1938 13.0083 11.7439 13.0083 12.4165V14.3945Z",fill:"url(#paint1_linear_1765_9937)"}),(0,$e.jsxs)("defs",{children:[(0,$e.jsxs)("linearGradient",{id:"paint0_linear_1765_9937",x1:"14",y1:"0",x2:"14",y2:"28",gradientUnits:"userSpaceOnUse",children:[(0,$e.jsx)("stop",{stopColor:"#534BB1"}),(0,$e.jsx)("stop",{offset:"1",stopColor:"#551BF9"})]}),(0,$e.jsxs)("linearGradient",{id:"paint1_linear_1765_9937",x1:"14.2976",y1:"5.06372",x2:"14.2976",y2:"23.5318",gradientUnits:"userSpaceOnUse",children:[(0,$e.jsx)("stop",{stopColor:"white"}),(0,$e.jsx)("stop",{offset:"1",stopColor:"white",stopOpacity:"0.82"})]})]})]});var tn=class extends Se{constructor(){super("phantom");this.connectorType="injected";this.proxyProvider=new J,this.subscribeListeners(),this.proxyProvider.setWalletProvider(window.phantom.ethereum),this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}async connect(o){return o.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}get walletBranding(){return{name:"Phantom",icon:ct}}disconnect(){console.warn("Phantom does not support programmatic disconnect.")}async promptConnection(){try{let o=await this.proxyProvider.request({method:"eth_requestAccounts"});await this.syncAccounts(o)}catch(o){throw lt(o)}}};var ms=require("@walletconnect/ethereum-provider"),hs=require("@walletconnect/modal"),ir=require("react-device-detect");var et=require("react");var ss=require("react/jsx-runtime");function as(e){return(0,ss.jsx)("link",{rel:"prefetch",href:e.src})}var on=require("react/jsx-runtime"),Pt="LANDING",ls=(0,et.createContext)({ready:!1,app:null,currentScreen:Pt,lastScreen:Pt,navigate:T,navigateBack:T,setModalData:T}),cs=e=>{var h,E,w;let t=e.appConfig,o=e.authenticated,r=e.visible,[n,i]=(0,et.useState)(e.initialScreen||Pt),[a,l]=(0,et.useState)(e.initialScreen||Pt);(0,et.useEffect)(()=>{o||i(Pt)},[o]),(0,et.useEffect)(()=>{r||(l(Pt),i(Pt))},[r]),(0,et.useEffect)(()=>{e.initialScreen&&n===Pt&&(i(e.initialScreen),l(e.initialScreen))},[e.initialScreen]);let s=e.initialScreen&&n===Pt?e.initialScreen:n,u={ready:!!(t!=null&&t.id),app:t,data:e.data,setModalData:e.setModalData,currentScreen:s,lastScreen:a,navigate:m=>{l(n),i(m)},navigateBack:()=>{i(a)}};return(0,on.jsxs)(ls.Provider,{value:u,children:[(typeof((h=t==null?void 0:t.appearance)==null?void 0:h.logo)=="string"||((w=(E=t==null?void 0:t.appearance)==null?void 0:E.logo)==null?void 0:w.type)==="img")&&(0,on.jsx)(as,{src:typeof t.appearance.logo=="string"?t.appearance.logo:t.appearance.logo.props.src}),e.children]})},b=()=>(0,et.useContext)(ls);var _t=require("react/jsx-runtime"),ko=({style:e,...t})=>{let{app:o}=b();return(0,_t.jsxs)("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{height:"28px",width:"28px",...e},...t,children:[(0,_t.jsx)("rect",{width:"28",height:"28",rx:"3",fill:(o==null?void 0:o.appearance.palette.colorScheme)==="dark"?"#3396ff":"#141414"}),(0,_t.jsx)("g",{clipPath:"url(#clip0_1765_9946)",children:(0,_t.jsx)("path",{d:"M8.09448 10.3941C11.3558 7.20196 16.6442 7.20196 19.9055 10.3941L20.2982 10.7782C20.3369 10.8157 20.3677 10.8606 20.3887 10.9102C20.4097 10.9599 20.4206 11.0132 20.4206 11.0671C20.4206 11.121 20.4097 11.1744 20.3887 11.224C20.3677 11.2737 20.3369 11.3186 20.2982 11.3561L18.9554 12.6702C18.9158 12.7086 18.8628 12.7301 18.8077 12.7301C18.7526 12.7301 18.6996 12.7086 18.66 12.6702L18.1198 12.1415C15.8448 9.91503 12.1557 9.91503 9.88015 12.1415L9.30167 12.7075C9.26207 12.7459 9.20909 12.7673 9.15395 12.7673C9.0988 12.7673 9.04582 12.7459 9.00622 12.7075L7.66346 11.3934C7.62475 11.3559 7.59397 11.3109 7.57295 11.2613C7.55193 11.2117 7.5411 11.1583 7.5411 11.1044C7.5411 11.0505 7.55193 10.9971 7.57295 10.9475C7.59397 10.8979 7.62475 10.8529 7.66346 10.8154L8.09448 10.3941ZM22.6829 13.1115L23.8776 14.2814C23.9163 14.319 23.9471 14.3639 23.9681 14.4135C23.9892 14.4632 24 14.5165 24 14.5704C24 14.6243 23.9892 14.6777 23.9681 14.7273C23.9471 14.777 23.9163 14.8219 23.8776 14.8594L18.4893 20.1332C18.4102 20.2101 18.3042 20.2531 18.1938 20.2531C18.0835 20.2531 17.9775 20.2101 17.8984 20.1332L14.0743 16.3901C14.0545 16.3708 14.0279 16.36 14.0003 16.36C13.9726 16.36 13.9461 16.3708 13.9263 16.3901L10.1021 20.1332C10.023 20.2101 9.91703 20.2531 9.8067 20.2531C9.69636 20.2531 9.59038 20.2101 9.51124 20.1332L4.12236 14.8594C4.08365 14.8219 4.05287 14.777 4.03185 14.7273C4.01083 14.6777 4 14.6243 4 14.5704C4 14.5165 4.01083 14.4632 4.03185 14.4135C4.05287 14.3639 4.08365 14.319 4.12236 14.2814L5.31767 13.1115C5.39678 13.0348 5.50265 12.9919 5.61285 12.9919C5.72305 12.9919 5.82892 13.0348 5.90803 13.1115L9.73216 16.8546C9.75194 16.874 9.7785 16.8848 9.80616 16.8848C9.83381 16.8848 9.86037 16.874 9.88015 16.8546L13.7043 13.1115C13.7834 13.0346 13.8894 12.9916 13.9997 12.9916C14.1101 12.9916 14.216 13.0346 14.2952 13.1115L18.1198 16.8546C18.1396 16.874 18.1662 16.8848 18.1938 16.8848C18.2215 16.8848 18.2481 16.874 18.2678 16.8546L22.092 13.1115C22.1711 13.0346 22.2771 12.9916 22.3874 12.9916C22.4977 12.9916 22.6037 13.0346 22.6829 13.1115Z",fill:"white"})}),(0,_t.jsx)("defs",{children:(0,_t.jsx)("clipPath",{id:"clip0_1765_9946",children:(0,_t.jsx)("rect",{width:"20",height:"12.2531",fill:"white",transform:"translate(4 8)"})})})]})};var ds=require("react-device-detect");var rn=e=>{let t;try{t=new URL(e).hostname}catch{return}for(let[o,r]of Object.entries(ad))if(r.hostname===t)return{walletClientType:o,entry:r}};var ad={metamask:{id:"c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96",displayName:"MetaMask",image_id:"5195e9db-94d8-4579-6f11-ef553be95100",hostname:"metamask.io",mobile:{native:"metamask:"}},trust:{id:"4622a2b2d6af1c9844944291e5e7351a6aa24cd7b23099efac1b2fd875da31a0",displayName:"Trust",image_id:"0528ee7e-16d1-4089-21e3-bbfb41933100",hostname:"trustwallet.com",mobile:{universal:"https://link.trustwallet.com"}},safe:{id:"225affb176778569276e484e1b92637ad061b01e13a048b35a9d280c3b58970f",displayName:"Safe",image_id:"a1cb2777-f8f9-49b0-53fd-443d20ee0b00",hostname:"safe.global",mobile:{universal:"https://app.safe.global/"}},rainbow:{id:"1ae92b26df02f0abca6304df07debccd18262fdf5fe82daa81593582dac9a369",displayName:"Rainbow",image_id:"7a33d7f1-3d12-4b5c-f3ee-5cd83cb1b500",hostname:"rainbow.me",mobile:{universal:"https://rnbwapp.com"}},uniswap:{id:"c03dfee351b6fcc421b4494ea33b9d4b92a984f87aa76d1663bb28705e95034a",displayName:"Uniswap",image_id:"bff9cf1f-df19-42ce-f62a-87f04df13c00",hostname:"uniswap.org",mobile:{universal:"https://uniswap.org/app"}},zerion:{id:"ecc4036f814562b41a5268adc86270fba1365471402006302e70169465b7ac18",displayName:"Zerion",image_id:"f216b371-96cf-409a-9d88-296392b85800",hostname:"zerion.io",mobile:{universal:"https://wallet.zerion.io"}},argent:{id:"bc949c5d968ae81310268bf9193f9c9fb7bb4e1283e1284af8f2bd4992535fd6",displayName:"Argent",image_id:"215158d2-614b-49c9-410f-77aa661c3900",hostname:"www.argent.xyz",mobile:{universal:"https://www.argent.xyz/app"}},spot:{id:"74f8092562bd79675e276d8b2062a83601a4106d30202f2d509195e30e19673d",displayName:"Spot",image_id:"1bf33a89-b049-4a1c-d1f6-4dd7419ee400",hostname:"www.spot-wallet.com",mobile:{universal:"https://spot.so"}},omni:{id:"afbd95522f4041c71dd4f1a065f971fd32372865b416f95a0b1db759ae33f2a7",displayName:"Omni",image_id:"2cd67b4c-282b-4809-e7c0-a88cd5116f00",hostname:"omni.app",mobile:{universal:"https://links.omni.app"}},cryptocom:{id:"f2436c67184f158d1beda5df53298ee84abfc367581e4505134b5bcf5f46697d",displayName:"Crypto.com",image_id:"7c5ff577-a68d-49c5-02cd-3d83637b0b00",hostname:"crypto.com",mobile:{universal:"https://wallet.crypto.com"}},blockchain:{id:"84b43e8ddfcd18e5fcb5d21e7277733f9cccef76f7d92c836d0e481db0c70c04",displayName:"Blockchain",image_id:"6f913b80-86c0-46f9-61ca-cc90a1805900",hostname:"www.blockchain.com",mobile:{universal:"https://www.blockchain.com"}},safepal:{id:"0b415a746fb9ee99cce155c2ceca0c6f6061b1dbca2d722b3ba16381d0562150",displayName:"SafePal",image_id:"252753e7-b783-4e03-7f77-d39864530900",hostname:"safepal.com",mobile:{universal:"https://link.safepal.io"}},bitkeep:{id:"38f5d18bd8522c244bdd70cb4a68e0e718865155811c043f052fb9f1c51de662",displayName:"BitKeep",image_id:"3f7075d0-4ab7-4db5-404d-3e4c05e6fe00",hostname:"bitkeep.com",mobile:{universal:"https://bkapp.vip"}},zengo:{id:"9414d5a85c8f4eabc1b5b15ebe0cd399e1a2a9d35643ab0ad22a6e4a32f596f0",displayName:"ZenGo",image_id:"cfc07342-23ea-4f3f-f071-ec9d2cd86b00",hostname:"zengo.com",mobile:{universal:"https://get.zengo.com/"}},"1inch":{id:"c286eebc742a537cd1d6818363e9dc53b21759a1e8e5d9b263d0c03ec7703576",displayName:"1inch",image_id:"52b1da3c-9e72-40ae-5dac-6142addd9c00",hostname:"wallet.1inch.io",mobile:{universal:"https://wallet.1inch.io/wc/"}},binance:{id:"8a0ee50d1f22f6651afcae7eb4253e52a3310b90af5daef78a8c4929a9bb99d4",displayName:"Binance",image_id:"ebac7b39-688c-41e3-7912-a4fefba74600",hostname:"www.binance.com",mobile:{universal:"https://app.binance.com/cedefi"}},exodus:{id:"e9ff15be73584489ca4a66f64d32c4537711797e30b6660dbcb71ea72a42b1f4",displayName:"Exodus",image_id:"4c16cad4-cac9-4643-6726-c696efaf5200",hostname:"exodus.com",mobile:{universal:"https://exodus.com/m"}},mew_wallet:{id:"f5b4eeb6015d66be3f5940a895cbaa49ef3439e518cd771270e6b553b48f31d2",displayName:"MEW wallet",image_id:"e2024511-2c9b-46d7-3111-52df3d241700",hostname:"mewwallet.com",mobile:{universal:"https://mewwallet.com"}},alphawallet:{id:"138f51c8d00ac7b9ac9d8dc75344d096a7dfe370a568aa167eabc0a21830ed98",displayName:"AlphaWallet",image_id:"5b1cddfb-056e-4e78-029a-54de5d70c500",hostname:"alphawallet.com",mobile:{universal:"https://aw.app"}},keyring_pro:{id:"47bb07617af518642f3413a201ec5859faa63acb1dd175ca95085d35d38afb83",displayName:"KEYRING PRO",image_id:"dda0f0fb-34e8-4a57-dcea-b008e7d1ff00",hostname:"keyring.app",mobile:{universal:"https://keyring.app/"}},mathwallet:{id:"7674bb4e353bf52886768a3ddc2a4562ce2f4191c80831291218ebd90f5f5e26",displayName:"MathWallet",image_id:"26a8f588-3231-4411-60ce-5bb6b805a700",hostname:"mathwallet.org",mobile:{universal:"https://www.mathwallet.org"}},unstoppable:{id:"8308656f4548bb81b3508afe355cfbb7f0cb6253d1cc7f998080601f838ecee3",displayName:"Unstoppable",image_id:"4725dda0-4471-4d0f-7adf-6bbe8b929c00",hostname:"unstoppabledomains.com",mobile:{universal:"https://unstoppabledomains.com/mobile"}},obvious:{id:"031f0187049b7f96c6f039d1c9c8138ff7a17fd75d38b34350c7182232cc29aa",displayName:"Obvious",image_id:"61abe2ca-b06d-4a8b-de3e-8326f523e900",hostname:"obvious.technology",mobile:{universal:"https://wallet.obvious.technology"}},ambire:{id:"2c81da3add65899baeac53758a07e652eea46dbb5195b8074772c62a77bbf568",displayName:"Ambire",image_id:"c39b3a16-1a38-4588-f089-cb7aeb584700",hostname:"www.ambire.com",mobile:{universal:"https://mobile.ambire.com"}},internet_money_wallet:{id:"dd43441a6368ec9046540c46c5fdc58f79926d17ce61a176444568ca7c970dcd",displayName:"Internet Money Wallet",image_id:"204b2240-5ce4-4996-6ec4-f06a22726900",hostname:"internetmoney.io",mobile:{universal:"https://internetmoney.io"}},coin98:{id:"2a3c89040ac3b723a1972a33a125b1db11e258a6975d3a61252cd64e6ea5ea01",displayName:"Coin98",image_id:"fc460647-ea95-447a-99f0-1bff8fa4be00",hostname:"coin98.com",mobile:{universal:"https://coin98.services"}},abc_wallet:{id:"b956da9052132e3dabdcd78feb596d5194c99b7345d8c4bd7a47cabdcb69a25f",displayName:"ABC Wallet",image_id:"f9854c79-14ba-4987-42e1-4a82abbf5700",hostname:"myabcwallet.io",mobile:{universal:"https://abcwalletconnect.page.link"}},arculus_wallet:{id:"0e4915107da5b3408b38e248f7a710f4529d54cd30e9d12ff0eb886d45c18e92",displayName:"Arculus Wallet",image_id:"f78dab27-7165-4a3d-fdb1-fcff06c0a700",hostname:"www.getarculus.com",mobile:{universal:"https://gw.arculus.co/app"}},haha:{id:"719bd888109f5e8dd23419b20e749900ce4d2fc6858cf588395f19c82fd036b3",displayName:"HaHa",image_id:"79285c9f-2630-451e-0680-c71b42fb7400",hostname:"www.haha.me",mobile:{universal:"https://haha.me"}},cling_wallet:{id:"942d0e22a7e6b520b0a03abcafc4dbe156a1fc151876e3c4a842f914277278ef",displayName:"Cling Wallet",image_id:"2d8006c3-852b-458a-d6b0-916c5ba76800",hostname:"clingon.io",mobile:{universal:"https://cling.carrieverse.com/apple-app-site-association"}},broearn:{id:"8ff6eccefefa7506339201bc33346f92a43118d6ff7d6e71d499d8187a1c56a2",displayName:"Broearn",image_id:"339b9e9d-e2a7-46eb-4ed3-272321257a00",hostname:"www.broearn.com",mobile:{universal:"https://www.broearn.com/link/wallet/"}},copiosa:{id:"07f99a5d9849bb049d74830012b286f8b238e72b0337933ef22b84947409db80",displayName:"Copiosa",image_id:"cae1be94-9f53-4eba-b915-f6e381d5a500",hostname:"copiosa.io",mobile:{universal:"https://copiosa.io/action/"}},burrito_wallet:{id:"8821748c25de9dbc4f72a691b25a6ddad9d7df12fa23333fd9c8b5fdc14cc819",displayName:"Burrito Wallet",image_id:"7eec7187-3f48-4fda-53bb-b0ad55749a00",hostname:"burritowallet.com",mobile:{universal:"https://burritowallet.com/wc?uri="}},enjin_wallet:{id:"bdc9433ffdaee55d31737d83b931caa1f17e30666f5b8e03eea794bac960eb4a",displayName:"Enjin Wallet",image_id:"add9626b-a5fa-4c12-178c-e5584e6dcd00",hostname:"enjin.io",mobile:{universal:"https://deeplink.wallet.enjin.io/"}},plasma_wallet:{id:"cbe13eb482c76f1fa401ff4c84d9acd0b8bc9af311ca0620a0b192fb28359b4e",displayName:"Plasma Wallet",image_id:"c268e78d-ffb0-4c8b-5cad-04c3add48500",hostname:"plasma-wallet.com",mobile:{universal:"https://plasma-wallet.com"}},avacus:{id:"94f785c0c8fb8c4f38cd9cd704416430bcaa2137f27e1468782d624bcd155a43",displayName:"Avacus",image_id:"a7106965-91cc-4a73-4688-c5c72ae0ed00",hostname:"avacus.cc",mobile:{universal:"https://avacus.app.link"}},bee:{id:"2cca8c1b0bea04ba37dee4017991d348cdb7b826804ab2bd31073254f345b715",displayName:"Bee",image_id:"f90bc33f-f085-40cf-7538-fae5ae84f900",hostname:"www.beewallet.app",mobile:{universal:"https://beewallet.app/wc"}},pitaka:{id:"14e5d957c6eb62d3ee8fc6239703ac2d537d7e3552154836ca0beef775f630bc",displayName:"Pitaka",image_id:"691c0716-5213-4b99-e837-079268313800",hostname:"pitaka.io",mobile:{universal:"https://app.pitaka.io"}},pltwallet:{id:"576c90ceaea34f29ff0104837cf2b2e23d201be43be1433feeb18d375430e1fd",displayName:"PLTwallet",image_id:"a5d9dd15-8cef-42de-8bed-09e01a8b0200",hostname:"pltwallet.io",mobile:{universal:"https://pltwallet.io/"}},minerva:{id:"49bb9d698dbdf2c3d4627d66f99dd9fe90bba1eec84b143f56c64a51473c60bd",displayName:"Minerva",image_id:"b57b2163-1bd8-4f6b-3311-470767e6d200",hostname:"minerva.digital",mobile:{universal:"https://minerva.digital"}},kryptogo:{id:"19418ecfd44963883e4d6abca1adeb2036f3b5ffb9bee0ec61f267a9641f878b",displayName:"KryptoGO",image_id:"3ccbd966-97e8-45a0-1ceb-6141a8978e00",hostname:"kryptogo.com",mobile:{universal:"https://kryptogo.page.link"}},prema:{id:"5b8e33346dfb2a532748c247876db8d596734da8977905a27b947ba1e2cf465b",displayName:"PREMA",image_id:"6487869b-1165-4f30-aa3a-115665be8300",hostname:"premanft.com",mobile:{universal:"https://premanft.com"}},slingshot:{id:"d23de318f0f56038c5edb730a083216ff0cce00c1514e619ab32231cc9ec484b",displayName:"Slingshot",image_id:"10c75467-6612-48ad-b97b-63985e922200",hostname:"slingshot.finance",mobile:{universal:"https://app.slingshot.finance"}},kriptonio:{id:"50df7da345f84e5a79aaf617df5167335a4b6751626df2e8a38f07029b3dde7b",displayName:"Kriptonio",image_id:"363fae03-882a-4d81-a721-6e6f6e9ac500",hostname:"kriptonio.com",mobile:{universal:"https://app.kriptonio.com/mobile"}},timeless:{id:"9751385960bca290c13b443155288f892f62ee920337eda8c5a8874135daaea8",displayName:"Timeless",image_id:"32e89601-0490-42fc-0cc4-8627d62a2000",hostname:"timelesswallet.xyz",mobile:{universal:"https://timelesswallet.xyz"}},secux:{id:"6464873279d46030c0b6b005b33da6be5ed57a752be3ef1f857dc10eaf8028aa",displayName:"SecuX",image_id:"98183be0-3125-45ee-a6b6-fbd47ebefd00",hostname:"secuxtech.com",mobile:{universal:"https://wsweb.secuxtech.com"}},bitizen:{id:"41f20106359ff63cf732adf1f7dc1a157176c9b02fd266b50da6dcc1e9b86071",displayName:"Bitizen",image_id:"75dd1471-77e9-4811-ce57-ec8fc980ec00",hostname:"bitizen.org",mobile:{universal:"https://bitizen.org/wallet"}},blocto:{id:"14e7176536cb3706e221daaa3cfd7b88b7da8c7dfb64d1d241044164802c6bdd",displayName:"Blocto",image_id:"374258d3-c749-4f37-7815-77e61f798c00",hostname:"blocto.io",mobile:{universal:"https://blocto.app"}},safemoon:{id:"a0e04f1086aac204d4ebdd5f985c12ed226cd0006323fd8143715f9324da58d1",displayName:"SafeMoon",image_id:"ea0140c7-787c-43a4-838f-d5ab6a342000",hostname:"safemoon.com",mobile:{universal:"https://safemoon.com/wc"}}},ps=(e,t="md")=>`https://registry.walletconnect.com/v2/logo/${t}/${e}`;function sd(e){return{name:e.displayName||"",universalLink:e.mobile.universal||"",deepLink:e.mobile.native||""}}function ld(e,t){let o=encodeURIComponent(e);return t.universalLink?`${t.universalLink}/wc?uri=${o}`:t.deepLink?`${t.deepLink}${t.deepLink.endsWith(":")?"//":"/"}wc?uri=${e}`:""}function us(e,t){return ds.isAndroid?e:ld(e,sd(t))}var ar=class extends Se{constructor(o,r){super(r||"unknown");this.connectorType="wallet_connect_v2";this.walletConnectCloudProjectId=o,this.proxyProvider=new J,this.createProvider().then(n=>{var i,a;if(this.provider=n,this.proxyProvider.setWalletProvider(n),this.subscribeListeners(),n.session){if((i=this.walletProvider.session)!=null&&i.peer.metadata.url){let l=rn((a=this.walletProvider.session)==null?void 0:a.peer.metadata.url);this.walletEntry=l==null?void 0:l.entry,this.walletClientType=(l==null?void 0:l.walletClientType)||"unknown"}this.connected=!0,this.syncAccounts().then(()=>{this.emit("initialized"),this.initialized=!0})}else this.emit("initialized"),this.initialized=!0}),this.modal=new hs.WalletConnectModal({projectId:this.walletConnectCloudProjectId}),this.modal.subscribeModal(n=>{!n.open&&!this.walletProvider.session&&this.onQrModalClosed&&this.onQrModalClosed()})}async connect(o){return o.showPrompt&&await this.promptConnection(),this.getConnectedWallet()}async isConnected(){return this.walletProvider.connected}get walletBranding(){var o,r,n;return this.walletEntry?{name:this.walletEntry.displayName,icon:this.walletClientType==="metamask"?ve:ps(this.walletEntry.image_id)}:{name:li(((o=this.walletProvider.session)==null?void 0:o.peer.metadata.name)||"")||"WalletConnect",icon:((n=(r=this.walletProvider.session)==null?void 0:r.peer.metadata.icons)==null?void 0:n[0])||ko}}async resetConnection(){await this.isConnected()&&(await this.walletProvider.disconnect(),this.walletEntry=void 0)}async promptConnection(){if(!!this.provider)return new Promise((o,r)=>{let n=()=>{r(new Po)};this.onQrModalClosed=n,(async()=>{var s,u;let a="",l=await Promise.race([this.walletProvider.enable(),ui()]);if(l.length>0&&(a=l[0]),!a||a==="")throw new Q("Unable to retrieve address");if((s=this.walletProvider.session)!=null&&s.peer.metadata.url){let h=rn((u=this.walletProvider.session)==null?void 0:u.peer.metadata.url);this.walletEntry=h==null?void 0:h.entry,this.walletClientType=(h==null?void 0:h.walletClientType)||"unknown"}this.connected=!0,await this.syncAccounts(l),o()})().catch(a=>{if(a){r(lt(a));return}r(new Q("Unknown error during connection"))}).finally(()=>this.modal.closeModal())})}disconnect(){this.walletProvider.disconnect().then(()=>this.onDisconnect()).catch(()=>console.warn("Unable to disconnect Wallet Connect provider"))}get walletProvider(){return this.proxyProvider.walletProvider}setWalletProvider(o){this.proxyProvider.setWalletProvider(o)}async createProvider(){var n,i;let o={};for(let a of $r){let l=(i=(n=a.rpcUrls.infura)==null?void 0:n.http)==null?void 0:i[0];l&&(o[a.id]=l+"/"+Co)}let r=await ms.EthereumProvider.init({projectId:this.walletConnectCloudProjectId,chains:[1],rpcMap:o,showQrModal:!1});return r.on("display_uri",a=>{if(ir.isMobile&&this.walletEntry){let s=us(a,this.walletEntry);ir.isAndroid?window.open(s,"_self"):window.open(s,"_self","noopener,noreferrer")}else ir.isAndroid?window.open(a,"_self"):this.modal.openModal({uri:a})}),r.on("connect",()=>{var a,l;if(this.modal.closeModal(),(a=r.session)!=null&&a.peer.metadata.url){let s=rn((l=r.session)==null?void 0:l.peer.metadata.url);this.walletEntry=s==null?void 0:s.entry,this.walletClientType=(s==null?void 0:s.walletClientType)||"unknown"}}),r}async enableProvider(){return this.walletProvider.connected?Promise.resolve(this.walletProvider.accounts):await this.walletProvider.enable()}};var yi=e=>{let t=localStorage.getItem("-walletlink:https://www.walletlink.org:Addresses");return t?!!(e==null?void 0:e.linkedAccounts.filter(r=>r.type=="wallet"&&r.address===(0,fi.getAddress)(t)).length):!1},Ro=class extends fs.default{constructor(o){super();this.getEthereumProvider=()=>{let o=this.wallets[0],r=this.walletConnectors.find(n=>n.wallets.find(i=>i.address===(o==null?void 0:o.address)));return!o||!r?new J:r.proxyProvider};this.walletConnectCloudProjectId=o,this.walletConnectors=[],this.initialized=!1,this.storedConnections=this.loadConnectionHistory()}get wallets(){let o=new Set,r=this.walletConnectors.flatMap(i=>i.wallets).sort((i,a)=>i.connectedAt&&a.connectedAt?a.connectedAt-i.connectedAt:0).filter(i=>{let a=`${i.address}${i.walletClientType}${i.connectorType}`;return o.has(a)?!1:(o.add(a),!0)}),n=r.findIndex(i=>i.address===(this.activeWallet?this.activeWallet:"unknown"));return n>=0&&r.unshift(r.splice(n,1)[0]),r}initialize(){this.initialized||(ne.get(ni)&&(ne.getKeys().forEach(o=>{o.startsWith("walletconnect")&&ne.del(o)}),ne.del(ni)),Ya().then(o=>o.forEach(r=>{switch(r){case"metamask":this.createWalletConnector("injected","metamask");break;case"phantom":this.createWalletConnector("injected","phantom");break;case"unknown":default:break}})),(Ut()||ne.getKeys().find(o=>o.startsWith("-walletlink")))&&this.createWalletConnector("coinbase_wallet","coinbase_wallet"),this.createWalletConnector("wallet_connect_v2","unknown"),this.initialized=!0)}findWalletConnector(o,r){return o==="wallet_connect_v2"?this.walletConnectors.find(n=>n.connectorType===o)||null:this.walletConnectors.find(n=>n.connectorType===o&&n.walletClientType===r)||null}onInitialized(o){o.wallets.forEach(r=>{let n=this.storedConnections.find(i=>i.address===r.address&&i.connectorType===r.connectorType&&i.walletClientType===r.walletClientType);n&&(r.connectedAt=n.connectedAt)}),this.saveConnectionHistory(),this.emit("walletsUpdated")}onWalletsUpdated(o){o.initialized&&(this.saveConnectionHistory(),this.emit("walletsUpdated"))}addEmbeddedWalletConnector(o,r){if(!this.findWalletConnector("embedded","privy")){let i=new Yr(o,r),a=new Xr(i);this.addWalletConnector(a)}}removeEmbeddedWalletConnector(){let o=this.findWalletConnector("embedded","privy");if(o){let r=this.walletConnectors.indexOf(o);this.walletConnectors.splice(r,1),this.saveConnectionHistory(),this.emit("walletsUpdated")}}async createWalletConnector(o,r){let n=this.findWalletConnector(o,r);if(n)return n instanceof ar&&await n.resetConnection(),n;let a=(()=>{switch(o){case"injected":switch(r){case"phantom":return ze()?new tn:null;case"metamask":default:return or()?new en:null}case"coinbase_wallet":return new Jr;case"wallet_connect_v2":return new ar(this.walletConnectCloudProjectId)}})();return a&&this.addWalletConnector(a),a||null}addWalletConnector(o){this.walletConnectors.push(o),o.on("initialized",()=>this.onInitialized(o)),o.on("walletsUpdated",()=>this.onWalletsUpdated(o))}loadConnectionHistory(){let o=a=>a&&typeof a.address=="string"&&typeof a.connectorType=="string"&&typeof a.walletClientType=="string"&&typeof a.connectedAt=="number",r=ne.get(ii);return r&&Array.isArray(r)&&r.map(a=>o(a)).every(Boolean)?r:[]}saveConnectionHistory(){let o=this.wallets.map(r=>({address:r.address,connectorType:r.connectorType,walletClientType:r.walletClientType,connectedAt:r.connectedAt}));ne.put(ii,o)}async activeWalletSign(o){let r=this.wallets,n=r.length>0?r[0]:null;return n?n.sign(o):null}setActiveWallet(o){this.activeWallet=(0,fi.getAddress)(o),this.emit("walletsUpdated")}};function Qr(e,t){if(e.length!==t.length)return!1;for(let o=0;o<e.length;o++){let r=e[o],n=t[o];if((r==null?void 0:r.address)!==(n==null?void 0:n.address)||(r==null?void 0:r.chainId)!==(n==null?void 0:n.chainId)||(r==null?void 0:r.connectorType)!==(n==null?void 0:n.connectorType)||(r==null?void 0:r.connectedAt)!==(n==null?void 0:n.connectedAt)||(r==null?void 0:r.walletClientType)!==(n==null?void 0:n.walletClientType)||(r==null?void 0:r.isConnected)!==(n==null?void 0:n.isConnected)||(r==null?void 0:r.linked)!==(n==null?void 0:n.linked))return!1}return!0}var ys=require("ofetch");var cd=[Fr(),Gr()],nn=class{constructor(t,o,r){this.appId=t,this.sdkVersion=zr,this.client=o,this.defaults=r,this.fallbackApiUrl=o.fallbackApiUrl,this.baseFetch=ys.ofetch.create({baseURL:this.defaults.baseURL,credentials:"include",onRequest:async({request:n,options:i})=>{let a=new Headers(i.headers);a.set("privy-app-id",this.appId),a.set("privy-client",`react-auth:${this.sdkVersion}`);let l=!cd.includes(n.toString());if(!a.has("authorization")&&l){let s=await this.client.getAccessToken();s!==null&&a.set("authorization",`Bearer ${s}`)}i.headers=a,i.signal||(i.signal=AbortSignal.timeout(this.defaults.timeout))},onRequestError:({error:n})=>{if(n instanceof DOMException&&n.name==="AbortError")throw new Br}})}async get(t,o){try{return await this.baseFetch(t,o)}catch(r){throw ce(r)}}async post(t,o,r){try{return await this.baseFetch(t,{method:"POST",...o?{body:o}:{},...r})}catch(n){throw ce(n)}}async delete(t,o){try{return await this.baseFetch(t,{method:"DELETE",...o})}catch(r){throw ce(r)}}};var sr=P(require("js-cookie"));function gs(e){return e instanceof Xt?"email":e instanceof to?"sms":e instanceof eo?"siwe":e instanceof Ot?e.meta.provider:null}var Gt=class{constructor(t){this.promise=null;this.fn=t}execute(t){return this.promise===null&&(this.promise=(async()=>{try{return await this.fn(t)}finally{this.promise=null}})()),this.promise}};var vs=P(require("jose")),dt=class{static parse(t){try{return new dt(t)}catch{return null}}constructor(t){this.value=t,this._decoded=vs.decodeJwt(t)}get subject(){return this._decoded.sub}get expiration(){return this._decoded.exp}get issuer(){return this._decoded.iss}get audience(){return this._decoded.aud}isExpired(t=0){let o=Date.now(),r=(this.expiration-t)*1e3;return o>=r}};var dd=30,an=class{constructor(){this.authenticateOnce=new Gt(async t=>this._authenticate(t)),this.linkOnce=new Gt(async t=>this._link(t)),this.refreshOnce=new Gt(this._refresh.bind(this)),this.destroyOnce=new Gt(this._destroy.bind(this)),this.forkSessionOnce=new Gt(this._forkSession.bind(this))}get token(){try{let t=ne.get(Eo);return typeof t=="string"?new dt(t).value:null}catch(t){return console.error(t),this.destroyLocalState(),null}}get refreshToken(){try{let t=ne.get(Vr);return typeof t=="string"?t:null}catch(t){return console.error(t),this.destroyLocalState(),null}}get forkedToken(){try{let t=ne.get(tr);return typeof t=="string"?t:null}catch(t){return console.error(t),this.destroyLocalState(),null}}hasRefreshCredentials(){return typeof this.token=="string"&&typeof this.refreshToken=="string"}hasRecoveryCredentials(){return typeof this.forkedToken=="string"}hasActiveToken(){let t=dt.parse(this.token);return t!==null&&!t.isExpired(dd)}authenticate(t){return this.authenticateOnce.execute(t)}link(t){return this.linkOnce.execute(t)}refresh(){return this.refreshOnce.execute()}forkSession(){return this.forkSessionOnce.execute()}destroy(){return this.destroyOnce.execute()}async _authenticate(t){try{let{token:o,refresh_token:r,user:n,is_new_user:i}=await t.authenticate();this.storeToken(o),this.storeRefreshToken(r);let a=gs(t);return a&&this.client&&this.client.createAnalyticsEvent("sdk_authenticate",{method:a,isNewUser:i}),a==="siwe"&&this.client&&this.client.createAnalyticsEvent("sdk_authenticate_siwe",{connectorType:t.meta.connectorType,walletClientType:t.meta.walletClientType}),{user:Et(n),isNewUser:i}}catch(o){throw console.warn("Error authenticating session"),Ge(o)}}async _link(t){try{let o=await t.link();return Et(o)}catch(o){throw console.warn("Error linking account"),Ge(o)}}async _refresh(){if(!this.api)throw new A("Session has no API instance");if(!this.client)throw new A("Session has no PrivyClient instance");await this.client.getAccessToken({disableAutoRefresh:!0});let t=this.token,o=this.refreshToken,r=this.forkedToken;try{let n;if(t&&o)n=await this.api.post(Fr(),{refresh_token:o},{headers:{authorization:`Bearer ${t}`}}),r&&this.clearForkedToken();else if(r)n=await this.api.post(Gr(),{refresh_token:r}),this.clearForkedToken();else return null;return this.storeToken(n.token),this.storeRefreshToken(n.refresh_token),Et(n.user)}catch(n){if(n instanceof bo&&n.status===400&&n.message==="Invalid auth token")return this.destroyLocalState(),null;throw Ge(n)}}async _destroy(){var t;try{await((t=this.api)==null?void 0:t.post(la(),{refresh_token:this.refreshToken}))}catch{console.warn("Error destroying session")}this.destroyLocalState()}async _forkSession(){if(!this.api)throw new A("Session has no API instance");let t=this.refreshToken;try{let o=await this.api.post(ca(),{refresh_token:t});return this.storeToken(o.token),this.storeRefreshToken(o.refresh_token),o.new_session_refresh_token}catch(o){throw Ge(o)}}destroyLocalState(){this.storeToken(null),this.storeRefreshToken(null),this.clearForkedToken()}storeToken(t){var o;if(typeof t=="string"){ne.put(Eo,t);let r=(o=dt.parse(t))==null?void 0:o.expiration;sr.default.set(oi,t,{sameSite:"Strict",secure:!0,expires:r?new Date(r*1e3):void 0})}else ne.del(Eo),sr.default.remove(oi)}storeRefreshToken(t){typeof t=="string"?(ne.put(Vr,t),sr.default.set(ri,t,{sameSite:"Strict",secure:!0,expires:30})):(ne.del(Vr),sr.default.remove(ri))}clearForkedToken(){ne.del(tr)}};var gi,Io=class{constructor(t){this.apiUrl=t.apiUrl||Hr,this.fallbackApiUrl=this.apiUrl,this.timeout=t.timeout||ka,this.appId=t.appId,this.clientAnalyticsId=typeof window>"u"?null:crypto.randomUUID(),gi||(gi=new an),this.session=gi,this.api=this.generateApi(),this.session.client=this}initializeConnectorManager(t){this.connectors||(this.connectors=new Ro(t))}generateApi(){let t=new nn(this.appId,this,{baseURL:this.apiUrl,timeout:this.timeout});return this.session.api=t,t}updateApiUrl(t){this.apiUrl=t||this.fallbackApiUrl,this.api=this.generateApi()}authenticate(){if(!this.authFlow)throw new A("No auth flow in progress.");return this.session.authenticate(this.authFlow)}link(){if(!this.authFlow)throw new A("No auth flow in progress.");return this.session.link(this.authFlow)}async logout(){await this.session.destroy(),this.authFlow=void 0}startAuthFlow(t){t.api=this.api,this.authFlow=t}async unlinkEmail(t){try{let o=await this.api.post(xa(),{address:t});return Et(o)}catch(o){throw Ge(o)}}async unlinkPhone(t){try{let o=await this.api.post(Ta(),{phoneNumber:t});return Et(o)}catch(o){throw Ge(o)}}async unlinkWallet(t){try{let o=await this.api.post(Ea(),{address:t});return Et(o)}catch(o){throw Ge(o)}}async unlinkOAuth(t,o){try{let r=await this.api.post(Pa(),{provider:t,subject:o});return Et(r)}catch(r){throw Ge(r)}}async createAnalyticsEvent(t,o,r){if(!(typeof window>"u"))try{this.clientAnalyticsId||console.error("No client analytics id set, refusing to send analytics event"),await this.api.post(_a(),{event_name:t,client_id:this.clientAnalyticsId,payload:{...o||{},clientTimestamp:r?r.toISOString():new Date().toISOString()}})}catch(n){console.error("Failed to create analytics event",n)}}async getAuthenticatedUser(){return this.session.hasRefreshCredentials()||this.session.hasRecoveryCredentials()?this.session.refresh():null}async getAccessToken(t){var o;return this.session.hasActiveToken()?((o=dt.parse(this.session.token))==null?void 0:o.audience)!==this.appId?(await this.logout(),null):this.session.token:!(t!=null&&t.disableAutoRefresh)&&this.session.hasRefreshCredentials()?(await this.session.refresh(),this.session.token):null}async getServerConfig(){var t,o;try{let r=await this.api.get(`/api/v1/apps/${this.appId}`,{baseURL:this.fallbackApiUrl});return{id:r.id,name:r.name,verificationKey:r.verification_key,logoUrl:r.logo_url||void 0,accentColor:r.accent_color||void 0,showWalletLoginFirst:r.show_wallet_login_first,allowlistConfig:{errorTitle:r.allowlist_config.error_title,errorDetail:r.allowlist_config.error_detail,errorCtaText:r.allowlist_config.cta_text,errorCtaLink:r.allowlist_config.cta_link},walletAuth:r.wallet_auth,emailAuth:r.email_auth,smsAuth:r.sms_auth,googleOAuth:r.google_oauth,twitterOAuth:r.twitter_oauth,discordOAuth:r.discord_oauth,githubOAuth:r.github_oauth,appleOAuth:r.apple_oauth,termsAndConditionsUrl:r.terms_and_conditions_url,embeddedWalletConfig:{createOnLogin:(t=r.embedded_wallet_config)==null?void 0:t.create_on_login,requireUserPasswordOnCreate:(o=r.embedded_wallet_config)==null?void 0:o.require_user_password_on_create},privacyPolicyUrl:r.privacy_policy_url,customApiUrl:r.custom_api_url,walletConnectCloudProjectId:r.wallet_connect_cloud_project_id,createdAt:new Date(r.created_at*1e3),updatedAt:new Date(r.updated_at*1e3)}}catch(r){throw Ge(r)}}async getUsdTokenPrice(t){try{return(await this.api.get(`/api/v1/token_price?chainId=${t}`)).usd}catch{console.error(`Unable to fetch token price for chain with id ${t}`);return}}async forkSession(){return await this.session.forkSession()}};var F4=require("wicg-inert"),qn=require("body-scroll-lock"),jn=require("react"),ra=require("react"),Sc=P(require("react-dom")),Kn=P(require("styled-components"));var sn=require("react");var vi=(0,sn.createContext)({isNewUserThisSession:!1,isLinking:!1,linkingHint:null,walletConnectionStatus:null,getAuthMeta:T,getAuthFlow:T,closePrivyModal:T,connectWallet:T,initLoginWithWallet:T,loginWithWallet:T,loginWithCode:T,initLoginWithEmail:T,initLoginWithSms:T,resendEmailCode:T,resendSmsCode:T,initLoginWithOAuth:T,loginWithOAuth:T,refreshUser:T,walletProxy:null,createAnalyticsEvent:T,getUsdTokenPrice:T,recoverEmbeddedWallet:T}),I=()=>(0,sn.useContext)(vi);var ln=require("react");var bi=(0,ln.createContext)({ready:!1,authenticated:!1,user:null,walletConnectors:null,connectWallet:T,login:T,linkEmail:T,linkPhone:T,linkWallet:T,linkGoogle:T,linkTwitter:T,linkDiscord:T,linkGithub:T,linkApple:T,logout:T,getAccessToken:T,getEthereumProvider:T,getEthersProvider:T,getWeb3jsProvider:T,unlinkEmail:T,unlinkPhone:T,unlinkWallet:T,unlinkGoogle:T,unlinkTwitter:T,unlinkDiscord:T,unlinkGithub:T,unlinkApple:T,setActiveWallet:T,forkSession:T,createWallet:T,signMessage:T,sendTransaction:T,exportWallet:T}),G=()=>(0,ln.useContext)(bi);var mn=P(require("styled-components"));var At=P(require("styled-components"));var cn=P(require("styled-components")),Ht=require("react/jsx-runtime"),dn=({success:e,fail:t})=>(0,Ht.jsxs)(Ht.Fragment,{children:[(0,Ht.jsx)(lr,{className:e?"success":t?"fail":""}),(0,Ht.jsx)(pd,{className:e?"success":t?"fail":""})]}),lr=cn.default.span`
13
13
  && {
14
14
  width: 82px;
15
15
  height: 82px;
@@ -2135,4 +2135,4 @@ Resources:
2135
2135
  align-items: center;
2136
2136
  justify-content: center;
2137
2137
  height: 100%;
2138
- `;var ho=P(require("tinycolor2")),Rc="#FFFFFF",ju="#000000",Ku=Rc,Yu="#1E1E1D";function Qu(e){return e<.8&&e>.2&&console.warn("Background color is not light or dark enough, which could lead to accessibility issues."),e>.5?"light":"dark"}function mo(e,t){let o=Math.max(0,Math.min(1,e.toHsl().l+t));return(0,ho.default)({...e.toHsl(),l:o})}function Ic({backgroundTheme:e,accentHex:t,successHex:o="#51BA81",errorHex:r="#EC6351",whiteHex:n=Rc,blackHex:i=ju}){let a;switch(e){case"light":a=Ku;break;case"dark":a=Yu;break;default:a=e;break}let l=(0,ho.default)(a),s=(0,ho.default)(t),u=(0,ho.default)(o),h=(0,ho.default)(r),E=Qu(l.getLuminance()),w=mo(l,E==="light"?-.04:.11),m=mo(l,E==="light"?-.88:.87),f=mo(l,E==="light"?-.77:.75),p=mo(l,E==="light"?-.43:.45).desaturate(E==="light"?60:20),C=mo(l,E==="light"?-.13:.25).desaturate(E==="light"?60:20),S=mo(s,.15),N=mo(s,-.06),x=(0,ho.default)(s.getLuminance()>.5?i:n);return{colorScheme:E,background:l.toHslString(),background2:w.toHslString(),foreground:m.toHslString(),foreground2:f.toHslString(),foreground3:p.toHslString(),foreground4:C.toHslString(),accent:s.toHslString(),accentLight:S.toHslString(),accentDark:N.toHslString(),foregroundAccent:x.toHslString(),success:u.toHslString(),error:h.toHslString()}}var Rr={appearance:{theme:"light",accentColor:"#676FFF"},walletConnectCloudProjectId:Sa,_render:{inDialog:!0,inParentNodeId:null}};function Yn(e,t){var E,w,m,f,p,C,S,N,x,k;let o,r,n,i,a,l,s,u;if(t!=null&&t.loginMethods?(o=t.loginMethods.includes("email"),r=t.loginMethods.includes("sms"),n=t.loginMethods.includes("wallet"),i=t.loginMethods.includes("google"),a=t.loginMethods.includes("twitter"),l=t.loginMethods.includes("discord"),s=t.loginMethods.includes("github"),u=t.loginMethods.includes("apple")):(o=e.emailAuth,r=e.smsAuth,n=e.walletAuth,i=e.googleOAuth,a=e.twitterOAuth,l=e.discordOAuth,s=e.githubOAuth,u=e.appleOAuth),o&&r&&(console.warn("Enabling both email and SMS passwordless is not currently supported. Disabling SMS."),r=!1),!o&&!r&&[i,a,l,s,u].some(R=>R))throw new Error("To enable social logins you must also enable either SMS or Email login");if(![o,r,n,i,a,l,s,u].some(R=>R))throw new Error("You must enable at least one login method");return{id:e.id,name:e.name,allowlistConfig:e.allowlistConfig,appearance:{logo:((E=t==null?void 0:t.appearance)==null?void 0:E.logo)??e.logoUrl,palette:Ic({backgroundTheme:((w=t==null?void 0:t.appearance)==null?void 0:w.theme)??Rr.appearance.theme,accentHex:((m=t==null?void 0:t.appearance)==null?void 0:m.accentColor)??e.accentColor??Rr.appearance.accentColor}),showWalletLoginFirst:((f=t==null?void 0:t.appearance)==null?void 0:f.showWalletLoginFirst)??e.showWalletLoginFirst},loginMethods:{wallet:n,email:o,sms:r,google:i,twitter:a,discord:l,github:s,apple:u},legal:{termsAndConditionsUrl:((p=t==null?void 0:t.legal)==null?void 0:p.termsAndConditionsUrl)??e.termsAndConditionsUrl,privacyPolicyUrl:((C=t==null?void 0:t.legal)==null?void 0:C.privacyPolicyUrl)??e.privacyPolicyUrl},walletConnectCloudProjectId:(t==null?void 0:t.walletConnectCloudProjectId)??e.walletConnectCloudProjectId??Rr.walletConnectCloudProjectId,embeddedWallets:{createOnLogin:((S=t==null?void 0:t.embeddedWallets)==null?void 0:S.createOnLogin)??e.embeddedWalletConfig.createOnLogin,requireUserPasswordOnCreate:((N=t==null?void 0:t.embeddedWallets)==null?void 0:N.requireUserPasswordOnCreate)??e.embeddedWalletConfig.requireUserPasswordOnCreate},render:{inDialog:((x=t==null?void 0:t._render)==null?void 0:x.inDialog)??Rr._render.inDialog,inParentNodeId:((k=t==null?void 0:t._render)==null?void 0:k.inParentNodeId)??Rr._render.inParentNodeId}}}function Wc(e,t){var o;return((o=e==null?void 0:e.appearance)==null?void 0:o.logo)&&typeof e.appearance.logo=="object"&&(e.appearance.logo="component"),{...e,legacyCreateEmbeddedWalletFlag:t}}var Zn=require("react");var Qn=class{constructor(){this.callbacks={}}enqueue(t,o){this.callbacks[t]=o}dequeue(t,o){let r=this.callbacks[o];if(!r)throw new Error(`cannot dequeue ${t} event: no event found for id ${o}`);switch(delete this.callbacks[o],t){case"privy:iframe:ready":return r;case"privy:wallet:create":return r;case"privy:wallet:connect":return r;case"privy:wallet:recover":return r;case"privy:wallet:rpc":return r;default:throw new Error(`invalid wallet event type ${t}`)}}};var Lc=require("react/jsx-runtime"),Zu=function(e){return()=>`id-${e++}`}(0);function Ju(e){return typeof e.event=="string"&&/^privy:.+/.test(e.event)}function Ir(e){return e.error!==void 0}var Qo=new Qn;function Wr(e,t,o){let r=o.contentWindow;if(!r)throw new Error("iframe not initialized");return new Promise((n,i)=>{let a=Zu();Qo.enqueue(a,{resolve:n,reject:i}),r.postMessage({id:a,event:e,data:t},"*")})}function Xu(e){switch(e.event){case"privy:iframe:ready":let t=Qo.dequeue(e.event,e.id);return Ir(e)?t.reject(new qt(e.error.type,e.error.message)):t.resolve(e.data);case"privy:wallet:create":let o=Qo.dequeue(e.event,e.id);return Ir(e)?o.reject(new qt(e.error.type,e.error.message)):o.resolve(e.data);case"privy:wallet:connect":let r=Qo.dequeue(e.event,e.id);return Ir(e)?r.reject(new qt(e.error.type,e.error.message)):r.resolve(e.data);case"privy:wallet:recover":let n=Qo.dequeue(e.event,e.id);return Ir(e)?n.reject(new qt(e.error.type,e.error.message)):n.resolve(e.data);case"privy:wallet:rpc":let i=Qo.dequeue(e.event,e.id);return Ir(e)?i.reject(new qt(e.error.type,e.error.message)):i.resolve(e.data)}}function Nc(e){let t=(0,Zn.useRef)(null);return(0,Zn.useEffect)(()=>{let o=t.current;if(!o)return;function r(l){l&&l.origin===e.origin&&Ju(l.data)&&Xu(l.data)}let n={create(l){return Wr("privy:wallet:create",l,o)},connect(l){return Wr("privy:wallet:connect",l,o)},recover(l){return Wr("privy:wallet:recover",l,o)},rpc(l){return Wr("privy:wallet:rpc",l,o)}};window.addEventListener("message",r);let i=()=>e.onLoad(n),a=(...l)=>{console.error("privy iframe failed to load: ",...l),e.onLoadFailed()};return Ka(()=>Wr("privy:iframe:ready",{},o)).then(i,a),()=>window.removeEventListener("message",r)},[t.current]),(0,Lc.jsx)("iframe",{ref:t,width:"0",height:"0",style:{display:"none",height:"0px",width:"0px"},src:Kr(e.origin,`/apps/${e.appId}/embedded-wallets`)})}var Jn=require("react"),na=(0,Jn.createContext)({wallets:[]});function Mc(){return(0,Jn.useContext)(na)}var wt=require("react/jsx-runtime");function em(e){return typeof e=="string"&&e.length===25}var Lr;function Ao(){if(!Lr){let e=ne.get(Eo);return Promise.resolve(e||null)}return Lr.getAccessToken()}var Oc,ts=(e,t)=>Oc(e,t),Dc,os=(e,t)=>Dc(e,t),tm=()=>{let t=new URLSearchParams(window.location.search).get("privy_token");if(!t)return;ne.put(tr,t);let o=new URL(window.location.href);o.searchParams.delete("privy_token"),window.history.pushState({},"",o)},Uc=({config:e,...t})=>{var r,n;if(!em(t.appId))throw new A("Cannot initialize the Privy provider with an invalid Privy app ID");Lr||(Lr=new Io({appId:t.appId,apiUrl:t.apiUrl||Hr}));let o=Object.assign({},e);return t.createPrivyWalletOnLogin!==void 0&&((r=o.embeddedWallets)==null?void 0:r.createOnLogin)===void 0&&(o.embeddedWallets||(o.embeddedWallets={}),o.embeddedWallets.createOnLogin=t.createPrivyWalletOnLogin?"users-without-wallets":"off"),t.createPrivyWalletOnLogin!==void 0&&((n=e==null?void 0:e.embeddedWallets)==null?void 0:n.createOnLogin)&&console.warn("Both `createPrivyWalletOnLogin` and `config.embeddedWallets.createOnLogin` are set. `createPrivyWalletOnLogin` is deprecated and should be removed."),(0,wt.jsx)(om,{...t,config:o,client:Lr})},om=e=>{let t=e.client,[o,r]=(0,H.useState)(!1),[n,i]=(0,H.useState)(!1),[a,l]=(0,H.useState)(!1),[s,u]=(0,H.useState)(null),[h,E]=(0,H.useState)([]),w=(0,H.useRef)(h),[m,f]=(0,H.useState)(!1),[p,C]=(0,H.useState)(null),[S,N]=(0,H.useState)(!1),[x,k]=(0,H.useState)({status:"disconnected",connectError:null,connector:null,connectRetry:T}),[R,O]=(0,H.useState)(null),[L,fe]=(0,H.useState)(null),[X,ye]=(0,H.useState)({showWalletLoginFirst:!0,allowlistConfig:{errorTitle:null,errorDetail:null,errorCtaText:null,errorCtaLink:null},walletAuth:!0,emailAuth:!0,smsAuth:!1,googleOAuth:!1,twitterOAuth:!1,discordOAuth:!1,githubOAuth:!1,appleOAuth:!1,termsAndConditionsUrl:null,privacyPolicyUrl:null,embeddedWalletConfig:{createOnLogin:"off",requireUserPasswordOnCreate:!1}}),[V,W]=(0,H.useState)(()=>{let c=Wc(e.config,e.createPrivyWalletOnLogin);return t.createAnalyticsEvent("sdk_initialize",c),Yn(X,e.config)}),[F,Y]=(0,H.useState)(!0),[ee,xe]=(0,H.useState)({}),[Nt,Lt]=(0,H.useState)(null),de=c=>{c&&C(c),r(!0),t.createAnalyticsEvent("modal_open",{initialScreen:c})},pe=c=>{V.embeddedWallets.createOnLogin!=="off"&&Y(!0),de(c)};(0,H.useEffect)(()=>{var d,v;if(!L||!s){(d=t.connectors)==null||d.removeEmbeddedWalletConnector();return}let c=s==null?void 0:s.linkedAccounts.filter(g=>g.type==="wallet"&&g.walletClient==="privy");if(c&&c.length>0){let g=c[0].address;(v=t.connectors)==null||v.addEmbeddedWalletConnector(L,g)}},[L,s]),(0,H.useEffect)(()=>{async function c(){var vo;let d=await t.getServerConfig();ye(d);let v=Yn(d,e.config);W(v),d.customApiUrl&&t.updateApiUrl(d.customApiUrl),t.initializeConnectorManager(v.walletConnectCloudProjectId),(vo=t.connectors)==null||vo.initialize();let g=Mt();tm();let le=await t.getAuthenticatedUser();l(!!le),u(le),i(!0),Nt==null||Nt(),g&&le&&N(!0),Mr()}c()},[t,Nt,n]),(0,H.useEffect)(()=>{let c=Yn(X,e.config);W(c)},[e.config]);let Mt=()=>{let c=new URLSearchParams(window.location.search),d=c.get("privy_oauth_code"),v=c.get("privy_oauth_state"),g=c.get("privy_oauth_provider");return d&&v&&g?(t.startAuthFlow(new Ot(g,d,v)),pe("AWAITING_OAUTH_SCREEN"),!0):!1},fo=async(c,d,v)=>{var le;let g=await((le=t.connectors)==null?void 0:le.createWalletConnector(c,d))||null;Zo(g,v)};async function Zo(c,d){if(!c)return k({status:"disconnected",connectError:new Q("Unable to connect to wallet."),connector:null,connectRetry:T}),d==null?void 0:d(null);k({connector:c,status:"connecting",connectError:null,connectRetry:()=>Zo(c,d)});try{let v=await c.connect({showPrompt:!0});return k(g=>({...g,status:"connected",connectError:null,connectRetry:T})),d==null?void 0:d(v)}catch(v){return v instanceof Ze?console.error(v.cause?v.cause:v.message):console.error(v),k(g=>({...g,status:"disconnected",connectError:v})),d==null?void 0:d(null)}}let yo=c=>{c!==null&&t.startAuthFlow(new eo(c))},Mr=()=>{let c=new URLSearchParams(window.location.search),d=c.get("privy_connector"),v=c.get("privy_wallet_client");if(!d||!v)return;if(v==="phantom"&&!ze()&&pe("LOGIN_FAILED_SCREEN"),!t.connectors)throw new A("Connector not initialized");de("AWAITING_CONNECTION");let g=new URL(window.location.href);g.searchParams.delete("privy_connector"),g.searchParams.delete("privy_wallet_client"),window.history.pushState({},"",g),fo(d,v,yo)};(0,H.useEffect)(()=>{n&&a&&s===null&&t.getAuthenticatedUser().then(u)},[n,a,s,t]);let Jo=()=>{N(!0),de("LINK_WALLET_SCREEN")},Or=c=>{if(!a||!s)return!1;for(let d of s.linkedAccounts)if(d.type==="wallet"&&d.address===c.address)return!0;return!1},Dr=async c=>{if(!t.connectors)throw new A("Connector not initialized");N(!!a);let d=t.connectors.findWalletConnector(c.connectorType,c.walletClientType)||null;k(v=>({...v,connector:d,status:"connected",connectError:null,connectRetry:T})),yo(c),pe("AWAITING_CONNECTION")},se=async(c,d)=>{if(!t.connectors)throw new A("Connector not initialized");N(!!a),await fo(c,d,yo)},Jt=()=>{E(c=>{var v;let d=((v=t.connectors)==null?void 0:v.wallets.map(g=>({...g,linked:Or(g),loginOrLink:async()=>{if(!await g.isConnected())throw new A("Wallet is not connected");if(g.connectorType==="embedded"&&g.walletClientType==="privy")throw new A("Cannot link or login with embedded wallet");Dr(g)},unlink:async()=>{if(!a)throw new A("User is not authenticated.");if(g.connectorType==="embedded"&&g.walletClientType==="privy")throw new A("Cannot unlink an embedded wallet");let le=await t.unlinkWallet(g.address);u(le)}})))||[];return Qr(c,d)?c:d})};(0,H.useEffect)(()=>{Jt()},[s==null?void 0:s.linkedAccounts]),(0,H.useEffect)(()=>{if(n){if(!t.connectors)throw new A("Connector not initialized");Jt(),t.connectors.on("walletsUpdated",Jt)}},[n]);let ei=()=>{de(a?"CONNECT_ONLY_AUTHENTICATED_SCREEN":"CONNECT_ONLY_LANDING_SCREEN")};(0,H.useEffect)(()=>{if(!h[0])return;let c=h[0],d=w.current.find(g=>g.address===c.address),v=s==null?void 0:s.linkedAccounts.find(g=>g.type==="wallet"&&g.address===c.address);if(!d&&v){let g=Object.assign({},s);g.wallet=v&&{address:v.address,chainType:v.chainType,chainId:v.chainId,walletClient:v.walletClient},u(g)}w.current=h},[h]);let Xo={ready:n,authenticated:a,user:s,walletConnectors:t.connectors||null,connectWallet:ei,linkWallet:Jo,linkEmail:()=>{N(!0),de("LINK_EMAIL_SCREEN")},linkPhone:()=>{N(!0),de("LINK_PHONE_SCREEN")},linkGoogle:async()=>{await go.initLoginWithOAuth("google")},linkTwitter:async()=>{await go.initLoginWithOAuth("twitter")},linkDiscord:async()=>{await go.initLoginWithOAuth("discord")},linkGithub:async()=>{await go.initLoginWithOAuth("github")},linkApple:async()=>{await go.initLoginWithOAuth("apple")},login:async()=>{if(n||(await new Promise(c=>{Lt(()=>c)}),Lt(null)),a){console.warn("Attempted to log in, but user is already logged in. Use a `link` helper instead.");return}pe()},logout:async()=>{await t.logout(),u(null),l(!1),C(null),N(!1),r(!1)},getAccessToken:()=>t.getAccessToken(),getEthereumProvider:()=>{var v;if(!s||!s.wallet)return new J;let c=h.find(g=>s.wallet&&g.address===s.wallet.address),d=(v=t.connectors)==null?void 0:v.walletConnectors.find(g=>g.wallets.find(le=>le.address===(c==null?void 0:c.address)));return!c||!d?new J:d.proxyProvider},getEthersProvider:()=>{var v;if(!s||!s.wallet)return new Xn.Web3Provider(new Xe(new J));let c=h.find(g=>s.wallet&&g.address===s.wallet.address),d=(v=t.connectors)==null?void 0:v.walletConnectors.find(g=>g.wallets.find(le=>le.address===(c==null?void 0:c.address)));return!c||!d?new Xn.Web3Provider(new Xe(new J)):new Xn.Web3Provider(new Xe(d.proxyProvider))},getWeb3jsProvider:()=>{var v;if(!s||!s.wallet)return new Ft(new J);let c=h.find(g=>s.wallet&&g.address===s.wallet.address),d=(v=t.connectors)==null?void 0:v.walletConnectors.find(g=>g.wallets.find(le=>le.address===(c==null?void 0:c.address)));return!c||!d?new Ft(new J):new Ft(d.proxyProvider)},unlinkWallet:async c=>{let d=await t.unlinkWallet(c);return u(d),d},unlinkEmail:async c=>{let d=await t.unlinkEmail(c);return u(d),d},unlinkPhone:async c=>{let d=await t.unlinkPhone(c);return u(d),d},unlinkGoogle:async c=>{let d=await t.unlinkOAuth("google",c);return u(d),d},unlinkTwitter:async c=>{let d=await t.unlinkOAuth("twitter",c);return u(d),d},unlinkDiscord:async c=>{let d=await t.unlinkOAuth("discord",c);return u(d),d},unlinkGithub:async c=>{let d=await t.unlinkOAuth("github",c);return u(d),d},unlinkApple:async c=>{let d=await t.unlinkOAuth("apple",c);return u(d),d},setActiveWallet:async c=>{let d=h.find(g=>(0,Nr.getAddress)(g.address)===(0,Nr.getAddress)(c)),v=s==null?void 0:s.linkedAccounts.find(g=>g.type==="wallet"&&(0,Nr.getAddress)(g.address)===(0,Nr.getAddress)(c));if(!d||!await d.isConnected())O(c),Jo();else if(!d.linked)d.loginOrLink();else{let g=Object.assign({},s);g.wallet=v&&{address:v.address,chainType:v.chainType,chainId:v.chainId,walletClient:v.walletClient},u(g)}},forkSession:()=>t.forkSession(),createWallet:()=>new Promise((c,d)=>{if(!a||!s){d(new Error("User must be authenticated before creating a Privy wallet"));return}if(te(s)){d(new Error("Only one Privy wallet per user is currently allowed"));return}Y(!0),xe({createWallet:{onSuccess:c,onFailure:d,callAuthOnSuccessOnClose:!1}}),de("EMBEDDED_WALLET_SCREEN")}),signMessage:(c,d)=>new Promise((v,g)=>{if(!a||!s){g(new Error("User must be authenticated before signing with a Privy wallet"));return}if(!te(s)){g(new Error("Must have a Privy wallet before signing"));return}if(typeof c!="string"||c.length<1){g(new Error("Message must be a non-empty string"));return}Y(!0);let vo={message:c,onSuccess:v,onFailure:g,uiOptions:d||{}},ti={onCompleteNavigateTo:"EMBEDDED_WALLET_SIGN_REQUEST_SCREEN",onFailure:g};xe({signMessage:vo,connectWallet:ti}),de("EMBEDDED_WALLET_CONNECTING_SCREEN")}),sendTransaction:(c,d)=>new Promise(async(v,g)=>{if(!a||!s){g(new Error("User must be authenticated before signing with a Privy wallet"));return}if(!te(s)){g(new Error("Must have a Privy wallet before signing"));return}Y(!0);let vo={transactionRequest:c,onSuccess:v,onFailure:g,uiOptions:d||{}},ti={onCompleteNavigateTo:"EMBEDDED_WALLET_SEND_TRANSACTION_SCREEN",onFailure:g};xe({connectWallet:ti,sendTransaction:vo}),de("EMBEDDED_WALLET_CONNECTING_SCREEN")}),exportWallet:()=>new Promise((c,d)=>{if(!a||!s){d(new Error("User must be authenticated before exporting their Privy wallet"));return}if(!te(s)){d(new Error("Must have a Privy wallet before exporting"));return}Y(!0);let g={onCompleteNavigateTo:"EMBEDDED_WALLET_KEY_EXPORT_SCREEN",onFailure:d},le={appId:e.appId,origin:t.apiUrl,onSuccess:c,onFailure:d};xe({keyExport:le,connectWallet:g}),de("EMBEDDED_WALLET_CONNECTING_SCREEN")})};Oc=Xo.signMessage,Dc=Xo.sendTransaction;let go=(()=>({isNewUserThisSession:m,isLinking:S,linkingHint:R,walletConnectionStatus:x,getAuthFlow:()=>t.authFlow,getAuthMeta:()=>{var c;return(c=t.authFlow)==null?void 0:c.meta},closePrivyModal:(c={shouldCallAuthOnSuccess:!0})=>{var v;let d=n&&a&&s;c.shouldCallAuthOnSuccess&&d&&((v=e.onSuccess)==null||v.call(e,s,m)),t.authFlow=void 0,O(null),C(null),N(!1),f(!1),r(!1),t.createAnalyticsEvent("modal_closed")},connectWallet:fo,initLoginWithWallet:se,loginWithWallet:async()=>{if(!(t.authFlow instanceof eo))throw new A("Must initialize SIWE flow first.");let c,d;S?c=await t.link():{user:c,isNewUser:d}=await t.authenticate(),u(c||s||null),f(d||!1),l(!0)},initLoginWithOAuth:async c=>{t.startAuthFlow(new Ot(c));let d=await t.authFlow.getAuthorizationUrl();d&&d.url&&window.location.assign(d.url)},loginWithOAuth:async()=>{if(!(t.authFlow instanceof Ot))throw new A("Must initialize OAuth flow before calling loginWithOAuth");let c,d;n&&a?c=await t.link():{user:c,isNewUser:d}=await t.authenticate(),u(c),f(d||!1),l(!0)},initLoginWithEmail:async c=>{let d=new Xt(c);t.startAuthFlow(d),await d.sendCodeEmail()},initLoginWithSms:async c=>{let d=new to(c);t.startAuthFlow(d),await d.sendSmsCode()},resendEmailCode:async()=>{var c;await((c=t.authFlow)==null?void 0:c.sendCodeEmail())},resendSmsCode:async()=>{var c;await((c=t.authFlow)==null?void 0:c.sendSmsCode())},loginWithCode:async c=>{if(t.authFlow instanceof Xt)t.authFlow.meta.emailCode=c.trim();else if(t.authFlow instanceof to)t.authFlow.meta.smsCode=c.trim();else throw new A("Must initialize a passwordless code flow first");let d,v;S?d=await t.link():{user:d,isNewUser:v}=await t.authenticate(),u(d||s||null),f(v||!1),l(!0)},refreshUser:async()=>{let c=await t.getAuthenticatedUser();return u(c),c},walletProxy:L,createAnalyticsEvent:(c,d,v)=>t.createAnalyticsEvent(c,d,v),getUsdTokenPrice:c=>t.getUsdTokenPrice(c),recoverEmbeddedWallet:c=>new Promise((d,v)=>{if(!a||!s){v(new Error("User must be authenticated before recovering the Privy wallet"));return}let g=te(s);if(!g){v(new Error("Must have a Privy wallet in order to recover it"));return}Y(!0),xe({recoverWallet:{privyWallet:g,onCompleteNavigateTo:c,onFailure:v,onSuccess:d}}),de("EMBEDDED_WALLET_RECOVERY_SCREEN")})}))(),Bc=(0,H.useMemo)(()=>({wallets:h}),[h]);return(0,wt.jsx)(bi.Provider,{value:Xo,children:(0,wt.jsxs)(na.Provider,{value:Bc,children:[e.children,(0,wt.jsxs)(vi.Provider,{value:go,children:[(0,wt.jsx)(_c,{theme:{...V.appearance.palette||{}}}),(0,wt.jsx)(cs,{appConfig:V,data:ee,setModalData:xe,initialScreen:p,visible:o,authenticated:a,children:o&&(0,wt.jsx)(kc,{})}),F&&(0,wt.jsx)(Nc,{appId:e.appId,origin:t.apiUrl,onLoad:fe,onLoadFailed:()=>null})]})]})})};0&&(module.exports={AsExternalProvider,ConnectorManager,PrivyClient,PrivyProvider,PrivyProxyProvider,VERSION,WalletConnector,getAccessToken,usePrivy,useWallets});
2138
+ `;var ho=P(require("tinycolor2")),Rc="#FFFFFF",ju="#000000",Ku=Rc,Yu="#1E1E1D";function Qu(e){return e<.8&&e>.2&&console.warn("Background color is not light or dark enough, which could lead to accessibility issues."),e>.5?"light":"dark"}function mo(e,t){let o=Math.max(0,Math.min(1,e.toHsl().l+t));return(0,ho.default)({...e.toHsl(),l:o})}function Ic({backgroundTheme:e,accentHex:t,successHex:o="#51BA81",errorHex:r="#EC6351",whiteHex:n=Rc,blackHex:i=ju}){let a;switch(e){case"light":a=Ku;break;case"dark":a=Yu;break;default:a=e;break}let l=(0,ho.default)(a),s=(0,ho.default)(t),u=(0,ho.default)(o),h=(0,ho.default)(r),E=Qu(l.getLuminance()),w=mo(l,E==="light"?-.04:.11),m=mo(l,E==="light"?-.88:.87),f=mo(l,E==="light"?-.77:.75),p=mo(l,E==="light"?-.43:.45).desaturate(E==="light"?60:20),C=mo(l,E==="light"?-.13:.25).desaturate(E==="light"?60:20),S=mo(s,.15),N=mo(s,-.06),x=(0,ho.default)(s.getLuminance()>.5?i:n);return{colorScheme:E,background:l.toHslString(),background2:w.toHslString(),foreground:m.toHslString(),foreground2:f.toHslString(),foreground3:p.toHslString(),foreground4:C.toHslString(),accent:s.toHslString(),accentLight:S.toHslString(),accentDark:N.toHslString(),foregroundAccent:x.toHslString(),success:u.toHslString(),error:h.toHslString()}}var Rr={appearance:{theme:"light",accentColor:"#676FFF"},walletConnectCloudProjectId:Sa,_render:{inDialog:!0,inParentNodeId:null}};function Yn(e,t){var E,w,m,f,p,C,S,N,x,k;let o,r,n,i,a,l,s,u;if(t!=null&&t.loginMethods?(o=t.loginMethods.includes("email"),r=t.loginMethods.includes("sms"),n=t.loginMethods.includes("wallet"),i=t.loginMethods.includes("google"),a=t.loginMethods.includes("twitter"),l=t.loginMethods.includes("discord"),s=t.loginMethods.includes("github"),u=t.loginMethods.includes("apple")):(o=e.emailAuth,r=e.smsAuth,n=e.walletAuth,i=e.googleOAuth,a=e.twitterOAuth,l=e.discordOAuth,s=e.githubOAuth,u=e.appleOAuth),o&&r&&(console.warn("Enabling both email and SMS passwordless is not currently supported. Disabling SMS."),r=!1),!o&&!r&&[i,a,l,s,u].some(R=>R))throw new Error("To enable social logins you must also enable either SMS or Email login");if(![o,r,n,i,a,l,s,u].some(R=>R))throw new Error("You must enable at least one login method");return{id:e.id,name:e.name,allowlistConfig:e.allowlistConfig,appearance:{logo:((E=t==null?void 0:t.appearance)==null?void 0:E.logo)??e.logoUrl,palette:Ic({backgroundTheme:((w=t==null?void 0:t.appearance)==null?void 0:w.theme)??Rr.appearance.theme,accentHex:((m=t==null?void 0:t.appearance)==null?void 0:m.accentColor)??e.accentColor??Rr.appearance.accentColor}),showWalletLoginFirst:((f=t==null?void 0:t.appearance)==null?void 0:f.showWalletLoginFirst)??e.showWalletLoginFirst},loginMethods:{wallet:n,email:o,sms:r,google:i,twitter:a,discord:l,github:s,apple:u},legal:{termsAndConditionsUrl:((p=t==null?void 0:t.legal)==null?void 0:p.termsAndConditionsUrl)??e.termsAndConditionsUrl,privacyPolicyUrl:((C=t==null?void 0:t.legal)==null?void 0:C.privacyPolicyUrl)??e.privacyPolicyUrl},walletConnectCloudProjectId:(t==null?void 0:t.walletConnectCloudProjectId)??e.walletConnectCloudProjectId??Rr.walletConnectCloudProjectId,embeddedWallets:{createOnLogin:((S=t==null?void 0:t.embeddedWallets)==null?void 0:S.createOnLogin)??e.embeddedWalletConfig.createOnLogin,requireUserPasswordOnCreate:((N=t==null?void 0:t.embeddedWallets)==null?void 0:N.requireUserPasswordOnCreate)??e.embeddedWalletConfig.requireUserPasswordOnCreate},render:{inDialog:((x=t==null?void 0:t._render)==null?void 0:x.inDialog)??Rr._render.inDialog,inParentNodeId:((k=t==null?void 0:t._render)==null?void 0:k.inParentNodeId)??Rr._render.inParentNodeId}}}function Wc(e,t){var o;return((o=e==null?void 0:e.appearance)==null?void 0:o.logo)&&typeof e.appearance.logo=="object"&&(e.appearance.logo="component"),{...e,legacyCreateEmbeddedWalletFlag:t}}var Zn=require("react");var Qn=class{constructor(){this.callbacks={}}enqueue(t,o){this.callbacks[t]=o}dequeue(t,o){let r=this.callbacks[o];if(!r)throw new Error(`cannot dequeue ${t} event: no event found for id ${o}`);switch(delete this.callbacks[o],t){case"privy:iframe:ready":return r;case"privy:wallet:create":return r;case"privy:wallet:connect":return r;case"privy:wallet:recover":return r;case"privy:wallet:rpc":return r;default:throw new Error(`invalid wallet event type ${t}`)}}};var Lc=require("react/jsx-runtime"),Zu=function(e){return()=>`id-${e++}`}(0);function Ju(e){return typeof e.event=="string"&&/^privy:.+/.test(e.event)}function Ir(e){return e.error!==void 0}var Qo=new Qn;function Wr(e,t,o){let r=o.contentWindow;if(!r)throw new Error("iframe not initialized");return new Promise((n,i)=>{let a=Zu();Qo.enqueue(a,{resolve:n,reject:i}),r.postMessage({id:a,event:e,data:t},"*")})}function Xu(e){switch(e.event){case"privy:iframe:ready":let t=Qo.dequeue(e.event,e.id);return Ir(e)?t.reject(new qt(e.error.type,e.error.message)):t.resolve(e.data);case"privy:wallet:create":let o=Qo.dequeue(e.event,e.id);return Ir(e)?o.reject(new qt(e.error.type,e.error.message)):o.resolve(e.data);case"privy:wallet:connect":let r=Qo.dequeue(e.event,e.id);return Ir(e)?r.reject(new qt(e.error.type,e.error.message)):r.resolve(e.data);case"privy:wallet:recover":let n=Qo.dequeue(e.event,e.id);return Ir(e)?n.reject(new qt(e.error.type,e.error.message)):n.resolve(e.data);case"privy:wallet:rpc":let i=Qo.dequeue(e.event,e.id);return Ir(e)?i.reject(new qt(e.error.type,e.error.message)):i.resolve(e.data)}}function Nc(e){let t=(0,Zn.useRef)(null);return(0,Zn.useEffect)(()=>{let o=t.current;if(!o)return;function r(l){l&&l.origin===e.origin&&Ju(l.data)&&Xu(l.data)}let n={create(l){return Wr("privy:wallet:create",l,o)},connect(l){return Wr("privy:wallet:connect",l,o)},recover(l){return Wr("privy:wallet:recover",l,o)},rpc(l){return Wr("privy:wallet:rpc",l,o)}};window.addEventListener("message",r);let i=()=>e.onLoad(n),a=(...l)=>{console.error("privy iframe failed to load: ",...l),e.onLoadFailed()};return Ka(()=>Wr("privy:iframe:ready",{},o)).then(i,a),()=>window.removeEventListener("message",r)},[t.current]),(0,Lc.jsx)("iframe",{ref:t,width:"0",height:"0",style:{display:"none",height:"0px",width:"0px"},src:Kr(e.origin,`/apps/${e.appId}/embedded-wallets`)})}var Jn=require("react"),na=(0,Jn.createContext)({wallets:[]});function Mc(){return(0,Jn.useContext)(na)}var wt=require("react/jsx-runtime");function em(e){return typeof e=="string"&&e.length===25}var Lr;function Ao(){if(!Lr){let e=ne.get(Eo);return Promise.resolve(e||null)}return Lr.getAccessToken()}var Oc,ts=(e,t)=>Oc(e,t),Dc,os=(e,t)=>Dc(e,t),tm=()=>{let t=new URLSearchParams(window.location.search).get("privy_token");if(!t)return;ne.put(tr,t);let o=new URL(window.location.href);o.searchParams.delete("privy_token"),window.history.pushState({},"",o)},Uc=({config:e,...t})=>{var r,n;if(!em(t.appId))throw new A("Cannot initialize the Privy provider with an invalid Privy app ID");Lr||(Lr=new Io({appId:t.appId,apiUrl:t.apiUrl||Hr}));let o=Object.assign({},e);return t.createPrivyWalletOnLogin!==void 0&&((r=o.embeddedWallets)==null?void 0:r.createOnLogin)===void 0&&(o.embeddedWallets||(o.embeddedWallets={}),o.embeddedWallets.createOnLogin=t.createPrivyWalletOnLogin?"users-without-wallets":"off"),t.createPrivyWalletOnLogin!==void 0&&((n=e==null?void 0:e.embeddedWallets)==null?void 0:n.createOnLogin)&&console.warn("Both `createPrivyWalletOnLogin` and `config.embeddedWallets.createOnLogin` are set. `createPrivyWalletOnLogin` is deprecated and should be removed."),(0,wt.jsx)(om,{...t,config:o,client:Lr})},om=e=>{let t=e.client,[o,r]=(0,H.useState)(!1),[n,i]=(0,H.useState)(!1),[a,l]=(0,H.useState)(!1),[s,u]=(0,H.useState)(null),[h,E]=(0,H.useState)([]),w=(0,H.useRef)(h),[m,f]=(0,H.useState)(!1),[p,C]=(0,H.useState)(null),[S,N]=(0,H.useState)(!1),[x,k]=(0,H.useState)({status:"disconnected",connectError:null,connector:null,connectRetry:T}),[R,O]=(0,H.useState)(null),[L,fe]=(0,H.useState)(null),[X,ye]=(0,H.useState)({showWalletLoginFirst:!0,allowlistConfig:{errorTitle:null,errorDetail:null,errorCtaText:null,errorCtaLink:null},walletAuth:!0,emailAuth:!0,smsAuth:!1,googleOAuth:!1,twitterOAuth:!1,discordOAuth:!1,githubOAuth:!1,appleOAuth:!1,termsAndConditionsUrl:null,privacyPolicyUrl:null,embeddedWalletConfig:{createOnLogin:"off",requireUserPasswordOnCreate:!1}}),[V,W]=(0,H.useState)(()=>{let c=Wc(e.config,e.createPrivyWalletOnLogin);return t.createAnalyticsEvent("sdk_initialize",c),Yn(X,e.config)}),[F,Y]=(0,H.useState)(!0),[ee,xe]=(0,H.useState)({}),[Nt,Lt]=(0,H.useState)(null),de=c=>{c&&C(c),r(!0),t.createAnalyticsEvent("modal_open",{initialScreen:c})},pe=c=>{V.embeddedWallets.createOnLogin!=="off"&&Y(!0),de(c)};(0,H.useEffect)(()=>{var d,v;if(!L||!s){(d=t.connectors)==null||d.removeEmbeddedWalletConnector();return}let c=s==null?void 0:s.linkedAccounts.filter(g=>g.type==="wallet"&&g.walletClient==="privy");if(c&&c.length>0){let g=c[0].address;(v=t.connectors)==null||v.addEmbeddedWalletConnector(L,g)}},[L,s]),(0,H.useEffect)(()=>{async function c(){var vo;let d=await t.getServerConfig();ye(d);let v=Yn(d,e.config);W(v),d.customApiUrl&&t.updateApiUrl(d.customApiUrl),t.initializeConnectorManager(v.walletConnectCloudProjectId),(vo=t.connectors)==null||vo.initialize();let g=Mt();tm();let le=await t.getAuthenticatedUser();l(!!le),u(le),i(!0),Nt==null||Nt(),g&&le&&N(!0),Mr()}c()},[t,Nt,n]),(0,H.useEffect)(()=>{let c=Yn(X,e.config);W(c)},[e.config]);let Mt=()=>{let c=new URLSearchParams(window.location.search),d=c.get("privy_oauth_code"),v=c.get("privy_oauth_state"),g=c.get("privy_oauth_provider");return d&&v&&g?(t.startAuthFlow(new Ot(g,d,v)),pe("AWAITING_OAUTH_SCREEN"),!0):!1},fo=async(c,d,v)=>{var le;let g=await((le=t.connectors)==null?void 0:le.createWalletConnector(c,d))||null;Zo(g,v)};async function Zo(c,d){if(!c)return k({status:"disconnected",connectError:new Q("Unable to connect to wallet."),connector:null,connectRetry:T}),d==null?void 0:d(null);k({connector:c,status:"connecting",connectError:null,connectRetry:()=>Zo(c,d)});try{let v=await c.connect({showPrompt:!0});return k(g=>({...g,status:"connected",connectError:null,connectRetry:T})),d==null?void 0:d(v)}catch(v){return v instanceof Ze?console.error(v.cause?v.cause:v.message):console.error(v),k(g=>({...g,status:"disconnected",connectError:v})),d==null?void 0:d(null)}}let yo=c=>{c!==null&&t.startAuthFlow(new eo(c))},Mr=()=>{let c=new URLSearchParams(window.location.search),d=c.get("privy_connector"),v=c.get("privy_wallet_client");if(!d||!v)return;if(v==="phantom"&&!ze()&&pe("LOGIN_FAILED_SCREEN"),!t.connectors)throw new A("Connector not initialized");de("AWAITING_CONNECTION");let g=new URL(window.location.href);g.searchParams.delete("privy_connector"),g.searchParams.delete("privy_wallet_client"),window.history.pushState({},"",g),fo(d,v,yo)};(0,H.useEffect)(()=>{n&&a&&s===null&&t.getAuthenticatedUser().then(u)},[n,a,s,t]);let Jo=()=>{N(!0),de("LINK_WALLET_SCREEN")},Or=c=>{if(!a||!s)return!1;for(let d of s.linkedAccounts)if(d.type==="wallet"&&d.address===c.address)return!0;return!1},Dr=async c=>{if(!t.connectors)throw new A("Connector not initialized");N(!!a);let d=t.connectors.findWalletConnector(c.connectorType,c.walletClientType)||null;k(v=>({...v,connector:d,status:"connected",connectError:null,connectRetry:T})),yo(c),pe("AWAITING_CONNECTION")},se=async(c,d)=>{if(!t.connectors)throw new A("Connector not initialized");N(!!a),await fo(c,d,yo)},Jt=()=>{E(c=>{var v;let d=((v=t.connectors)==null?void 0:v.wallets.map(g=>({...g,linked:Or(g),loginOrLink:async()=>{if(!await g.isConnected())throw new A("Wallet is not connected");if(g.connectorType==="embedded"&&g.walletClientType==="privy")throw new A("Cannot link or login with embedded wallet");Dr(g)},unlink:async()=>{if(!a)throw new A("User is not authenticated.");if(g.connectorType==="embedded"&&g.walletClientType==="privy")throw new A("Cannot unlink an embedded wallet");let le=await t.unlinkWallet(g.address);u(le)}})))||[];return Qr(c,d)?c:d})};(0,H.useEffect)(()=>{Jt()},[s==null?void 0:s.linkedAccounts]),(0,H.useEffect)(()=>{if(n){if(!t.connectors)throw new A("Connector not initialized");Jt(),t.connectors.on("walletsUpdated",Jt)}},[n]);let ei=()=>{de(a?"CONNECT_ONLY_AUTHENTICATED_SCREEN":"CONNECT_ONLY_LANDING_SCREEN")};(0,H.useEffect)(()=>{if(!h[0])return;let c=h[0],d=w.current.find(g=>g.address===c.address),v=s==null?void 0:s.linkedAccounts.find(g=>g.type==="wallet"&&g.address===c.address);if(!d&&v){let g=Object.assign({},s);g.wallet=v&&{address:v.address,chainType:v.chainType,chainId:v.chainId,walletClient:v.walletClient,walletClientType:v.walletClientType,connectorType:v.connectorType},u(g)}w.current=h},[h]);let Xo={ready:n,authenticated:a,user:s,walletConnectors:t.connectors||null,connectWallet:ei,linkWallet:Jo,linkEmail:()=>{N(!0),de("LINK_EMAIL_SCREEN")},linkPhone:()=>{N(!0),de("LINK_PHONE_SCREEN")},linkGoogle:async()=>{await go.initLoginWithOAuth("google")},linkTwitter:async()=>{await go.initLoginWithOAuth("twitter")},linkDiscord:async()=>{await go.initLoginWithOAuth("discord")},linkGithub:async()=>{await go.initLoginWithOAuth("github")},linkApple:async()=>{await go.initLoginWithOAuth("apple")},login:async()=>{if(n||(await new Promise(c=>{Lt(()=>c)}),Lt(null)),a){console.warn("Attempted to log in, but user is already logged in. Use a `link` helper instead.");return}pe()},logout:async()=>{await t.logout(),u(null),l(!1),C(null),N(!1),r(!1)},getAccessToken:()=>t.getAccessToken(),getEthereumProvider:()=>{var v;if(!s||!s.wallet)return new J;let c=h.find(g=>s.wallet&&g.address===s.wallet.address),d=(v=t.connectors)==null?void 0:v.walletConnectors.find(g=>g.wallets.find(le=>le.address===(c==null?void 0:c.address)));return!c||!d?new J:d.proxyProvider},getEthersProvider:()=>{var v;if(!s||!s.wallet)return new Xn.Web3Provider(new Xe(new J));let c=h.find(g=>s.wallet&&g.address===s.wallet.address),d=(v=t.connectors)==null?void 0:v.walletConnectors.find(g=>g.wallets.find(le=>le.address===(c==null?void 0:c.address)));return!c||!d?new Xn.Web3Provider(new Xe(new J)):new Xn.Web3Provider(new Xe(d.proxyProvider))},getWeb3jsProvider:()=>{var v;if(!s||!s.wallet)return new Ft(new J);let c=h.find(g=>s.wallet&&g.address===s.wallet.address),d=(v=t.connectors)==null?void 0:v.walletConnectors.find(g=>g.wallets.find(le=>le.address===(c==null?void 0:c.address)));return!c||!d?new Ft(new J):new Ft(d.proxyProvider)},unlinkWallet:async c=>{let d=await t.unlinkWallet(c);return u(d),d},unlinkEmail:async c=>{let d=await t.unlinkEmail(c);return u(d),d},unlinkPhone:async c=>{let d=await t.unlinkPhone(c);return u(d),d},unlinkGoogle:async c=>{let d=await t.unlinkOAuth("google",c);return u(d),d},unlinkTwitter:async c=>{let d=await t.unlinkOAuth("twitter",c);return u(d),d},unlinkDiscord:async c=>{let d=await t.unlinkOAuth("discord",c);return u(d),d},unlinkGithub:async c=>{let d=await t.unlinkOAuth("github",c);return u(d),d},unlinkApple:async c=>{let d=await t.unlinkOAuth("apple",c);return u(d),d},setActiveWallet:async c=>{let d=h.find(g=>(0,Nr.getAddress)(g.address)===(0,Nr.getAddress)(c)),v=s==null?void 0:s.linkedAccounts.find(g=>g.type==="wallet"&&(0,Nr.getAddress)(g.address)===(0,Nr.getAddress)(c));if(!d||!await d.isConnected())O(c),Jo();else if(!d.linked)d.loginOrLink();else{let g=Object.assign({},s);g.wallet=v&&{address:v.address,chainType:v.chainType,chainId:v.chainId,walletClient:v.walletClient,walletClientType:v.walletClientType,connectorType:v.connectorType},u(g)}},forkSession:()=>t.forkSession(),createWallet:()=>new Promise((c,d)=>{if(!a||!s){d(new Error("User must be authenticated before creating a Privy wallet"));return}if(te(s)){d(new Error("Only one Privy wallet per user is currently allowed"));return}Y(!0),xe({createWallet:{onSuccess:c,onFailure:d,callAuthOnSuccessOnClose:!1}}),de("EMBEDDED_WALLET_SCREEN")}),signMessage:(c,d)=>new Promise((v,g)=>{if(!a||!s){g(new Error("User must be authenticated before signing with a Privy wallet"));return}if(!te(s)){g(new Error("Must have a Privy wallet before signing"));return}if(typeof c!="string"||c.length<1){g(new Error("Message must be a non-empty string"));return}Y(!0);let vo={message:c,onSuccess:v,onFailure:g,uiOptions:d||{}},ti={onCompleteNavigateTo:"EMBEDDED_WALLET_SIGN_REQUEST_SCREEN",onFailure:g};xe({signMessage:vo,connectWallet:ti}),de("EMBEDDED_WALLET_CONNECTING_SCREEN")}),sendTransaction:(c,d)=>new Promise(async(v,g)=>{if(!a||!s){g(new Error("User must be authenticated before signing with a Privy wallet"));return}if(!te(s)){g(new Error("Must have a Privy wallet before signing"));return}Y(!0);let vo={transactionRequest:c,onSuccess:v,onFailure:g,uiOptions:d||{}},ti={onCompleteNavigateTo:"EMBEDDED_WALLET_SEND_TRANSACTION_SCREEN",onFailure:g};xe({connectWallet:ti,sendTransaction:vo}),de("EMBEDDED_WALLET_CONNECTING_SCREEN")}),exportWallet:()=>new Promise((c,d)=>{if(!a||!s){d(new Error("User must be authenticated before exporting their Privy wallet"));return}if(!te(s)){d(new Error("Must have a Privy wallet before exporting"));return}Y(!0);let g={onCompleteNavigateTo:"EMBEDDED_WALLET_KEY_EXPORT_SCREEN",onFailure:d},le={appId:e.appId,origin:t.apiUrl,onSuccess:c,onFailure:d};xe({keyExport:le,connectWallet:g}),de("EMBEDDED_WALLET_CONNECTING_SCREEN")})};Oc=Xo.signMessage,Dc=Xo.sendTransaction;let go=(()=>({isNewUserThisSession:m,isLinking:S,linkingHint:R,walletConnectionStatus:x,getAuthFlow:()=>t.authFlow,getAuthMeta:()=>{var c;return(c=t.authFlow)==null?void 0:c.meta},closePrivyModal:(c={shouldCallAuthOnSuccess:!0})=>{var v;let d=n&&a&&s;c.shouldCallAuthOnSuccess&&d&&((v=e.onSuccess)==null||v.call(e,s,m)),t.authFlow=void 0,O(null),C(null),N(!1),f(!1),r(!1),t.createAnalyticsEvent("modal_closed")},connectWallet:fo,initLoginWithWallet:se,loginWithWallet:async()=>{if(!(t.authFlow instanceof eo))throw new A("Must initialize SIWE flow first.");let c,d;S?c=await t.link():{user:c,isNewUser:d}=await t.authenticate(),u(c||s||null),f(d||!1),l(!0)},initLoginWithOAuth:async c=>{t.startAuthFlow(new Ot(c));let d=await t.authFlow.getAuthorizationUrl();d&&d.url&&window.location.assign(d.url)},loginWithOAuth:async()=>{if(!(t.authFlow instanceof Ot))throw new A("Must initialize OAuth flow before calling loginWithOAuth");let c,d;n&&a?c=await t.link():{user:c,isNewUser:d}=await t.authenticate(),u(c),f(d||!1),l(!0)},initLoginWithEmail:async c=>{let d=new Xt(c);t.startAuthFlow(d),await d.sendCodeEmail()},initLoginWithSms:async c=>{let d=new to(c);t.startAuthFlow(d),await d.sendSmsCode()},resendEmailCode:async()=>{var c;await((c=t.authFlow)==null?void 0:c.sendCodeEmail())},resendSmsCode:async()=>{var c;await((c=t.authFlow)==null?void 0:c.sendSmsCode())},loginWithCode:async c=>{if(t.authFlow instanceof Xt)t.authFlow.meta.emailCode=c.trim();else if(t.authFlow instanceof to)t.authFlow.meta.smsCode=c.trim();else throw new A("Must initialize a passwordless code flow first");let d,v;S?d=await t.link():{user:d,isNewUser:v}=await t.authenticate(),u(d||s||null),f(v||!1),l(!0)},refreshUser:async()=>{let c=await t.getAuthenticatedUser();return u(c),c},walletProxy:L,createAnalyticsEvent:(c,d,v)=>t.createAnalyticsEvent(c,d,v),getUsdTokenPrice:c=>t.getUsdTokenPrice(c),recoverEmbeddedWallet:c=>new Promise((d,v)=>{if(!a||!s){v(new Error("User must be authenticated before recovering the Privy wallet"));return}let g=te(s);if(!g){v(new Error("Must have a Privy wallet in order to recover it"));return}Y(!0),xe({recoverWallet:{privyWallet:g,onCompleteNavigateTo:c,onFailure:v,onSuccess:d}}),de("EMBEDDED_WALLET_RECOVERY_SCREEN")})}))(),Bc=(0,H.useMemo)(()=>({wallets:h}),[h]);return(0,wt.jsx)(bi.Provider,{value:Xo,children:(0,wt.jsxs)(na.Provider,{value:Bc,children:[e.children,(0,wt.jsxs)(vi.Provider,{value:go,children:[(0,wt.jsx)(_c,{theme:{...V.appearance.palette||{}}}),(0,wt.jsx)(cs,{appConfig:V,data:ee,setModalData:xe,initialScreen:p,visible:o,authenticated:a,children:o&&(0,wt.jsx)(kc,{})}),F&&(0,wt.jsx)(Nc,{appId:e.appId,origin:t.apiUrl,onLoad:fe,onLoadFailed:()=>null})]})]})})};0&&(module.exports={AsExternalProvider,ConnectorManager,PrivyClient,PrivyProvider,PrivyProxyProvider,VERSION,WalletConnector,getAccessToken,usePrivy,useWallets});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@privy-io/react-auth",
3
- "version": "1.28.0-beta.5",
3
+ "version": "1.28.0-beta.7",
4
4
  "description": "React client for the Privy Auth API",
5
5
  "keywords": [
6
6
  "authentication",