@privy-io/react-auth 1.6.0-beta.17 → 1.6.0-beta.18
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/index.cjs.js +22 -22
- package/dist/index.esm.js +2 -2
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{useEffect as y2,useState as d1}from"react";import P2 from"axios";import $3 from"axios";var G=class extends Error{constructor(o,a){super(o);a instanceof Error&&(this.cause=a)}toString(){return`${this.type}: ${this.message}${this.cause?` [cause: ${this.cause}]`:""}`}},W1=class extends G{constructor(o,a,l,s){super(l,s);this.type=o;this.status=a}},m=class extends G{constructor(o,a){super(o,a);this.type="client_error"}};var F=class extends G{constructor(o,a){super(o,a);this.type="connector_error"}},N=i=>{if(i instanceof G)return i;if(!$3.isAxiosError(i))return j(i);if(!i.response)return new W1("api_error",null,i.message,i);let{type:e,message:o,error:a}=i.response.data;return new W1(e||"ApiError",i.response.status,o||a,i)},j=i=>i instanceof G?i:i instanceof Error?new m(i.message,i):new m(`Internal error: ${i}`);var d4="1.6.0-beta.17";var c4="https://api.privy.io/v0",p4=process.env.NEXT_PUBLIC_PRIVY_AUTH_URL||"https://auth.privy.io",E2="70f97dc579834350a5baec117b3c5ae3",h4=1e4,H=1200,A2=d4;var D1=class{constructor(e,o,a){this.appId=e,this.sdkVersion=A2,this.session=o,this.defaults=a}async get(e,o){try{return await P2.get(e,this.buildConfig({headers:{"Cache-Control":"no-cache"},...o}))}catch(a){throw N(a)}}async post(e,o,a){try{return await P2.post(e,o,this.buildConfig(a))}catch(l){throw N(l)}}async delete(e,o){try{return await P2.delete(e,this.buildConfig(o))}catch(a){throw N(a)}}buildConfig(e){return e=e||{},e.headers=e.headers||{},e.headers["privy-app-id"]=this.appId,e.headers["privy-client"]=`react-auth:${this.sdkVersion}`,this.session.token!==null&&(e.headers.authorization=`Bearer ${this.session.token}`),{...this.defaults,...e}}};import K3 from"jwt-decode";var c1=class{static parse(e){try{return new c1(e)}catch{return null}}constructor(e){this.value=e,this._decoded=K3(e)}get subject(){return this._decoded.sub}get expiration(){return this._decoded.exp}isExpired(e=0){let o=Date.now(),a=(this.expiration-e)*1e3;return o>=a}};var p1=class{constructor(e){this.promise=null;this.fn=e}execute(e){return this.promise===null&&(this.promise=(async()=>{try{return await this.fn(e)}finally{this.promise=null}})()),this.promise}};var _2=class{constructor(){this._cache={}}get(e){return this._cache[e]}put(e,o){o!==void 0?this._cache[e]=o:this.del(e)}del(e){delete this._cache[e]}},T2=class{get(e){let o=localStorage.getItem(e);return o===null?void 0:JSON.parse(o)}put(e,o){o!==void 0?localStorage.setItem(e,JSON.stringify(o)):this.del(e)}del(e){localStorage.removeItem(e)}};function Y3(){return typeof window<"u"&&window.localStorage?new T2:new _2}var V=Y3();var J3=i=>{var e;return(e=i.map(o=>{if(o.type==="wallet")return{address:o.address,type:o.type,verifiedAt:new Date(o.verified_at*1e3),chainType:o.chain_type}}).filter(o=>o))==null?void 0:e[0]},X3=i=>{var e;return(e=i.map(o=>{if(o.type==="email")return{address:o.address,type:o.type,verifiedAt:new Date(o.verified_at*1e3)}}).filter(o=>o))==null?void 0:e[0]},Q3=i=>{var e;return(e=i.map(o=>{if(o.type==="phone")return{number:o.phoneNumber,type:o.type,verifiedAt:new Date(o.verified_at*1e3)}}).filter(o=>o))==null?void 0:e[0]},t5=i=>{var e;return(e=i.map(o=>{if(o.type==="google_oauth")return{subject:o.subject,email:o.email,name:o.name,type:o.type,verifiedAt:new Date(o.verified_at*1e3)}}).filter(o=>o))==null?void 0:e[0]},e5=i=>{var e;return(e=i.map(o=>{if(o.type==="twitter_oauth")return{subject:o.subject,username:o.username,name:o.name,type:o.type,verifiedAt:new Date(o.verified_at*1e3)}}).filter(o=>o))==null?void 0:e[0]},i5=i=>{var e;return(e=i.map(o=>{if(o.type==="discord_oauth")return{subject:o.subject,username:o.username,email:o.email,type:o.type,verifiedAt:new Date(o.verified_at*1e3)}}).filter(o=>o))==null?void 0:e[0]};function X(i){if(!i)return null;let e=X3(i.linked_accounts),o=Q3(i.linked_accounts),a=J3(i.linked_accounts),l=t5(i.linked_accounts),s=e5(i.linked_accounts),d=i5(i.linked_accounts);return{id:i.id,createdAt:new Date(i.created_at*1e3),linkedAccounts:[...a?[a]:[],...e?[e]:[],...o?[o]:[],...l?[l]:[],...s?[s]:[],...d?[d]:[]],email:e&&{address:e==null?void 0:e.address},phone:o&&{number:o==null?void 0:o.number},wallet:a&&{address:a.address,chainType:a.chainType,chainId:a.chainId,walletType:a.walletType},google:l&&{subject:l.subject,email:l.email,name:l.name},twitter:s&&{subject:s.subject,username:s.username,name:s.name},discord:d&&{subject:d.subject,username:d.username,email:d.email}}}var f4=()=>"/api/v1/sessions",u4=()=>"/api/v1/sessions/logout",m4=()=>"/api/v1/siwe/init",b4=()=>"/api/v1/siwe/authenticate",k4=()=>"/api/v1/passwordless/init",g4=()=>"/api/v1/passwordless/authenticate",M4=()=>"/api/v1/passwordless_sms/init",w4=()=>"/api/v1/passwordless_sms/authenticate",y4=()=>"/api/v1/oauth/init",v4=()=>"/api/v1/oauth/authenticate",Z4=()=>"/api/v1/siwe/unlink",L4=()=>"/api/v1/passwordless/unlink",x4=()=>"/api/v1/passwordless_sms/unlink",E4=()=>"/api/v1/oauth/unlink";var o5=30,S2="privy:token",I2="privy:refresh_token",U1=class{constructor(){this.authenticateOnce=new p1(async e=>this._authenticate(e)),this.refreshOnce=new p1(this._refresh.bind(this)),this.destroyOnce=new p1(this._destroy.bind(this))}get token(){let e=V.get(S2);return typeof e=="string"?e:null}get refreshToken(){let e=V.get(I2);return typeof e=="string"?e:null}hasRefreshCredentials(){return typeof this.token=="string"&&typeof this.refreshToken=="string"}hasActiveToken(){let e=c1.parse(this.token);return e!==null&&!e.isExpired(o5)}authenticate(e){return this.authenticateOnce.execute(e)}refresh(){return this.refreshOnce.execute()}destroy(){return this.destroyOnce.execute()}async _authenticate(e){try{let{token:o,refresh_token:a,user:l}=await e.authenticate();return o&&this.storeToken(o),a&&this.storeRefreshToken(a),X(l)}catch(o){throw console.warn("Error authenticating session"),j(o)}}async _refresh(){if(!this.api)throw new m("Session has no API instance");let e=this.token,o=this.refreshToken;if(!e||!o)return null;try{let a=await this.api.post(f4(),{refresh_token:o});return this.storeToken(a.data.token),this.storeRefreshToken(a.data.refresh_token),X(a.data.user)}catch(a){throw j(a)}}async _destroy(){var e;try{await((e=this.api)==null?void 0:e.post(u4(),{})),this.destroyLocalState()}catch(o){throw console.warn("Error destroying session"),j(o)}}destroyLocalState(){this.storeToken(null),this.storeRefreshToken(null)}storeToken(e){typeof e=="string"?V.put(S2,e):V.del(S2)}storeRefreshToken(e){typeof e=="string"?V.put(I2,e):V.del(I2)}};import{getAddress as C5}from"@ethersproject/address";import P4 from"@walletconnect/web3-provider";import{ethers as a5}from"ethers";var h1=class extends F{constructor(){super("Wallet timeout");this.type="wallet_error"}},F1=i=>{if(i instanceof F)return i;if((i==null?void 0:i.code)&&(i==null?void 0:i.reason)){let e=new f1(i);return i.code===a5.errors.ACTION_REJECTED&&(e.details=i1.E4001_USER_REJECTED_REQUEST),e}return i!=null&&i.code?new f1(i):new F("Unknown connector error",i)},O2=class extends G{constructor(o,a,l){super(o);this.type="provider_error";this.code=a,this.data=l}},f1=class extends O2{constructor(o){var s,d,u;let a=o;super(a.message,a.code,a.data);let l=Object.values(i1).find(k=>k.eipCode===a.code);this.details=l||i1.UNKNOWN_ERROR,a.code===-32002&&((s=a.message)!=null&&s.includes("already pending for origin")?(d=a.message)!=null&&d.includes("wallet_requestPermissions")?this.details=i1.E32002_CONNECTION_ALREADY_PENDING:this.details=i1.E32002_REQUEST_ALREADY_PENDING:(u=a.message)!=null&&u.includes("Already processing")&&a.message.includes("eth_requestAccounts")&&(this.details=i1.E32002_WALLET_LOCKED))}},l5={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}},r5={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}},n5={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}},i1={UNKNOWN_ERROR:{eipCode:0,message:"Unknown error",detail:"Unknown error",retryable:!0},...n5,...r5},H1={...l5,...i1};var s5=3e4,N2=(i=new h1,e=s5)=>new Promise((o,a)=>setTimeout(()=>{a(i)},e)),u1=class{constructor(e){this.removeListener=(e,o)=>{if(this.walletProvider)return this.walletProvider.removeListener(e,o)};this.setProvider=e=>{this.walletProvider=e,this._subscriptions.forEach(o=>{var a;(a=this.walletProvider)==null||a.on(o.eventName,o.listener)})};this.walletProvider=e,this._subscriptions=[]}on(e,o){if(this.walletProvider)return this.walletProvider.on(e,o);this._subscriptions.push({eventName:e,listener:o})}request(e){if(!this.walletProvider)throw new F(`A wallet request of type ${e.method} was made to a disconnected wallet: `);return Promise.race([this.walletProvider.request(e),N2()]).catch(o=>{throw F1(o)})}},m1=class extends u1{constructor(o){super(o)}},V1=class extends u1{constructor(e){super(e)}sendAsync(e,o){throw new Error("sendAsync is no longer supported by EIP-1193. Use the request method instead.")}};import{providers as d5}from"ethers";var A4=["metamask","coinbase_wallet","wallet_connect"];var R2="privy:wallet_type",c5="walletconnect",W2=()=>{if(!window.ethereum)return!1;if(window.ethereum.isMetaMask)return!0;if(window.ethereum.providers){for(let i of window.ethereum.providers)if(i.isMetaMask)return!0}return!1},D2=()=>{if(!window.ethereum)return!1;if(window.ethereum.isCoinbaseWallet)return!0;if(window.ethereum.providers){for(let i of window.ethereum.providers)if(i.isCoinbaseWallet)return!0}return!1},B1=class{constructor(){this.walletType=null;this.getEthereumProvider=()=>this.ethProvider;this.createSiweMessage=(e,o,a,l,s,d,u)=>`${a} wants you to sign in with your Ethereum account:
|
|
1
|
+
import{useEffect as y2,useState as d1}from"react";import P2 from"axios";import $3 from"axios";var G=class extends Error{constructor(o,a){super(o);a instanceof Error&&(this.cause=a)}toString(){return`${this.type}: ${this.message}${this.cause?` [cause: ${this.cause}]`:""}`}},W1=class extends G{constructor(o,a,l,s){super(l,s);this.type=o;this.status=a}},m=class extends G{constructor(o,a){super(o,a);this.type="client_error"}};var F=class extends G{constructor(o,a){super(o,a);this.type="connector_error"}},N=i=>{if(i instanceof G)return i;if(!$3.isAxiosError(i))return j(i);if(!i.response)return new W1("api_error",null,i.message,i);let{type:e,message:o,error:a}=i.response.data;return new W1(e||"ApiError",i.response.status,o||a,i)},j=i=>i instanceof G?i:i instanceof Error?new m(i.message,i):new m(`Internal error: ${i}`);var d4="1.6.0-beta.18";var c4="https://api.privy.io/v0",p4=process.env.NEXT_PUBLIC_PRIVY_AUTH_URL||"https://auth.privy.io",E2="70f97dc579834350a5baec117b3c5ae3",h4=1e4,H=1200,A2=d4;var D1=class{constructor(e,o,a){this.appId=e,this.sdkVersion=A2,this.session=o,this.defaults=a}async get(e,o){try{return await P2.get(e,this.buildConfig({headers:{"Cache-Control":"no-cache"},...o}))}catch(a){throw N(a)}}async post(e,o,a){try{return await P2.post(e,o,this.buildConfig(a))}catch(l){throw N(l)}}async delete(e,o){try{return await P2.delete(e,this.buildConfig(o))}catch(a){throw N(a)}}buildConfig(e){return e=e||{},e.headers=e.headers||{},e.headers["privy-app-id"]=this.appId,e.headers["privy-client"]=`react-auth:${this.sdkVersion}`,this.session.token!==null&&(e.headers.authorization=`Bearer ${this.session.token}`),{...this.defaults,...e}}};import K3 from"jwt-decode";var c1=class{static parse(e){try{return new c1(e)}catch{return null}}constructor(e){this.value=e,this._decoded=K3(e)}get subject(){return this._decoded.sub}get expiration(){return this._decoded.exp}isExpired(e=0){let o=Date.now(),a=(this.expiration-e)*1e3;return o>=a}};var p1=class{constructor(e){this.promise=null;this.fn=e}execute(e){return this.promise===null&&(this.promise=(async()=>{try{return await this.fn(e)}finally{this.promise=null}})()),this.promise}};var _2=class{constructor(){this._cache={}}get(e){return this._cache[e]}put(e,o){o!==void 0?this._cache[e]=o:this.del(e)}del(e){delete this._cache[e]}},T2=class{get(e){let o=localStorage.getItem(e);return o===null?void 0:JSON.parse(o)}put(e,o){o!==void 0?localStorage.setItem(e,JSON.stringify(o)):this.del(e)}del(e){localStorage.removeItem(e)}};function Y3(){return typeof window<"u"&&window.localStorage?new T2:new _2}var V=Y3();var J3=i=>{var e;return(e=i.map(o=>{if(o.type==="wallet")return{address:o.address,type:o.type,verifiedAt:new Date(o.verified_at*1e3),chainType:o.chain_type}}).filter(o=>o))==null?void 0:e[0]},X3=i=>{var e;return(e=i.map(o=>{if(o.type==="email")return{address:o.address,type:o.type,verifiedAt:new Date(o.verified_at*1e3)}}).filter(o=>o))==null?void 0:e[0]},Q3=i=>{var e;return(e=i.map(o=>{if(o.type==="phone")return{number:o.phoneNumber,type:o.type,verifiedAt:new Date(o.verified_at*1e3)}}).filter(o=>o))==null?void 0:e[0]},t5=i=>{var e;return(e=i.map(o=>{if(o.type==="google_oauth")return{subject:o.subject,email:o.email,name:o.name,type:o.type,verifiedAt:new Date(o.verified_at*1e3)}}).filter(o=>o))==null?void 0:e[0]},e5=i=>{var e;return(e=i.map(o=>{if(o.type==="twitter_oauth")return{subject:o.subject,username:o.username,name:o.name,type:o.type,verifiedAt:new Date(o.verified_at*1e3)}}).filter(o=>o))==null?void 0:e[0]},i5=i=>{var e;return(e=i.map(o=>{if(o.type==="discord_oauth")return{subject:o.subject,username:o.username,email:o.email,type:o.type,verifiedAt:new Date(o.verified_at*1e3)}}).filter(o=>o))==null?void 0:e[0]};function X(i){if(!i)return null;let e=X3(i.linked_accounts),o=Q3(i.linked_accounts),a=J3(i.linked_accounts),l=t5(i.linked_accounts),s=e5(i.linked_accounts),d=i5(i.linked_accounts);return{id:i.id,createdAt:new Date(i.created_at*1e3),linkedAccounts:[...a?[a]:[],...e?[e]:[],...o?[o]:[],...l?[l]:[],...s?[s]:[],...d?[d]:[]],email:e&&{address:e==null?void 0:e.address},phone:o&&{number:o==null?void 0:o.number},wallet:a&&{address:a.address,chainType:a.chainType,chainId:a.chainId,walletType:a.walletType},google:l&&{subject:l.subject,email:l.email,name:l.name},twitter:s&&{subject:s.subject,username:s.username,name:s.name},discord:d&&{subject:d.subject,username:d.username,email:d.email}}}var f4=()=>"/api/v1/sessions",u4=()=>"/api/v1/sessions/logout",m4=()=>"/api/v1/siwe/init",b4=()=>"/api/v1/siwe/authenticate",k4=()=>"/api/v1/passwordless/init",g4=()=>"/api/v1/passwordless/authenticate",M4=()=>"/api/v1/passwordless_sms/init",w4=()=>"/api/v1/passwordless_sms/authenticate",y4=()=>"/api/v1/oauth/init",v4=()=>"/api/v1/oauth/authenticate",Z4=()=>"/api/v1/siwe/unlink",L4=()=>"/api/v1/passwordless/unlink",x4=()=>"/api/v1/passwordless_sms/unlink",E4=()=>"/api/v1/oauth/unlink";var o5=30,S2="privy:token",I2="privy:refresh_token",U1=class{constructor(){this.authenticateOnce=new p1(async e=>this._authenticate(e)),this.refreshOnce=new p1(this._refresh.bind(this)),this.destroyOnce=new p1(this._destroy.bind(this))}get token(){let e=V.get(S2);return typeof e=="string"?e:null}get refreshToken(){let e=V.get(I2);return typeof e=="string"?e:null}hasRefreshCredentials(){return typeof this.token=="string"&&typeof this.refreshToken=="string"}hasActiveToken(){let e=c1.parse(this.token);return e!==null&&!e.isExpired(o5)}authenticate(e){return this.authenticateOnce.execute(e)}refresh(){return this.refreshOnce.execute()}destroy(){return this.destroyOnce.execute()}async _authenticate(e){try{let{token:o,refresh_token:a,user:l}=await e.authenticate();return o&&this.storeToken(o),a&&this.storeRefreshToken(a),X(l)}catch(o){throw console.warn("Error authenticating session"),j(o)}}async _refresh(){if(!this.api)throw new m("Session has no API instance");let e=this.token,o=this.refreshToken;if(!e||!o)return null;try{let a=await this.api.post(f4(),{refresh_token:o});return this.storeToken(a.data.token),this.storeRefreshToken(a.data.refresh_token),X(a.data.user)}catch(a){throw j(a)}}async _destroy(){var e;try{await((e=this.api)==null?void 0:e.post(u4(),{})),this.destroyLocalState()}catch(o){throw console.warn("Error destroying session"),j(o)}}destroyLocalState(){this.storeToken(null),this.storeRefreshToken(null)}storeToken(e){typeof e=="string"?V.put(S2,e):V.del(S2)}storeRefreshToken(e){typeof e=="string"?V.put(I2,e):V.del(I2)}};import{getAddress as C5}from"@ethersproject/address";import P4 from"@walletconnect/web3-provider";import{ethers as a5}from"ethers";var h1=class extends F{constructor(){super("Wallet timeout");this.type="wallet_error"}},F1=i=>{if(i instanceof F)return i;if((i==null?void 0:i.code)&&(i==null?void 0:i.reason)){let e=new f1(i);return i.code===a5.errors.ACTION_REJECTED&&(e.details=i1.E4001_USER_REJECTED_REQUEST),e}return i!=null&&i.code?new f1(i):new F("Unknown connector error",i)},O2=class extends G{constructor(o,a,l){super(o);this.type="provider_error";this.code=a,this.data=l}},f1=class extends O2{constructor(o){var s,d,u;let a=o;super(a.message,a.code,a.data);let l=Object.values(i1).find(k=>k.eipCode===a.code);this.details=l||i1.UNKNOWN_ERROR,a.code===-32002&&((s=a.message)!=null&&s.includes("already pending for origin")?(d=a.message)!=null&&d.includes("wallet_requestPermissions")?this.details=i1.E32002_CONNECTION_ALREADY_PENDING:this.details=i1.E32002_REQUEST_ALREADY_PENDING:(u=a.message)!=null&&u.includes("Already processing")&&a.message.includes("eth_requestAccounts")&&(this.details=i1.E32002_WALLET_LOCKED))}},l5={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}},r5={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}},n5={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}},i1={UNKNOWN_ERROR:{eipCode:0,message:"Unknown error",detail:"Unknown error",retryable:!0},...n5,...r5},H1={...l5,...i1};var s5=3e4,N2=(i=new h1,e=s5)=>new Promise((o,a)=>setTimeout(()=>{a(i)},e)),u1=class{constructor(e){this.removeListener=(e,o)=>{if(this.walletProvider)return this.walletProvider.removeListener(e,o)};this.setProvider=e=>{this.walletProvider=e,this._subscriptions.forEach(o=>{var a;(a=this.walletProvider)==null||a.on(o.eventName,o.listener)})};this.walletProvider=e,this._subscriptions=[]}on(e,o){if(this.walletProvider)return this.walletProvider.on(e,o);this._subscriptions.push({eventName:e,listener:o})}request(e){if(!this.walletProvider)throw new F(`A wallet request of type ${e.method} was made to a disconnected wallet: `);return Promise.race([this.walletProvider.request(e),N2()]).catch(o=>{throw F1(o)})}},m1=class extends u1{constructor(o){super(o)}},V1=class extends u1{constructor(e){super(e)}sendAsync(e,o){throw new Error("sendAsync is no longer supported by EIP-1193. Use the request method instead.")}};import{providers as d5}from"ethers";var A4=["metamask","coinbase_wallet","wallet_connect"];var R2="privy:wallet_type",c5="walletconnect",W2=()=>{if(!window.ethereum)return!1;if(window.ethereum.isMetaMask)return!0;if(window.ethereum.providers){for(let i of window.ethereum.providers)if(i.isMetaMask)return!0}return!1},D2=()=>{if(!window.ethereum)return!1;if(window.ethereum.isCoinbaseWallet)return!0;if(window.ethereum.providers){for(let i of window.ethereum.providers)if(i.isCoinbaseWallet)return!0}return!1},B1=class{constructor(){this.walletType=null;this.getEthereumProvider=()=>this.ethProvider;this.createSiweMessage=(e,o,a,l,s,d,u)=>`${a} wants you to sign in with your Ethereum account:
|
|
2
2
|
${o}
|
|
3
3
|
|
|
4
4
|
${u}
|
|
@@ -1147,7 +1147,7 @@ Resources:
|
|
|
1147
1147
|
display: none;
|
|
1148
1148
|
}
|
|
1149
1149
|
}
|
|
1150
|
-
`;import{useEffect as r7}from"react";import{useEffect as D3,useState as U3}from"react";import w2 from"styled-components";import{Fragment as a7,jsx as C1,jsxs as M2}from"react/jsx-runtime";var F3={google:{name:"Google",component:t2},discord:{name:"Discord",component:X1},twitter:{name:"Twitter",component:J1}},H3=()=>{let i=new URL(window.location.href);i.searchParams.delete("privy_oauth_code"),i.searchParams.delete("privy_oauth_provider"),i.searchParams.delete("privy_oauth_state"),window.history.pushState({},"",i)},V3=()=>{var S;let[i,e]=U3(!1),[o,a]=U3(void 0),{navigate:l,options:s}=h(),{getAuthMeta:d,initLoginWithOAuth:u,loginWithOAuth:k,closePrivyModal:b}=y(),{user:g}=v(),T=s.wallet,C=((S=d())==null?void 0:S.provider)||"google",w=F3[C].name,O=F3[C].component;D3(()=>{k().then(()=>{H3(),e(!0)}).catch(r=>{let n={retryable:!1,message:"OAuth authentication failed."};r.message.includes("Another user has already linked this")?n.detail="This account has already been linked to another user.":r.message==="Invalid code during oauth flow."&&(n.retryable=!0,n.detail="The OAuth flow code was wrong. Try again."),a(n)})},[g]),D3(()=>{var W;if(!i
|
|
1150
|
+
`;import{useEffect as r7}from"react";import{useEffect as D3,useState as U3}from"react";import w2 from"styled-components";import{Fragment as a7,jsx as C1,jsxs as M2}from"react/jsx-runtime";var F3={google:{name:"Google",component:t2},discord:{name:"Discord",component:X1},twitter:{name:"Twitter",component:J1}},H3=()=>{let i=new URL(window.location.href);i.searchParams.delete("privy_oauth_code"),i.searchParams.delete("privy_oauth_provider"),i.searchParams.delete("privy_oauth_state"),window.history.pushState({},"",i)},V3=()=>{var S;let[i,e]=U3(!1),[o,a]=U3(void 0),{navigate:l,options:s}=h(),{getAuthMeta:d,initLoginWithOAuth:u,loginWithOAuth:k,closePrivyModal:b}=y(),{user:g}=v(),T=s.wallet,C=((S=d())==null?void 0:S.provider)||"google",w=F3[C].name,O=F3[C].component;D3(()=>{k().then(()=>{H3(),e(!0)}).catch(r=>{let n={retryable:!1,message:"OAuth authentication failed."};r.message.includes("Another user has already linked this")?n.detail="This account has already been linked to another user.":r.message==="Invalid code during oauth flow."&&(n.retryable=!0,n.detail="The OAuth flow code was wrong. Try again."),a(n)})},[g]),D3(()=>{var W;if(!i)return;let r=!!((W=g==null?void 0:g.wallet)!=null&&W.address),n=setTimeout(()=>{T&&!r?l("CONNECT_WALLET_OPTIONAL"):b()},H);return()=>clearTimeout(n)},[i,g]);let M=i?`Successfully connected with ${w}`:o?o.message:`Verifying connection to ${w}`,R="";return i?R="You\u2019re good to go!":o?R=o.detail:R="Just a few moments more",M2(a7,{children:[C1(j1,{}),M2(t7,{children:[C1(i7,{children:M2("div",{children:[C1(i2,{success:i,fail:!!o}),C1(O,{style:{width:"38px",height:"38px"},logoFill:"primary"})]})}),M2(e7,{children:[C1("h3",{children:M}),C1("p",{children:R})]}),C1(o7,{onClick:()=>{H3(),u(C),a(void 0)},visible:!i&&(o==null?void 0:o.retryable),disabled:!i&&!(o!=null&&o.retryable),children:"Retry"})]})]})},t7=w2.div`
|
|
1151
1151
|
display: flex;
|
|
1152
1152
|
flex-direction: column;
|
|
1153
1153
|
align-items: center;
|