@privy-io/js-sdk-core 0.55.3 → 0.55.4

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@privy-io/chains"),r=require("../Error.js"),t=require("../embedded/EmbeddedBitcoinWalletProvider.js"),o=require("../embedded/errors.js"),i=require("../embedded/stack/walletCreate.js"),d=require("../embedded/utils/index.js"),a=require("../wallet-api/unified-wallet.js"),s=require("../embedded/EmbeddedWalletProxy.js"),n=require("../embedded/EmbeddedWalletProvider.js"),l=require("../embedded/EmbeddedSolanaWalletProvider.js");require("../embedded/types.js"),require("../wallet-api/create.js"),require("@privy-io/public-api"),require("viem"),require("../utils/sleep.js"),require("../embedded/EventCallbackQueue.js"),require("../embedded/withMfa.js"),require("eventemitter3"),require("@privy-io/ethereum"),require("../embedded/methods.js"),require("../embedded/stack/walletRpc.js"),require("../utils/encodings.js"),require("../wallet-api/rpc.js"),require("../wallet-api/generate-authorization-signature.js"),require("canonicalize"),require("../embedded/stack/wallet-api-eth-transaction.js"),require("../embedded/stack/wallet-api-eth-typed-data.js"),require("../solana/getWalletPublicKeyFromTransaction.js"),require("../solana/isVersionedTransaction.js");exports.default=class{setMessagePoster(e){this._proxy=new s.EmbeddedWalletProxy(e,this._mfaPromises),this._mfa.setProxy(this._proxy)}async signWithUserSigner(e){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");let t=await this._privyInternal.getAccessToken();if(!t)throw new r.PrivyClientError({error:"User must be logged in to sign a message with the user signer",code:"user_signer_sign_error"});let{signature:o}=await this._proxy.signWithUserSigner({accessToken:t,message:e.message});return{signature:o}}async add(e){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if("user-controlled-server-wallets-only"===this._privyInternal.config?.embedded_wallet_config.mode)await i.walletCreate({context:{app:this._appApi,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e)},chainType:e.chainType});else{let t=await this._privyInternal.getAccessToken();if(!t)throw new r.PrivyClientError({error:"User must be logged in to create an embedded wallet",code:"embedded_wallet_creation_error"});await this._proxy.addWallet({accessToken:t,...e})}let{user:t}=await this._privyInternal.refreshSession();return{user:t}}async getBitcoinProvider({wallet:e,entropyId:r,entropyIdVerifier:o,recoveryPassword:i,recoveryAccessToken:d,recoverySecretOverride:s}){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if(!await this._privyInternal.getAccessToken())throw Error("User must be logged in to create an embedded wallet");return a.isUnifiedWallet(e)||await this._load({entropyId:r,entropyIdVerifier:o,wallet:e,recoveryPassword:i,recoveryAccessToken:d,recoverySecretOverride:s}),new t.EmbeddedBitcoinWalletProvider({account:e,privyInternal:this._privyInternal,proxy:this._proxy,entropyId:r,entropyIdVerifier:o})}async create({password:e,recoveryMethod:t,recoveryToken:o,recoveryKey:d,recoverySecretOverride:a,iCloudRecordNameOverride:s,solanaAccount:n,skipCallbacks:l}){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if("user-controlled-server-wallets-only"===this._privyInternal.config?.embedded_wallet_config.mode){if(t&&!t.startsWith("privy"))throw new r.PrivyClientError({error:"User-controlled server wallets do not support custom recovery methods",code:"embedded_wallet_creation_error"});await i.walletCreate({context:{app:this._appApi,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e)},chainType:"ethereum"})}else{let r;if(r=t||(e?"user-passcode":"privy"),e&&"string"!=typeof e)throw Error("Invalid recovery password, must be a string");if("privy"===r&&this._privyInternal.config?.embedded_wallet_config.require_user_password_on_create)throw Error("Password not provided yet is required by App configuration");let i=await this._privyInternal.getAccessToken();if(!i)throw Error("User must be logged in to create an embedded wallet");let{address:l}=await this._proxy.create({accessToken:i,recoveryMethod:r,recoveryKey:d,recoveryPassword:e,recoveryAccessToken:o,recoverySecretOverride:a,iCloudRecordNameOverride:s,solanaAddress:n?.address});if(!l)throw Error("Failed to create wallet")}return await this._privyInternal.refreshSession(l)}async createSolana(e){if(!this._proxy)throw new r.PrivyClientError({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_creation_error"});if("user-controlled-server-wallets-only"===this._privyInternal.config?.embedded_wallet_config.mode)await i.walletCreate({context:{app:this._appApi,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e)},chainType:"solana"});else{let t=await this._privyInternal.getAccessToken();if(!t)throw new r.PrivyClientError({error:"User must be logged in to create an embedded wallet",code:"embedded_wallet_creation_error"});e?.ethereumAccount&&await this.getProvider(e.ethereumAccount);let{publicKey:o}=await this._proxy.createSolana({accessToken:t,ethereumAddress:e?.ethereumAccount?.address});if(!o)throw new r.PrivyClientError({error:"Failed to create wallet",code:"embedded_wallet_creation_error"})}return await this._privyInternal.refreshSession()}async delegateWallets({delegatedWallets:e,rootWallet:t}){if(!this._proxy)throw new r.PrivyClientError({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_creation_error"});let o=await this._privyInternal.getAccessToken();if(!o)throw new r.PrivyClientError({error:"User must be logged in to create an embedded wallet",code:"embedded_wallet_creation_error"});await this._proxy.delegateWallets({accessToken:o,delegatedWallets:e,rootWallet:t})}async getProvider(e,r,t,o,i){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");return a.isUnifiedWallet(e)||await this._load({wallet:e,entropyId:e.address,entropyIdVerifier:"ethereum-address-verifier",recoveryPassword:r,recoveryKey:i,recoveryAccessToken:t,recoverySecretOverride:o}),new n.EmbeddedWalletProvider({account:e,entropyId:e.address,entropyIdVerifier:"ethereum-address-verifier",privyInternal:this._privyInternal,chains:this._chains,walletProxy:this._proxy,appApi:this._appApi})}async getEthereumProvider({wallet:e,entropyId:r,entropyIdVerifier:t,recoveryPassword:o,recoveryAccessToken:i,recoverySecretOverride:d,recoveryKey:s,onNeedsRecovery:l}){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if(!await this._privyInternal.getAccessToken())throw Error("User must be logged in to create an embedded wallet");return a.isUnifiedWallet(e)||(!l||o||i||d||s)&&await this._load({entropyId:r,entropyIdVerifier:t,wallet:e,recoveryPassword:o,recoveryAccessToken:i,recoverySecretOverride:d,recoveryKey:s}),new n.EmbeddedWalletProvider({account:e,entropyId:r,entropyIdVerifier:"ethereum-address-verifier",privyInternal:this._privyInternal,chains:this._chains,walletProxy:this._proxy,onNeedsRecovery:l,appApi:this._appApi})}async getSolanaProvider(e,t,o,i,d,s,n){if(!this._proxy)throw new r.PrivyClientError({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});return a.isUnifiedWallet(e)||(!n||i||d||s)&&await this._load({wallet:e,entropyId:t,entropyIdVerifier:o,recoveryPassword:i,recoveryAccessToken:d,recoverySecretOverride:s}),new l.EmbeddedSolanaWalletProvider({account:e,privyInternal:this._privyInternal,proxy:this._proxy,entropyId:t,entropyIdVerifier:o,onNeedsRecovery:n,app:this._appApi})}async setRecovery(e){let{wallet:t,...o}=e;if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if(a.isUnifiedWallet(t))throw new r.PrivyClientError({error:"This wallet does not support setting recovery methods",code:"unsupported_recovery_method"});d.throwIfInvalidRecoveryUpgradePath({currentRecoveryMethod:t.recovery_method,upgradeToRecoveryMethod:"icloud-native"===o.recoveryMethod?"icloud":o.recoveryMethod}),await this._load("solana"===t.chain_type?{wallet:t,entropyId:t.address,entropyIdVerifier:"solana-address-verifier"}:{wallet:t,entropyId:t.address,entropyIdVerifier:"ethereum-address-verifier"});let i=await this._privyInternal.getAccessToken();if(!i)throw Error("User must be logged in to interact with embedded wallets");let s=t.recovery_method;this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_set_recovery_started",{address:t.address,target_recovery_method:o.recoveryMethod,existing_recovery_method:s});try{let e;if("user-passcode"===o.recoveryMethod)e={recoveryMethod:"user-passcode",recoveryPassword:o.password};else if("google-drive"===o.recoveryMethod)e={recoveryMethod:"google-drive",recoveryAccessToken:o.recoveryAccessToken};else if("icloud"===o.recoveryMethod)e={recoveryMethod:"icloud",recoveryAccessToken:o.recoveryAccessToken};else if("icloud-native"===o.recoveryMethod)e={recoveryMethod:"icloud-native",iCloudRecordNameOverride:o.iCloudRecordNameOverride,recoverySecretOverride:o.recoverySecretOverride};else if("recovery-encryption-key"===o.recoveryMethod)e={recoveryMethod:"recovery-encryption-key",recoveryKey:o.recoveryKey};else{if("privy"!==o.recoveryMethod)throw Error(`Unknown recovery method: ${o.recoveryMethod}`);e={recoveryMethod:"privy"}}await this._proxy.setRecovery({accessToken:i,entropyId:t.address,entropyIdVerifier:"solana"===t.chain_type?"solana-address-verifier":"ethereum-address-verifier",...e}),this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_set_recovery_completed",{address:t.address,target_recovery_method:o.recoveryMethod,existing_recovery_method:s});let{user:r}=await this._privyInternal.refreshSession();return{user:r,provider:"ethereum"!==t.chain_type?null:new n.EmbeddedWalletProvider({account:t,entropyId:t.address,entropyIdVerifier:"ethereum-address-verifier",privyInternal:this._privyInternal,chains:this._chains,walletProxy:this._proxy,appApi:this._appApi})}}catch(e){throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_set_recovery_failed",{address:t.address,recovery_method:t.recovery_method,error:e instanceof Error?e.message:"Unable to recover wallet"}),e}}getURL(){let e=new URL(`${this._privyInternal.baseUrl}/apps/${this._privyInternal.appId}/embedded-wallets`);return this._privyInternal.caid&&e.searchParams.append("caid",this._privyInternal.caid),this._privyInternal.appClientId&&e.searchParams.append("client_id",this._privyInternal.appClientId),e.href}get chains(){return this._chains}onMessage(e){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");return this._proxy.handleEmbeddedWalletMessages(e)}reload(){this._proxy?this._proxy.reload():console.warn("Attempted to reload proxy before initialized")}async ping(e){try{if(!this._proxy)throw Error("Embedded wallet proxy not initialized");return await this._proxy.ping(e),!0}catch(e){return console.error(e),!1}}async _load({entropyId:e,entropyIdVerifier:r,wallet:t,recoveryPassword:i,recoveryKey:d,recoveryAccessToken:a,recoverySecretOverride:s}){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");let n=await this._privyInternal.getAccessToken();if(!n)throw Error("User must be logged in to interact with embedded wallets");try{return await this._proxy.connect({accessToken:n,entropyId:e,entropyIdVerifier:r}),e}catch(l){if(o.errorIndicatesRecoveryIsNeeded(l))try{if("privy"===t.recovery_method){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:t.recovery_method});let o=await this._proxy.recover({accessToken:n,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:t.recovery_method}),o.entropyId}if("user-passcode"===t.recovery_method&&i){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:t.recovery_method});let o=await this._proxy.recover({accessToken:n,recoveryPassword:i,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:t.recovery_method}),o.entropyId}if(["google-drive","icloud"].includes(t.recovery_method)&&a){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:t.recovery_method});let o=await this._proxy.recover({accessToken:n,recoveryAccessToken:a,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:t.recovery_method}),o.entropyId}if("icloud"===t.recovery_method&&s){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:"icloud-native"});let o=await this._proxy.recover({accessToken:n,recoverySecretOverride:s,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:"icloud-native"}),o.entropyId}if("recovery-encryption-key"===t.recovery_method&&d){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:t.recovery_method});let o=await this._proxy.recover({accessToken:n,recoveryKey:d,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:t.recovery_method}),o.entropyId}}catch(r){throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_failed",{address:t.address,recovery_method:t.recovery_method,error:r instanceof Error?r.message:`Unable to recover wallet: ${e}`}),r}throw l}}constructor(r,t,o,i,d,a){if(this._chains=Array.from(e.DEFAULT_SUPPORTED_CHAINS),this._privyInternal=r,t&&(this._proxy=new s.EmbeddedWalletProxy(t,d),i.setProxy(this._proxy)),o){let r=e.dedupeSupportedChains(o);this._chains=r}this._mfa=i,this._mfaPromises=d,this._appApi=a}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@privy-io/chains"),r=require("../Error.js"),t=require("../embedded/EmbeddedBitcoinWalletProvider.js"),o=require("../embedded/errors.js"),i=require("../embedded/stack/walletCreate.js"),d=require("../embedded/utils/index.js"),a=require("../wallet-api/unified-wallet.js"),s=require("../embedded/EmbeddedWalletProxy.js"),n=require("../embedded/EmbeddedWalletProvider.js"),l=require("../embedded/EmbeddedSolanaWalletProvider.js");require("../embedded/types.js"),require("../wallet-api/create.js"),require("@privy-io/public-api"),require("viem"),require("../utils/sleep.js"),require("../embedded/EventCallbackQueue.js"),require("../embedded/withMfa.js"),require("eventemitter3"),require("@privy-io/ethereum"),require("../embedded/stack/walletRpc.js"),require("../utils/encodings.js"),require("../wallet-api/rpc.js"),require("../wallet-api/generate-authorization-signature.js"),require("canonicalize"),require("../embedded/stack/wallet-api-eth-transaction.js"),require("../embedded/stack/wallet-api-eth-typed-data.js"),require("../solana/getWalletPublicKeyFromTransaction.js"),require("../solana/isVersionedTransaction.js");exports.default=class{setMessagePoster(e){this._proxy=new s.EmbeddedWalletProxy(e,this._mfaPromises),this._mfa.setProxy(this._proxy)}async signWithUserSigner(e){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");let t=await this._privyInternal.getAccessToken();if(!t)throw new r.PrivyClientError({error:"User must be logged in to sign a message with the user signer",code:"user_signer_sign_error"});let{signature:o}=await this._proxy.signWithUserSigner({accessToken:t,message:e.message});return{signature:o}}async add(e){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if("user-controlled-server-wallets-only"===this._privyInternal.config?.embedded_wallet_config.mode)await i.walletCreate({context:{app:this._appApi,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e)},chainType:e.chainType});else{let t=await this._privyInternal.getAccessToken();if(!t)throw new r.PrivyClientError({error:"User must be logged in to create an embedded wallet",code:"embedded_wallet_creation_error"});await this._proxy.addWallet({accessToken:t,...e})}let{user:t}=await this._privyInternal.refreshSession();return{user:t}}async getBitcoinProvider({wallet:e,entropyId:r,entropyIdVerifier:o,recoveryPassword:i,recoveryAccessToken:d,recoverySecretOverride:s}){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if(!await this._privyInternal.getAccessToken())throw Error("User must be logged in to create an embedded wallet");return a.isUnifiedWallet(e)||await this._load({entropyId:r,entropyIdVerifier:o,wallet:e,recoveryPassword:i,recoveryAccessToken:d,recoverySecretOverride:s}),new t.EmbeddedBitcoinWalletProvider({account:e,privyInternal:this._privyInternal,proxy:this._proxy,entropyId:r,entropyIdVerifier:o})}async create({password:e,recoveryMethod:t,recoveryToken:o,recoveryKey:d,recoverySecretOverride:a,iCloudRecordNameOverride:s,solanaAccount:n,skipCallbacks:l}){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if("user-controlled-server-wallets-only"===this._privyInternal.config?.embedded_wallet_config.mode){if(t&&!t.startsWith("privy"))throw new r.PrivyClientError({error:"User-controlled server wallets do not support custom recovery methods",code:"embedded_wallet_creation_error"});await i.walletCreate({context:{app:this._appApi,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e)},chainType:"ethereum"})}else{let r;if(r=t||(e?"user-passcode":"privy"),e&&"string"!=typeof e)throw Error("Invalid recovery password, must be a string");if("privy"===r&&this._privyInternal.config?.embedded_wallet_config.require_user_password_on_create)throw Error("Password not provided yet is required by App configuration");let i=await this._privyInternal.getAccessToken();if(!i)throw Error("User must be logged in to create an embedded wallet");let{address:l}=await this._proxy.create({accessToken:i,recoveryMethod:r,recoveryKey:d,recoveryPassword:e,recoveryAccessToken:o,recoverySecretOverride:a,iCloudRecordNameOverride:s,solanaAddress:n?.address});if(!l)throw Error("Failed to create wallet")}return await this._privyInternal.refreshSession(l)}async createSolana(e){if(!this._proxy)throw new r.PrivyClientError({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_creation_error"});if("user-controlled-server-wallets-only"===this._privyInternal.config?.embedded_wallet_config.mode)await i.walletCreate({context:{app:this._appApi,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e)},chainType:"solana"});else{let t=await this._privyInternal.getAccessToken();if(!t)throw new r.PrivyClientError({error:"User must be logged in to create an embedded wallet",code:"embedded_wallet_creation_error"});e?.ethereumAccount&&await this.getProvider(e.ethereumAccount);let{publicKey:o}=await this._proxy.createSolana({accessToken:t,ethereumAddress:e?.ethereumAccount?.address});if(!o)throw new r.PrivyClientError({error:"Failed to create wallet",code:"embedded_wallet_creation_error"})}return await this._privyInternal.refreshSession()}async delegateWallets({delegatedWallets:e,rootWallet:t}){if(!this._proxy)throw new r.PrivyClientError({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_creation_error"});let o=await this._privyInternal.getAccessToken();if(!o)throw new r.PrivyClientError({error:"User must be logged in to create an embedded wallet",code:"embedded_wallet_creation_error"});await this._proxy.delegateWallets({accessToken:o,delegatedWallets:e,rootWallet:t})}async getProvider(e,r,t,o,i){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");return a.isUnifiedWallet(e)||await this._load({wallet:e,entropyId:e.address,entropyIdVerifier:"ethereum-address-verifier",recoveryPassword:r,recoveryKey:i,recoveryAccessToken:t,recoverySecretOverride:o}),new n.EmbeddedWalletProvider({account:e,entropyId:e.address,entropyIdVerifier:"ethereum-address-verifier",privyInternal:this._privyInternal,chains:this._chains,walletProxy:this._proxy,appApi:this._appApi})}async getEthereumProvider({wallet:e,entropyId:r,entropyIdVerifier:t,recoveryPassword:o,recoveryAccessToken:i,recoverySecretOverride:d,recoveryKey:s,onNeedsRecovery:l}){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if(!await this._privyInternal.getAccessToken())throw Error("User must be logged in to create an embedded wallet");return a.isUnifiedWallet(e)||(!l||o||i||d||s)&&await this._load({entropyId:r,entropyIdVerifier:t,wallet:e,recoveryPassword:o,recoveryAccessToken:i,recoverySecretOverride:d,recoveryKey:s}),new n.EmbeddedWalletProvider({account:e,entropyId:r,entropyIdVerifier:"ethereum-address-verifier",privyInternal:this._privyInternal,chains:this._chains,walletProxy:this._proxy,onNeedsRecovery:l,appApi:this._appApi})}async getSolanaProvider(e,t,o,i,d,s,n){if(!this._proxy)throw new r.PrivyClientError({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});return a.isUnifiedWallet(e)||(!n||i||d||s)&&await this._load({wallet:e,entropyId:t,entropyIdVerifier:o,recoveryPassword:i,recoveryAccessToken:d,recoverySecretOverride:s}),new l.EmbeddedSolanaWalletProvider({account:e,privyInternal:this._privyInternal,proxy:this._proxy,entropyId:t,entropyIdVerifier:o,onNeedsRecovery:n,app:this._appApi})}async setRecovery(e){let{wallet:t,...o}=e;if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if(a.isUnifiedWallet(t))throw new r.PrivyClientError({error:"This wallet does not support setting recovery methods",code:"unsupported_recovery_method"});d.throwIfInvalidRecoveryUpgradePath({currentRecoveryMethod:t.recovery_method,upgradeToRecoveryMethod:"icloud-native"===o.recoveryMethod?"icloud":o.recoveryMethod}),await this._load("solana"===t.chain_type?{wallet:t,entropyId:t.address,entropyIdVerifier:"solana-address-verifier"}:{wallet:t,entropyId:t.address,entropyIdVerifier:"ethereum-address-verifier"});let i=await this._privyInternal.getAccessToken();if(!i)throw Error("User must be logged in to interact with embedded wallets");let s=t.recovery_method;this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_set_recovery_started",{address:t.address,target_recovery_method:o.recoveryMethod,existing_recovery_method:s});try{let e;if("user-passcode"===o.recoveryMethod)e={recoveryMethod:"user-passcode",recoveryPassword:o.password};else if("google-drive"===o.recoveryMethod)e={recoveryMethod:"google-drive",recoveryAccessToken:o.recoveryAccessToken};else if("icloud"===o.recoveryMethod)e={recoveryMethod:"icloud",recoveryAccessToken:o.recoveryAccessToken};else if("icloud-native"===o.recoveryMethod)e={recoveryMethod:"icloud-native",iCloudRecordNameOverride:o.iCloudRecordNameOverride,recoverySecretOverride:o.recoverySecretOverride};else if("recovery-encryption-key"===o.recoveryMethod)e={recoveryMethod:"recovery-encryption-key",recoveryKey:o.recoveryKey};else{if("privy"!==o.recoveryMethod)throw Error(`Unknown recovery method: ${o.recoveryMethod}`);e={recoveryMethod:"privy"}}await this._proxy.setRecovery({accessToken:i,entropyId:t.address,entropyIdVerifier:"solana"===t.chain_type?"solana-address-verifier":"ethereum-address-verifier",...e}),this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_set_recovery_completed",{address:t.address,target_recovery_method:o.recoveryMethod,existing_recovery_method:s});let{user:r}=await this._privyInternal.refreshSession();return{user:r,provider:"ethereum"!==t.chain_type?null:new n.EmbeddedWalletProvider({account:t,entropyId:t.address,entropyIdVerifier:"ethereum-address-verifier",privyInternal:this._privyInternal,chains:this._chains,walletProxy:this._proxy,appApi:this._appApi})}}catch(e){throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_set_recovery_failed",{address:t.address,recovery_method:t.recovery_method,error:e instanceof Error?e.message:"Unable to recover wallet"}),e}}getURL(){let e=new URL(`${this._privyInternal.baseUrl}/apps/${this._privyInternal.appId}/embedded-wallets`);return this._privyInternal.caid&&e.searchParams.append("caid",this._privyInternal.caid),this._privyInternal.appClientId&&e.searchParams.append("client_id",this._privyInternal.appClientId),e.href}get chains(){return this._chains}onMessage(e){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");return this._proxy.handleEmbeddedWalletMessages(e)}reload(){this._proxy?this._proxy.reload():console.warn("Attempted to reload proxy before initialized")}async ping(e){try{if(!this._proxy)throw Error("Embedded wallet proxy not initialized");return await this._proxy.ping(e),!0}catch(e){return console.error(e),!1}}async _load({entropyId:e,entropyIdVerifier:r,wallet:t,recoveryPassword:i,recoveryKey:d,recoveryAccessToken:a,recoverySecretOverride:s}){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");let n=await this._privyInternal.getAccessToken();if(!n)throw Error("User must be logged in to interact with embedded wallets");try{return await this._proxy.connect({accessToken:n,entropyId:e,entropyIdVerifier:r}),e}catch(l){if(o.errorIndicatesRecoveryIsNeeded(l))try{if("privy"===t.recovery_method){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:t.recovery_method});let o=await this._proxy.recover({accessToken:n,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:t.recovery_method}),o.entropyId}if("user-passcode"===t.recovery_method&&i){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:t.recovery_method});let o=await this._proxy.recover({accessToken:n,recoveryPassword:i,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:t.recovery_method}),o.entropyId}if(["google-drive","icloud"].includes(t.recovery_method)&&a){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:t.recovery_method});let o=await this._proxy.recover({accessToken:n,recoveryAccessToken:a,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:t.recovery_method}),o.entropyId}if("icloud"===t.recovery_method&&s){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:"icloud-native"});let o=await this._proxy.recover({accessToken:n,recoverySecretOverride:s,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:"icloud-native"}),o.entropyId}if("recovery-encryption-key"===t.recovery_method&&d){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:t.recovery_method});let o=await this._proxy.recover({accessToken:n,recoveryKey:d,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:t.recovery_method}),o.entropyId}}catch(r){throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_failed",{address:t.address,recovery_method:t.recovery_method,error:r instanceof Error?r.message:`Unable to recover wallet: ${e}`}),r}throw l}}constructor(r,t,o,i,d,a){if(this._chains=Array.from(e.DEFAULT_SUPPORTED_CHAINS),this._privyInternal=r,t&&(this._proxy=new s.EmbeddedWalletProxy(t,d),i.setProxy(this._proxy)),o){let r=e.dedupeSupportedChains(o);this._chains=r}this._mfa=i,this._mfaPromises=d,this._appApi=a}};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./AppApi.js"),r=require("./CrossAppApi.js"),i=require("./DelegatedWalletsApi.js"),t=require("./EmbeddedWalletApi.js"),s=require("./MfaPromises.js"),a=require("./PrivyInternal.js"),u=require("./UserApi.js"),l=require("./auth/AuthApi.js"),d=require("./funding/FundingApi.js"),n=require("./mfa/MfaApi.js"),o=require("./recovery/RecoveryApi.js");require("@privy-io/public-api"),require("../Token.js"),require("jose"),require("@privy-io/chains"),require("../Error.js"),require("../embedded/EmbeddedBitcoinWalletProvider.js"),require("../wallet-api/unified-wallet.js"),require("../embedded/errors.js"),require("../embedded/types.js"),require("../embedded/stack/walletCreate.js"),require("../wallet-api/create.js"),require("../embedded/utils/index.js"),require("viem"),require("../embedded/EmbeddedWalletProxy.js"),require("../utils/sleep.js"),require("../embedded/EventCallbackQueue.js"),require("../embedded/withMfa.js"),require("../embedded/EmbeddedWalletProvider.js"),require("eventemitter3"),require("@privy-io/ethereum"),require("../embedded/methods.js"),require("../embedded/stack/walletRpc.js"),require("../utils/encodings.js"),require("../wallet-api/rpc.js"),require("../wallet-api/generate-authorization-signature.js"),require("canonicalize"),require("../embedded/stack/wallet-api-eth-transaction.js"),require("../embedded/stack/wallet-api-eth-typed-data.js"),require("../embedded/EmbeddedSolanaWalletProvider.js"),require("../solana/getWalletPublicKeyFromTransaction.js"),require("../solana/isVersionedTransaction.js"),require("fetch-retry"),require("uuid"),require("@privy-io/api-base"),require("../Session.js"),require("js-cookie"),require("../utils/allSettled.js"),require("../toAbortSignalTimeout.js"),require("../utils/toSearchParams.js"),require("./logger.js"),require("../utils/noop.js"),require("./auth/CustomProviderApi.js"),require("./auth/maybeCreateWalletOnLogin.js"),require("../utils/getUserEmbeddedEthereumWallet.js"),require("../utils/getAllUserEmbeddedEthereumWallets.js"),require("../utils/embedded-wallets.js"),require("../utils/getUserEmbeddedSolanaWallet.js"),require("../utils/getAllUserEmbeddedSolanaWallets.js"),require("../utils/shouldCreateEmbeddedEthWallet.js"),require("../utils/shouldCreateEmbeddedSolWallet.js"),require("./auth/EmailApi.js"),require("./auth/FarcasterApi.js"),require("./auth/FarcasterV2Api.js"),require("./auth/GuestApi.js"),require("./auth/OAuthApi.js"),require("../pkce.js"),require("./auth/PasskeyApi.js"),require("./auth/PhoneApi.js"),require("./auth/SiweApi.js"),require("./auth/SiwsApi.js"),require("./auth/SmartWalletApi.js"),require("./funding/CoinbaseOnRampApi.js"),require("./funding/MoonpayOnRampApi.js"),require("../funding/moonpay.js"),require("./mfa/MfaPasskeyApi.js"),require("./mfa/MfaSmsApi.js"),require("./recovery/RecoveryICloudApi.js"),require("./recovery/RecoveryOAuthApi.js");exports.default=class{async initialize(){await this._privyInternal._initialize()}setMessagePoster(e){this.embeddedWallet.setMessagePoster(e)}addOAuthTokensListener(e){return this._privyInternal.session.on("oauth_tokens_granted",e),{unsubscribe:()=>{this._privyInternal.session.removeListener("oauth_tokens_granted",e)}}}setCallbacks(e){this._privyInternal.setCallbacks(e)}getAccessToken(){return this._privyInternal.getAccessToken()}getIdentityToken(){return this._privyInternal.getIdentityToken()}getCompiledPath(e,r){return this._privyInternal.getPath(e,r)}async fetchPrivyRoute(e,r){return this._privyInternal.fetch(e,r)}get logger(){return this._privyInternal.logger}constructor({clientId:p,...q}){this._privyInternal=new a.PrivyInternal({...q,appClientId:p}),this.mfa=new n.default(this._privyInternal),this.mfaPromises=new s.default,this.app=new e.default(this._privyInternal),this.embeddedWallet=new t.default(this._privyInternal,q.embeddedWalletMessagePoster,q.supportedChains,this.mfa,this.mfaPromises,this.app),this.user=new u.default(this._privyInternal),this.auth=new l.default(this._privyInternal,this.embeddedWallet,q.storage,q.crypto),this.recovery=new o.default(this._privyInternal,q.storage,q.crypto),this.funding=new d.default(this._privyInternal),this.delegated=new i.default(this._privyInternal),this.crossApp=new r.default(this._privyInternal,q.storage)}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./AppApi.js"),r=require("./CrossAppApi.js"),i=require("./DelegatedWalletsApi.js"),t=require("./EmbeddedWalletApi.js"),s=require("./MfaPromises.js"),a=require("./PrivyInternal.js"),u=require("./UserApi.js"),l=require("./auth/AuthApi.js"),d=require("./funding/FundingApi.js"),n=require("./mfa/MfaApi.js"),o=require("./recovery/RecoveryApi.js");require("@privy-io/public-api"),require("../Token.js"),require("jose"),require("@privy-io/chains"),require("../Error.js"),require("../embedded/EmbeddedBitcoinWalletProvider.js"),require("../wallet-api/unified-wallet.js"),require("../embedded/errors.js"),require("../embedded/types.js"),require("../embedded/stack/walletCreate.js"),require("../wallet-api/create.js"),require("../embedded/utils/index.js"),require("viem"),require("../embedded/EmbeddedWalletProxy.js"),require("../utils/sleep.js"),require("../embedded/EventCallbackQueue.js"),require("../embedded/withMfa.js"),require("../embedded/EmbeddedWalletProvider.js"),require("eventemitter3"),require("@privy-io/ethereum"),require("../embedded/stack/walletRpc.js"),require("../utils/encodings.js"),require("../wallet-api/rpc.js"),require("../wallet-api/generate-authorization-signature.js"),require("canonicalize"),require("../embedded/stack/wallet-api-eth-transaction.js"),require("../embedded/stack/wallet-api-eth-typed-data.js"),require("../embedded/EmbeddedSolanaWalletProvider.js"),require("../solana/getWalletPublicKeyFromTransaction.js"),require("../solana/isVersionedTransaction.js"),require("fetch-retry"),require("uuid"),require("@privy-io/api-base"),require("../Session.js"),require("js-cookie"),require("../utils/allSettled.js"),require("../toAbortSignalTimeout.js"),require("../utils/toSearchParams.js"),require("./logger.js"),require("../utils/noop.js"),require("./auth/CustomProviderApi.js"),require("./auth/maybeCreateWalletOnLogin.js"),require("../utils/getUserEmbeddedEthereumWallet.js"),require("../utils/getAllUserEmbeddedEthereumWallets.js"),require("../utils/embedded-wallets.js"),require("../utils/getUserEmbeddedSolanaWallet.js"),require("../utils/getAllUserEmbeddedSolanaWallets.js"),require("../utils/shouldCreateEmbeddedEthWallet.js"),require("../utils/shouldCreateEmbeddedSolWallet.js"),require("./auth/EmailApi.js"),require("./auth/FarcasterApi.js"),require("./auth/FarcasterV2Api.js"),require("./auth/GuestApi.js"),require("./auth/OAuthApi.js"),require("../pkce.js"),require("./auth/PasskeyApi.js"),require("./auth/PhoneApi.js"),require("./auth/SiweApi.js"),require("./auth/SiwsApi.js"),require("./auth/SmartWalletApi.js"),require("./funding/CoinbaseOnRampApi.js"),require("./funding/MoonpayOnRampApi.js"),require("../funding/moonpay.js"),require("./mfa/MfaPasskeyApi.js"),require("./mfa/MfaSmsApi.js"),require("./recovery/RecoveryICloudApi.js"),require("./recovery/RecoveryOAuthApi.js");exports.default=class{async initialize(){await this._privyInternal._initialize()}setMessagePoster(e){this.embeddedWallet.setMessagePoster(e)}addOAuthTokensListener(e){return this._privyInternal.session.on("oauth_tokens_granted",e),{unsubscribe:()=>{this._privyInternal.session.removeListener("oauth_tokens_granted",e)}}}setCallbacks(e){this._privyInternal.setCallbacks(e)}getAccessToken(){return this._privyInternal.getAccessToken()}getIdentityToken(){return this._privyInternal.getIdentityToken()}getCompiledPath(e,r){return this._privyInternal.getPath(e,r)}async fetchPrivyRoute(e,r){return this._privyInternal.fetch(e,r)}get logger(){return this._privyInternal.logger}constructor({clientId:p,...q}){this._privyInternal=new a.PrivyInternal({...q,appClientId:p}),this.mfa=new n.default(this._privyInternal),this.mfaPromises=new s.default,this.app=new e.default(this._privyInternal),this.embeddedWallet=new t.default(this._privyInternal,q.embeddedWalletMessagePoster,q.supportedChains,this.mfa,this.mfaPromises,this.app),this.user=new u.default(this._privyInternal),this.auth=new l.default(this._privyInternal,this.embeddedWallet,q.storage,q.crypto),this.recovery=new o.default(this._privyInternal,q.storage,q.crypto),this.funding=new d.default(this._privyInternal),this.delegated=new i.default(this._privyInternal),this.crossApp=new r.default(this._privyInternal,q.storage)}};
@@ -1 +1 @@
1
- "use strict";var e=require("fetch-retry"),t=require("uuid"),s=require("@privy-io/api-base"),i=require("@privy-io/public-api"),r=require("../Error.js"),a=require("../Session.js"),n=require("../toAbortSignalTimeout.js"),o=require("../utils/toSearchParams.js"),h=require("./logger.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("eventemitter3"),require("jose"),require("js-cookie"),require("../Token.js"),require("../utils/allSettled.js"),require("../utils/noop.js");var c=/*#__PURE__*/l(e);let g="privy:caid";exports.PrivyInternal=class{setCallbacks(e){this.callbacks={...this.callbacks,...e}}get isReady(){return!!this._config}get config(){return this._config}get caid(){return this._analyticsId}async _initialize(){if(this.isReady)this.callbacks?.setIsReady?.(!0);else{if(!await this.isStorageAccessible())throw new r.PrivyClientError({code:"storage_error",error:"Unable to access storage"});this._config=await this.getAppConfig(),this._config?.custom_api_url&&(this.baseUrl=this._config.custom_api_url,this.session.isUsingServerCookies=!0),this.callbacks?.setIsReady?.(!0),this._sdkVersion.startsWith("react-auth:")||this.createAnalyticsEvent("sdk_initialize",{})}}getPath(e,{params:t,query:s}){return`${this.baseUrl}${i.getPathWithParams(e.path,t)}${o.toSearchParams(s)}`}async fetch(e,{body:t,params:s,query:i,headers:a,onRequest:n=this._beforeRequest.bind(this)}){let o=new Request(this.getPath(e,{params:s,query:i}),{method:e.method,body:JSON.stringify(t),headers:a}),h=await n(o),l=await this._fetch(o,h),c=await l.json();if(l.status>299)throw new r.PrivyApiError(c);return c}async _beforeRequestWithoutInitialize(e){let t=await this.session.getToken(),s=new Headers(e.headers);s.set("privy-app-id",this.appId),this.appClientId&&s.set("privy-client-id",this.appClientId),s.set("privy-client",this._sdkVersion),t&&s.set("Authorization",`Bearer ${t}`),s.set("Content-Type","application/json"),s.set("Accept","application/json");let i=await this._getOrGenerateClientAnalyticsId();return i&&s.set("privy-ca-id",i),this.nativeAppIdentifier&&s.set("x-native-app-identifier",this.nativeAppIdentifier),{signal:n.default(2e4),headers:s,credentials:"include"}}async beforeRequestWithoutRefresh(e){return await this._initialize(),this._beforeRequestWithoutInitialize(e)}async _beforeRequest(e){return await this._initialize(),await this.getAccessToken(),this.beforeRequestWithoutRefresh(e)}async getAppConfig(){return await this.fetch(i.AppConfig,{params:{app_id:this.appId},onRequest:this._beforeRequestWithoutInitialize.bind(this)})}async _getOrGenerateClientAnalyticsId(){if(this._analyticsId)return this._analyticsId;try{let e=await this._storage.get(g);if("string"==typeof e&&e.length>0)return this._analyticsId=e,e}catch(e){this.logger.error("Unable to load clientId",e)}try{this._analyticsId=t.v4()}catch(e){this.logger.error("Unable to generate uuidv4",e)}if(!this._analyticsId)return null;try{await this._storage.put(g,this._analyticsId)}catch(e){this.logger.error(`Unable to store clientId: ${this._analyticsId}`,e)}return this._analyticsId}async destroyClientAnalyticsId(){try{return await this._storage.del(g)}catch(e){this.logger.error("Unable to delete clientId",e)}}async createAnalyticsEvent(e,t){try{await this.fetch(i.AnalyticsEvent,{body:{event_name:e,client_id:await this._getOrGenerateClientAnalyticsId(),payload:t},onRequest:this.beforeRequestWithoutRefresh.bind(this)})}catch(e){}}async refreshSession(e=!1){if(!await this.isStorageAccessible())throw new r.PrivyClientError({code:"storage_error",error:"Unable to access storage"});let t=await this.session.getRefreshToken()??void 0,s=t??"key",i=this._cache.get(s);if(i)return this.logger.debug("[privy:refresh] found in-flight session refresh request, deduping"),await i;let a=this._refreshSession(t,e);this._cache.set(s,a);try{return await a}finally{this._cache.delete(s)}}async _refreshSession(e,t){let a=await this.session.getToken();if(!this.session.hasRefreshCredentials(a,e??null))throw this.logger.debug("[privy:refresh] missing tokens, skipping request"),await this._initialize(),new r.PrivyApiError({code:s.PrivyErrorCode.MISSING_OR_INVALID_TOKEN,error:"No tokens found in storage"});try{this.logger.debug(`[privy:refresh] fetching: ${i.RefreshSession.path}`);let s=await this.fetch(i.RefreshSession,{body:{refresh_token:e},onRequest:this.beforeRequestWithoutRefresh.bind(this)}),r=s.session_update_action;return this.logger.debug(`[privy:refresh] response: ${r}`),t||this.callbacks?.setUser?.(s.user),"set"===r&&(await this.session.updateWithTokensResponse(s),this.logger.debug("[privy:refresh] tokens stored")),"clear"===r&&(await this.session.destroyLocalState(),this.logger.debug("[privy:refresh] tokens cleared"),t||this.callbacks?.setUser?.(null)),"ignore"===r&&s.token&&(await this.session.storeToken(s.token),this.logger.debug("[privy:refresh] access token stored"),s.identity_token&&(this.logger.debug("[privy:refresh] identity token stored"),await this.session.storeIdentityToken(s.identity_token))),this.logger.debug("[privy:refresh] returning response"),s}catch(e){throw this.logger.debug(`[privy:refresh] error: ${e.message??"unknown error"}`),e instanceof r.PrivyApiError&&e.code===s.PrivyErrorCode.MISSING_OR_INVALID_TOKEN&&(await this.session.destroyLocalState(),t||this.callbacks?.setUser?.(null)),e}}async getAccessToken(){let[e,t]=await Promise.all([this.session.getToken(),this.session.getRefreshToken()]);if(!this.session.tokenIsActive(e)&&this.session.hasRefreshCredentials(e,t)){let t=await this.refreshSession(),s=await this.session.getToken();return t.token||this.logger.debug("[privy:getAccessToken] expected token received null"),t.token===e&&this.logger.debug("[privy:getAccessToken] expected new token in response received existing"),s===e&&this.logger.debug("[privy:getAccessToken] expected new token in storage received existing"),t.token??s}return e}async getIdentityToken(){return await this.session.getIdentityToken()}async isStorageAccessible(){try{let e=`privy:__storage__test-${t.v4()}`,s="blobby";await this._storage.put(e,s);let i=await this._storage.get(e);return await this._storage.del(e),i===s}catch(e){return this.logger.error(e),!1}}constructor(e){this._sdkVersion="js-sdk-core:0.55.3",this._cache=new Map,this.logger=h.toConsoleLogger({level:e.logLevel??"ERROR"}),this._storage=e.storage,this._analyticsId=null,this._getOrGenerateClientAnalyticsId(),this.baseUrl=e.baseUrl??"https://auth.privy.io",this.appId=e.appId,this.appClientId=e.appClientId,this._sdkVersion=e.sdkVersion??this._sdkVersion,this.callbacks=e.callbacks,this.nativeAppIdentifier=e.nativeAppIdentifier,this.session=new a.Session({storage:this._storage,isUsingServerCookies:!1,appId:e.appId}),this._fetch=c.default(globalThis.fetch,{retries:3,retryDelay:e=>3**e*500,retryOn:[408,409,425,500,502,503,504]}),this.session.on("error_storing_tokens",(e=>{this.createAnalyticsEvent("error_updating_tokens_in_storage",{reason:e})}))}};
1
+ "use strict";var e=require("fetch-retry"),t=require("uuid"),s=require("@privy-io/api-base"),i=require("@privy-io/public-api"),r=require("../Error.js"),a=require("../Session.js"),n=require("../toAbortSignalTimeout.js"),o=require("../utils/toSearchParams.js"),h=require("./logger.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("eventemitter3"),require("jose"),require("js-cookie"),require("../Token.js"),require("../utils/allSettled.js"),require("../utils/noop.js");var c=/*#__PURE__*/l(e);let g="privy:caid";exports.PrivyInternal=class{setCallbacks(e){this.callbacks={...this.callbacks,...e}}get isReady(){return!!this._config}get config(){return this._config}get caid(){return this._analyticsId}async _initialize(){if(this.isReady)this.callbacks?.setIsReady?.(!0);else{if(!await this.isStorageAccessible())throw new r.PrivyClientError({code:"storage_error",error:"Unable to access storage"});this._config=await this.getAppConfig(),this._config?.custom_api_url&&(this.baseUrl=this._config.custom_api_url,this.session.isUsingServerCookies=!0),this.callbacks?.setIsReady?.(!0),this._sdkVersion.startsWith("react-auth:")||this.createAnalyticsEvent("sdk_initialize",{})}}getPath(e,{params:t,query:s}){return`${this.baseUrl}${i.getPathWithParams(e.path,t)}${o.toSearchParams(s)}`}async fetch(e,{body:t,params:s,query:i,headers:a,onRequest:n=this._beforeRequest.bind(this)}){let o=new Request(this.getPath(e,{params:s,query:i}),{method:e.method,body:JSON.stringify(t),headers:a}),h=await n(o),l=await this._fetch(o,h),c=await l.json();if(l.status>299)throw new r.PrivyApiError(c);return c}async _beforeRequestWithoutInitialize(e){let t=await this.session.getToken(),s=new Headers(e.headers);s.set("privy-app-id",this.appId),this.appClientId&&s.set("privy-client-id",this.appClientId),s.set("privy-client",this._sdkVersion),t&&s.set("Authorization",`Bearer ${t}`),s.set("Content-Type","application/json"),s.set("Accept","application/json");let i=await this._getOrGenerateClientAnalyticsId();return i&&s.set("privy-ca-id",i),this.nativeAppIdentifier&&s.set("x-native-app-identifier",this.nativeAppIdentifier),{signal:n.default(2e4),headers:s,credentials:"include"}}async beforeRequestWithoutRefresh(e){return await this._initialize(),this._beforeRequestWithoutInitialize(e)}async _beforeRequest(e){return await this._initialize(),await this.getAccessToken(),this.beforeRequestWithoutRefresh(e)}async getAppConfig(){return await this.fetch(i.AppConfig,{params:{app_id:this.appId},onRequest:this._beforeRequestWithoutInitialize.bind(this)})}async _getOrGenerateClientAnalyticsId(){if(this._analyticsId)return this._analyticsId;try{let e=await this._storage.get(g);if("string"==typeof e&&e.length>0)return this._analyticsId=e,e}catch(e){this.logger.error("Unable to load clientId",e)}try{this._analyticsId=t.v4()}catch(e){this.logger.error("Unable to generate uuidv4",e)}if(!this._analyticsId)return null;try{await this._storage.put(g,this._analyticsId)}catch(e){this.logger.error(`Unable to store clientId: ${this._analyticsId}`,e)}return this._analyticsId}async destroyClientAnalyticsId(){try{return await this._storage.del(g)}catch(e){this.logger.error("Unable to delete clientId",e)}}async createAnalyticsEvent(e,t){try{await this.fetch(i.AnalyticsEvent,{body:{event_name:e,client_id:await this._getOrGenerateClientAnalyticsId(),payload:t},onRequest:this.beforeRequestWithoutRefresh.bind(this)})}catch(e){}}async refreshSession(e=!1){if(!await this.isStorageAccessible())throw new r.PrivyClientError({code:"storage_error",error:"Unable to access storage"});let t=await this.session.getRefreshToken()??void 0,s=t??"key",i=this._cache.get(s);if(i)return this.logger.debug("[privy:refresh] found in-flight session refresh request, deduping"),await i;let a=this._refreshSession(t,e);this._cache.set(s,a);try{return await a}finally{this._cache.delete(s)}}async _refreshSession(e,t){let a=await this.session.getToken();if(!this.session.hasRefreshCredentials(a,e??null))throw this.logger.debug("[privy:refresh] missing tokens, skipping request"),await this._initialize(),new r.PrivyApiError({code:s.PrivyErrorCode.MISSING_OR_INVALID_TOKEN,error:"No tokens found in storage"});try{this.logger.debug(`[privy:refresh] fetching: ${i.RefreshSession.path}`);let s=await this.fetch(i.RefreshSession,{body:{refresh_token:e},onRequest:this.beforeRequestWithoutRefresh.bind(this)}),r=s.session_update_action;return this.logger.debug(`[privy:refresh] response: ${r}`),t||this.callbacks?.setUser?.(s.user),"set"===r&&(await this.session.updateWithTokensResponse(s),this.logger.debug("[privy:refresh] tokens stored")),"clear"===r&&(await this.session.destroyLocalState(),this.logger.debug("[privy:refresh] tokens cleared"),t||this.callbacks?.setUser?.(null)),"ignore"===r&&s.token&&(await this.session.storeToken(s.token),this.logger.debug("[privy:refresh] access token stored"),s.identity_token&&(this.logger.debug("[privy:refresh] identity token stored"),await this.session.storeIdentityToken(s.identity_token))),this.logger.debug("[privy:refresh] returning response"),s}catch(e){throw this.logger.debug(`[privy:refresh] error: ${e.message??"unknown error"}`),e instanceof r.PrivyApiError&&e.code===s.PrivyErrorCode.MISSING_OR_INVALID_TOKEN&&(await this.session.destroyLocalState(),t||this.callbacks?.setUser?.(null)),e}}async getAccessToken(){let[e,t]=await Promise.all([this.session.getToken(),this.session.getRefreshToken()]);if(!this.session.tokenIsActive(e)&&this.session.hasRefreshCredentials(e,t)){let t=await this.refreshSession(),s=await this.session.getToken();return t.token||this.logger.debug("[privy:getAccessToken] expected token received null"),t.token===e&&this.logger.debug("[privy:getAccessToken] expected new token in response received existing"),s===e&&this.logger.debug("[privy:getAccessToken] expected new token in storage received existing"),t.token??s}return e}async getIdentityToken(){return await this.session.getIdentityToken()}async isStorageAccessible(){try{let e=`privy:__storage__test-${t.v4()}`,s="blobby";await this._storage.put(e,s);let i=await this._storage.get(e);return await this._storage.del(e),i===s}catch(e){return this.logger.error(e),!1}}constructor(e){this._sdkVersion="js-sdk-core:0.55.4",this._cache=new Map,this.logger=h.toConsoleLogger({level:e.logLevel??"ERROR"}),this._storage=e.storage,this._analyticsId=null,this._getOrGenerateClientAnalyticsId(),this.baseUrl=e.baseUrl??"https://auth.privy.io",this.appId=e.appId,this.appClientId=e.appClientId,this._sdkVersion=e.sdkVersion??this._sdkVersion,this.callbacks=e.callbacks,this.nativeAppIdentifier=e.nativeAppIdentifier,this.session=new a.Session({storage:this._storage,isUsingServerCookies:!1,appId:e.appId}),this._fetch=c.default(globalThis.fetch,{retries:3,retryDelay:e=>3**e*500,retryOn:[408,409,425,500,502,503,504]}),this.session.on("error_storing_tokens",(e=>{this.createAnalyticsEvent("error_updating_tokens_in_storage",{reason:e})}))}};
@@ -1 +1 @@
1
- "use strict";var e=require("eventemitter3"),t=require("viem"),r=require("@privy-io/ethereum"),a=require("../Error.js"),i=require("../wallet-api/unified-wallet.js"),s=require("./errors.js"),n=require("./methods.js"),h=require("./stack/walletRpc.js"),o=require("./utils/index.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./types.js"),require("../utils/encodings.js"),require("../wallet-api/rpc.js"),require("@privy-io/public-api"),require("../wallet-api/generate-authorization-signature.js"),require("canonicalize"),require("./stack/wallet-api-eth-transaction.js"),require("./stack/wallet-api-eth-typed-data.js");var d=/*#__PURE__*/c(e);class l extends d.default{async request(e){if(n.isSupportedIframeRpcMethod(e.method))return this.handleIFrameRpc(e);switch(e.method){case"eth_accounts":case"eth_requestAccounts":return this._account.address?[this._account.address]:[];case"eth_chainId":return`0x${this._chainId.toString(16)}`;case"wallet_switchEthereumChain":return this.handleSwitchEthereumChain(e);case"eth_estimateGas":return this.handleEstimateGas(e);case"eth_sendTransaction":{let t=e.params?.[0];return this.handleSendTransaction(t)}case"eth_populateTransactionRequest":{let t=e.params?.[0];return this.handlePopulateTransaction(t)}default:return this.handleJsonRpc(e)}}ensureChainId(e){let t={chainId:this._chainId,...e};return this.internalSwitchEthereumChain(t.chainId),t}internalSwitchEthereumChain(e){e&&Number(e)!==this._chainId&&(this._chainId=Number(e),this._client=o.getPublicClient(this._chainId,this._chains,{rpcUrls:[]},{appId:this._privyInternal.appId}),this.emit("chainChanged",e))}async handlePopulateTransaction(e){let t=r.toViemTransactionSerializable(this.ensureChainId(e)),{type:a,...i}=await this._client.prepareTransactionRequest(t);return{...i,type:r.STRING_TO_NUMBER_TXN_TYPE[a]}}async handleSendTransaction(e){let r={...await this.handlePopulateTransaction(e)};for(let e of Object.keys(r)){let a=r[e];a&&"bigint"==typeof a&&(r[e]=t.toHex(a))}let a=await this.handleIFrameRpc({method:"eth_signTransaction",params:[r]});return await this.handleJsonRpc({method:"eth_sendRawTransaction",params:[a]})}async handleEstimateGas(e){if(!e.params||!Array.isArray(e.params))throw Error("Invalid params for eth_estimateGas");let t=e.params?.[0],a=r.toViemTransactionSerializable(this.ensureChainId(t));return await this._client.estimateGas(a)}handleSwitchEthereumChain(e){let t;if(!e.params||!Array.isArray(e.params))throw new s.EmbeddedProviderError(`Invalid params for ${e.method}`,4200);if("string"==typeof e.params[0])t=e.params[0];else{if(!("chainId"in e.params[0])||"string"!=typeof e.params[0].chainId)throw new s.EmbeddedProviderError(`Invalid params for ${e.method}`,4200);t=e.params[0].chainId}this.internalSwitchEthereumChain(t)}async handleIFrameRpc(e){try{let t=await this._privyInternal.getAccessToken();if(!t)throw Error("Missing privy token. User must be logged in");this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_started",{method:e.method,address:this._account.address});let r=this._account;if(i.isUnifiedWallet(r)){let{data:a}=await h.walletRpc({context:{app:this._appApi,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e),signRequest:({message:e})=>this._walletProxy.signWithUserSigner({accessToken:t,message:e})},account:r,rpcRequest:{chainType:"ethereum",request:e}});return a}try{await this._walletProxy.connect({entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier,accessToken:t})}catch(e){let r=s.errorIndicatesRecoveryIsNeeded(e);if(r&&"privy"===this._account.recovery_method)await this._walletProxy.recover({entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier,accessToken:t});else{if(!r||!this._onNeedsRecovery)throw e;{let e;await new Promise((async(t,r)=>{e=setTimeout((()=>r(new a.PrivyClientError({code:"embedded_wallet_recovery_error",error:"User-owned recovery timed out"}))),12e4),await(this._onNeedsRecovery?.({recoveryMethod:this._account.recovery_method,onRecovered:()=>t(!0)}))})).finally((()=>clearTimeout(e)))}}}return(await this._walletProxy.rpcWallet({accessToken:t,request:e,entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier,hdWalletIndex:this._account.wallet_index,chainType:"ethereum"})).response.data}catch(t){console.error(t);let r=t instanceof Error?t.message:"Unable to make wallet request";throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_failed",{method:e.method,address:this._account.address,error:r}),new a.PrivyClientError({code:"embedded_wallet_request_error",error:r})}}async handleJsonRpc(e){return this._client.request(e)}toJSON(){return`PrivyEIP1193Provider { address: '${this._account.address}', chainId: ${this._chainId}, request: [Function] }`}constructor({walletProxy:e,privyInternal:t,account:r,entropyId:a,entropyIdVerifier:i,chains:s,onNeedsRecovery:n,chainId:h=s[0].id,appApi:c}){super(),this._walletProxy=e,this._privyInternal=t,this._account=r,this._entropyId=a,this._entropyIdVerifier=i,this._chainId=h,this._chains=s,this._onNeedsRecovery=n,this._client=o.getPublicClient(h,s,{rpcUrls:[]},{appId:c.appId}),this._appApi=c}}exports.EmbeddedWalletProvider=l;
1
+ "use strict";var e=require("eventemitter3"),t=require("viem"),r=require("@privy-io/ethereum"),a=require("../Error.js"),i=require("../wallet-api/unified-wallet.js"),s=require("./errors.js"),n=require("./stack/walletRpc.js"),h=require("./utils/index.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./types.js"),require("../utils/encodings.js"),require("../wallet-api/rpc.js"),require("@privy-io/public-api"),require("../wallet-api/generate-authorization-signature.js"),require("canonicalize"),require("./stack/wallet-api-eth-transaction.js"),require("./stack/wallet-api-eth-typed-data.js");var o=/*#__PURE__*/c(e);let d=new Set(["eth_sign","personal_sign","eth_signTypedData_v4","csw_signUserOperation","secp256k1_sign"]);class l extends o.default{async request(e){if(d.has(e.method))return this.handleIFrameRpc(e);switch(e.method){case"eth_accounts":case"eth_requestAccounts":return this._account.address?[this._account.address]:[];case"eth_chainId":return`0x${this._chainId.toString(16)}`;case"wallet_switchEthereumChain":return this.handleSwitchEthereumChain(e);case"eth_estimateGas":return this.handleEstimateGas(e);case"eth_signTransaction":{let t=e.params?.[0];return this.handleSignTransaction(t)}case"eth_sendTransaction":{let t=e.params?.[0];return this.handleSendTransaction(t)}case"eth_populateTransactionRequest":{let t=e.params?.[0];return this.handlePopulateTransaction(t)}default:return this.handleJsonRpc(e)}}ensureChainId(e){let t={chainId:this._chainId,...e};return this.internalSwitchEthereumChain(t.chainId),t}internalSwitchEthereumChain(e){e&&Number(e)!==this._chainId&&(this._chainId=Number(e),this._client=h.getPublicClient(this._chainId,this._chains,{rpcUrls:[]},{appId:this._privyInternal.appId}),this.emit("chainChanged",e))}async handlePopulateTransaction(e){let t=r.toViemTransactionSerializable(this.ensureChainId(e)),{type:a,...i}=await this._client.prepareTransactionRequest(t);return{...i,type:r.STRING_TO_NUMBER_TXN_TYPE[a]}}async handleSignTransaction(e){let r={...e};for(let e of Object.keys(r)){let a=r[e];a&&"bigint"==typeof a&&(r[e]=t.toHex(a))}return await this.handleIFrameRpc({method:"eth_signTransaction",params:[r]})}async handleSendTransaction(e){let t=await this.handlePopulateTransaction(e),r=await this.handleSignTransaction(t);return await this.handleJsonRpc({method:"eth_sendRawTransaction",params:[r]})}async handleEstimateGas(e){if(!e.params||!Array.isArray(e.params))throw Error("Invalid params for eth_estimateGas");let t=e.params?.[0],a=r.toViemTransactionSerializable(this.ensureChainId(t));return await this._client.estimateGas(a)}handleSwitchEthereumChain(e){let t;if(!e.params||!Array.isArray(e.params))throw new s.EmbeddedProviderError(`Invalid params for ${e.method}`,4200);if("string"==typeof e.params[0])t=e.params[0];else{if(!("chainId"in e.params[0])||"string"!=typeof e.params[0].chainId)throw new s.EmbeddedProviderError(`Invalid params for ${e.method}`,4200);t=e.params[0].chainId}this.internalSwitchEthereumChain(t)}async handleIFrameRpc(e){try{let t=await this._privyInternal.getAccessToken();if(!t)throw Error("Missing privy token. User must be logged in");this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_started",{method:e.method,address:this._account.address});let r=this._account;if(i.isUnifiedWallet(r)){let{data:a}=await n.walletRpc({context:{app:this._appApi,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e),signRequest:({message:e})=>this._walletProxy.signWithUserSigner({accessToken:t,message:e})},account:r,rpcRequest:{chainType:"ethereum",request:e}});return a}try{await this._walletProxy.connect({entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier,accessToken:t})}catch(e){let r=s.errorIndicatesRecoveryIsNeeded(e);if(r&&"privy"===this._account.recovery_method)await this._walletProxy.recover({entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier,accessToken:t});else{if(!r||!this._onNeedsRecovery)throw e;{let e;await new Promise((async(t,r)=>{e=setTimeout((()=>r(new a.PrivyClientError({code:"embedded_wallet_recovery_error",error:"User-owned recovery timed out"}))),12e4),await(this._onNeedsRecovery?.({recoveryMethod:this._account.recovery_method,onRecovered:()=>t(!0)}))})).finally((()=>clearTimeout(e)))}}}return(await this._walletProxy.rpcWallet({accessToken:t,request:e,entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier,hdWalletIndex:this._account.wallet_index,chainType:"ethereum"})).response.data}catch(t){console.error(t);let r=t instanceof Error?t.message:"Unable to make wallet request";throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_failed",{method:e.method,address:this._account.address,error:r}),new a.PrivyClientError({code:"embedded_wallet_request_error",error:r})}}async handleJsonRpc(e){return this._client.request(e)}toJSON(){return`PrivyEIP1193Provider { address: '${this._account.address}', chainId: ${this._chainId}, request: [Function] }`}constructor({walletProxy:e,privyInternal:t,account:r,entropyId:a,entropyIdVerifier:i,chains:s,onNeedsRecovery:n,chainId:c=s[0].id,appApi:o}){super(),this._walletProxy=e,this._privyInternal=t,this._account=r,this._entropyId=a,this._entropyIdVerifier=i,this._chainId=c,this._chains=s,this._onNeedsRecovery=n,this._client=h.getPublicClient(c,s,{rpcUrls:[]},{appId:o.appId}),this._appApi=o}}exports.EmbeddedWalletProvider=l;
@@ -1 +1 @@
1
- "use strict";var e=require("./EmbeddedWalletProvider.js"),r=require("./EmbeddedSolanaWalletProvider.js"),i=require("./EmbeddedWalletProxy.js");require("eventemitter3"),require("viem"),require("@privy-io/ethereum"),require("../Error.js"),require("../wallet-api/unified-wallet.js"),require("./errors.js"),require("./types.js"),require("./methods.js"),require("./stack/walletRpc.js"),require("../utils/encodings.js"),require("../wallet-api/rpc.js"),require("@privy-io/public-api"),require("../wallet-api/generate-authorization-signature.js"),require("canonicalize"),require("./stack/wallet-api-eth-transaction.js"),require("./stack/wallet-api-eth-typed-data.js"),require("./utils/index.js"),require("../solana/getWalletPublicKeyFromTransaction.js"),require("../solana/isVersionedTransaction.js"),require("../utils/sleep.js"),require("./EventCallbackQueue.js"),require("./withMfa.js"),exports.EmbeddedWalletProvider=e.EmbeddedWalletProvider,exports.EmbeddedSolanaWalletProvider=r.EmbeddedSolanaWalletProvider,exports.EmbeddedWalletProxy=i.EmbeddedWalletProxy;
1
+ "use strict";var e=require("./EmbeddedWalletProvider.js"),r=require("./EmbeddedSolanaWalletProvider.js"),i=require("./EmbeddedWalletProxy.js");require("eventemitter3"),require("viem"),require("@privy-io/ethereum"),require("../Error.js"),require("../wallet-api/unified-wallet.js"),require("./errors.js"),require("./types.js"),require("./stack/walletRpc.js"),require("../utils/encodings.js"),require("../wallet-api/rpc.js"),require("@privy-io/public-api"),require("../wallet-api/generate-authorization-signature.js"),require("canonicalize"),require("./stack/wallet-api-eth-transaction.js"),require("./stack/wallet-api-eth-typed-data.js"),require("./utils/index.js"),require("../solana/getWalletPublicKeyFromTransaction.js"),require("../solana/isVersionedTransaction.js"),require("../utils/sleep.js"),require("./EventCallbackQueue.js"),require("./withMfa.js"),exports.EmbeddedWalletProvider=e.EmbeddedWalletProvider,exports.EmbeddedSolanaWalletProvider=r.EmbeddedSolanaWalletProvider,exports.EmbeddedWalletProxy=i.EmbeddedWalletProxy;
package/dist/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./client/Privy.js"),r=require("@privy-io/public-api"),t=require("./storage/LocalStorage.js"),s=require("./storage/InMemoryStorage.js"),i=require("./Error.js"),o=require("./embedded/errors.js"),a=require("./utils/getUserEmbeddedEthereumWallet.js"),n=require("./utils/getAllUserEmbeddedEthereumWallets.js"),l=require("./utils/getAllUserEmbeddedSolanaWallets.js"),d=require("./utils/getAllUserEmbeddedBitcoinWallets.js"),u=require("./utils/embedded-wallets.js"),p=require("./utils/entropy.js"),c=require("./utils/getUserSmartWallet.js"),m=require("./embedded/utils/index.js"),j=require("./utils/phoneNumberUtils.js"),q=require("./utils/getUserEmbeddedSolanaWallet.js"),g=require("./utils/toObjectKeys.js"),A=require("./utils/getIsTokenUsdc.js"),b=require("./funding/moonpay.js"),E=require("./funding/coinbase.js"),x=require("./solana/client.js"),y=require("./solana/createSiwsMessage.js"),C=require("./solana/getSolanaRpcEndpointForCluster.js"),h=require("./solana/getSolanaUsdcMintAddressForCluster.js"),S=require("./solana/getSolanaClusterDisplayName.js"),f=require("./types.js"),P=require("@privy-io/chains"),W=require("./utils/formatters.js"),v=require("./wallet-api/generate-authorization-signature.js"),M=require("./wallet-api/create.js"),I=require("./wallet-api/rpc.js"),U=require("./wallet-api/raw-sign.js"),T=require("./wallet-api/get-wallet.js"),O=require("./wallet-api/update-wallet.js"),w=require("./wallet-api/unified-wallet.js"),R=require("./embedded/stack/session-signers.js"),N=require("./solana/ConnectedStandardSolanaWallet.js"),F=require("libphonenumber-js/min"),L=require("./index-BDWdfIuK.js"),k=require("./index-DzfqDJJ9.js");require("./client/AppApi.js"),require("./client/CrossAppApi.js"),require("./Token.js"),require("jose"),require("./client/DelegatedWalletsApi.js"),require("./client/EmbeddedWalletApi.js"),require("./embedded/EmbeddedBitcoinWalletProvider.js"),require("./embedded/stack/walletCreate.js"),require("./embedded/EmbeddedWalletProxy.js"),require("./utils/sleep.js"),require("./embedded/EventCallbackQueue.js"),require("./embedded/withMfa.js"),require("./embedded/EmbeddedWalletProvider.js"),require("eventemitter3"),require("viem"),require("@privy-io/ethereum"),require("./embedded/methods.js"),require("./embedded/stack/walletRpc.js"),require("./utils/encodings.js"),require("./embedded/stack/wallet-api-eth-transaction.js"),require("./embedded/stack/wallet-api-eth-typed-data.js"),require("./embedded/EmbeddedSolanaWalletProvider.js"),require("./solana/getWalletPublicKeyFromTransaction.js"),require("./solana/isVersionedTransaction.js"),require("./client/MfaPromises.js"),require("./client/PrivyInternal.js"),require("fetch-retry"),require("uuid"),require("@privy-io/api-base"),require("./Session.js"),require("js-cookie"),require("./utils/allSettled.js"),require("./toAbortSignalTimeout.js"),require("./utils/toSearchParams.js"),require("./client/logger.js"),require("./utils/noop.js"),require("./client/UserApi.js"),require("./client/auth/AuthApi.js"),require("./client/auth/CustomProviderApi.js"),require("./client/auth/maybeCreateWalletOnLogin.js"),require("./utils/shouldCreateEmbeddedEthWallet.js"),require("./utils/shouldCreateEmbeddedSolWallet.js"),require("./client/auth/EmailApi.js"),require("./client/auth/FarcasterApi.js"),require("./client/auth/FarcasterV2Api.js"),require("./client/auth/GuestApi.js"),require("./client/auth/OAuthApi.js"),require("./pkce.js"),require("./client/auth/PasskeyApi.js"),require("./client/auth/PhoneApi.js"),require("./client/auth/SiweApi.js"),require("./client/auth/SiwsApi.js"),require("./client/auth/SmartWalletApi.js"),require("./client/funding/FundingApi.js"),require("./client/funding/CoinbaseOnRampApi.js"),require("./client/funding/MoonpayOnRampApi.js"),require("./client/mfa/MfaApi.js"),require("./client/mfa/MfaPasskeyApi.js"),require("./client/mfa/MfaSmsApi.js"),require("./client/recovery/RecoveryApi.js"),require("./client/recovery/RecoveryICloudApi.js"),require("./client/recovery/RecoveryOAuthApi.js"),require("./embedded/types.js"),require("libphonenumber-js/examples.mobile.json"),require("canonicalize"),require("./action/delegatedActions/utils.js"),require("./action/delegatedActions/delegateWallet.js"),require("./action/delegatedActions/revokeWallets.js"),require("./action/crossApp/loginWithCrossAppAuth.js"),require("./action/crossApp/linkWithCrossAppAuth.js"),require("./index-CARkJvRM.js"),require("./action/crossApp/wallet/signMessage.js"),require("./action/crossApp/wallet/utils/isCrossAppWalletSmart.js"),require("./action/crossApp/wallet/utils/sendCrossAppRequest.js"),require("./action/crossApp/wallet/utils/getCrossAppAccountByWalletAddress.js"),require("./action/crossApp/wallet/utils/getProviderAccessTokenOrRelink.js"),require("./action/crossApp/wallet/utils/throwIfNotLoggedIn.js"),require("./action/crossApp/wallet/signTypedData.js"),require("./utils/typedData/generateDomainType.js"),require("./action/crossApp/wallet/sendTransaction.js"),exports.default=e.default,Object.defineProperty(exports,"BICONOMY",{enumerable:!0,get:function(){return r.BICONOMY}}),Object.defineProperty(exports,"COINBASE_SMART_WALLET",{enumerable:!0,get:function(){return r.COINBASE_SMART_WALLET}}),Object.defineProperty(exports,"KERNEL",{enumerable:!0,get:function(){return r.KERNEL}}),Object.defineProperty(exports,"LIGHT_ACCOUNT",{enumerable:!0,get:function(){return r.LIGHT_ACCOUNT}}),Object.defineProperty(exports,"SAFE",{enumerable:!0,get:function(){return r.SAFE}}),Object.defineProperty(exports,"THIRDWEB",{enumerable:!0,get:function(){return r.THIRDWEB}}),exports.LocalStorage=t.LocalStorage,exports.InMemoryCache=s.InMemoryCache,exports.MoonpayApiError=i.MoonpayApiError,exports.PrivyApiError=i.PrivyApiError,exports.PrivyClientError=i.PrivyClientError,exports.createErrorFormatter=i.createErrorFormatter,exports.errorIndicatesMfaCanceled=i.errorIndicatesMfaCanceled,exports.EmbeddedProviderError=o.EmbeddedProviderError,exports.PrivyConnectorError=o.PrivyConnectorError,exports.PrivyEmbeddedWalletErrorCode=o.PrivyEmbeddedWalletErrorCode,exports.PrivyProviderRpcError=o.PrivyProviderRpcError,exports.ProviderErrors=o.ProviderErrors,exports.errorIndicatesMaxMfaRetries=o.errorIndicatesMaxMfaRetries,exports.errorIndicatesMfaRateLimit=o.errorIndicatesMfaRateLimit,exports.errorIndicatesMfaTimeout=o.errorIndicatesMfaTimeout,exports.errorIndicatesMfaVerificationFailed=o.errorIndicatesMfaVerificationFailed,exports.errorIndicatesRecoveryIsNeeded=o.errorIndicatesRecoveryIsNeeded,exports.getUserEmbeddedEthereumWallet=a.getUserEmbeddedEthereumWallet,exports.getUserEmbeddedWallet=a.getUserEmbeddedWallet,exports.getAllUserEmbeddedEthereumWallets=n.getAllUserEmbeddedEthereumWallets,exports.getAllUserEmbeddedSolanaWallets=l.getAllUserEmbeddedSolanaWallets,exports.getAllUserEmbeddedBitcoinWallets=d.getAllUserEmbeddedBitcoinWallets,exports.isEmbeddedWalletAccount=u.isEmbeddedWalletAccount,exports.getEntropyDetailsFromAccount=p.getEntropyDetailsFromAccount,exports.getEntropyDetailsFromUser=p.getEntropyDetailsFromUser,exports.getUserSmartWallet=c.getUserSmartWallet,exports.getJsonRpcEndpointFromChain=m.getJsonRpcEndpointFromChain,exports.throwIfInvalidRecoveryUpgradePath=m.throwIfInvalidRecoveryUpgradePath,exports.countryCodesAndNumbers=j.countryCodesAndNumbers,exports.formatPhoneNumber=j.formatPhoneNumber,exports.getPhoneCountryCodeAndNumber=j.getPhoneCountryCodeAndNumber,exports.getPlaceholderPhoneNumber=j.getPlaceholderPhoneNumber,exports.lastFourDigits=j.lastFourDigits,exports.phoneNumberTypingFormatter=j.phoneNumberTypingFormatter,exports.validatePhoneNumber=j.validatePhoneNumber,exports.getUserEmbeddedSolanaWallet=q.getUserEmbeddedSolanaWallet,exports.toObjectKeys=g.toObjectKeys,exports.SolanaUsdcAddressMap=A.SolanaUsdcAddressMap,exports.UsdcAddressMap=A.UsdcAddressMap,exports.getIsTokenUsdc=A.getIsTokenUsdc,exports.chainToMoonpayCurrency=b.chainToMoonpayCurrency,exports.fundingMethodToMoonpayPaymentMethod=b.fundingMethodToMoonpayPaymentMethod,exports.isSupportedChainIdForMoonpay=b.isSupportedChainIdForMoonpay,exports.getCoinbaseOnRampUrl=E.getCoinbaseOnRampUrl,exports.isSupportedChainIdForCoinbaseOnramp=E.isSupportedChainIdForCoinbaseOnramp,exports.toCoinbaseAssetId=E.toCoinbaseAssetId,exports.toCoinbaseBlockchainFromChainId=E.toCoinbaseBlockchainFromChainId,exports.SolanaClient=x.SolanaClient,exports.createSiwsMessage=y.createSiwsMessage,exports.getSolanaRpcEndpointForCluster=C.getSolanaRpcEndpointForCluster,exports.getSolanaUsdcMintAddressForCluster=h.getSolanaUsdcMintAddressForCluster,exports.getSolanaClusterDisplayName=S.getSolanaClusterDisplayName,exports.ALL_WALLET_CLIENT_TYPES=f.ALL_WALLET_CLIENT_TYPES,exports.SUPPORTED_CONNECTOR_TYPES=f.SUPPORTED_CONNECTOR_TYPES,exports.formatLamportsAmount=W.formatLamportsAmount,exports.formatTokenAmount=W.formatTokenAmount,exports.formatWalletAddress=W.formatWalletAddress,exports.formatWeiAmount=W.formatWeiAmount,exports.generateAuthorizationSignature=v.generateAuthorizationSignature,exports.create=M.create,exports.rpc=I.rpc,exports.rawSign=U.rawSign,exports.getWallet=T.getWallet,exports.updateWallet=O.updateWallet,exports.isUnifiedWallet=w.isUnifiedWallet,exports.addSessionSigners=R.addSessionSigners,exports.removeSessionSigners=R.removeSessionSigners,exports.ConnectedStandardSolanaWallet=N.ConnectedStandardSolanaWallet,Object.defineProperty(exports,"getCountryCallingCode",{enumerable:!0,get:function(){return F.getCountryCallingCode}}),exports.delegatedActions=L.index,exports.crossApp=k.index,Object.keys(P).forEach((function(e){"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return P[e]}})}));
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./client/Privy.js"),r=require("@privy-io/public-api"),t=require("./storage/LocalStorage.js"),s=require("./storage/InMemoryStorage.js"),i=require("./Error.js"),o=require("./embedded/errors.js"),a=require("./utils/getUserEmbeddedEthereumWallet.js"),n=require("./utils/getAllUserEmbeddedEthereumWallets.js"),l=require("./utils/getAllUserEmbeddedSolanaWallets.js"),d=require("./utils/getAllUserEmbeddedBitcoinWallets.js"),u=require("./utils/embedded-wallets.js"),p=require("./utils/entropy.js"),c=require("./utils/getUserSmartWallet.js"),m=require("./embedded/utils/index.js"),j=require("./utils/phoneNumberUtils.js"),q=require("./utils/getUserEmbeddedSolanaWallet.js"),g=require("./utils/toObjectKeys.js"),A=require("./utils/getIsTokenUsdc.js"),b=require("./funding/moonpay.js"),E=require("./funding/coinbase.js"),x=require("./solana/client.js"),y=require("./solana/createSiwsMessage.js"),C=require("./solana/getSolanaRpcEndpointForCluster.js"),h=require("./solana/getSolanaUsdcMintAddressForCluster.js"),S=require("./solana/getSolanaClusterDisplayName.js"),f=require("./types.js"),P=require("@privy-io/chains"),W=require("./utils/formatters.js"),v=require("./wallet-api/generate-authorization-signature.js"),M=require("./wallet-api/create.js"),I=require("./wallet-api/rpc.js"),U=require("./wallet-api/raw-sign.js"),T=require("./wallet-api/get-wallet.js"),O=require("./wallet-api/update-wallet.js"),w=require("./wallet-api/unified-wallet.js"),R=require("./embedded/stack/session-signers.js"),N=require("./solana/ConnectedStandardSolanaWallet.js"),F=require("libphonenumber-js/min"),L=require("./index-BDWdfIuK.js"),k=require("./index-DzfqDJJ9.js");require("./client/AppApi.js"),require("./client/CrossAppApi.js"),require("./Token.js"),require("jose"),require("./client/DelegatedWalletsApi.js"),require("./client/EmbeddedWalletApi.js"),require("./embedded/EmbeddedBitcoinWalletProvider.js"),require("./embedded/stack/walletCreate.js"),require("./embedded/EmbeddedWalletProxy.js"),require("./utils/sleep.js"),require("./embedded/EventCallbackQueue.js"),require("./embedded/withMfa.js"),require("./embedded/EmbeddedWalletProvider.js"),require("eventemitter3"),require("viem"),require("@privy-io/ethereum"),require("./embedded/stack/walletRpc.js"),require("./utils/encodings.js"),require("./embedded/stack/wallet-api-eth-transaction.js"),require("./embedded/stack/wallet-api-eth-typed-data.js"),require("./embedded/EmbeddedSolanaWalletProvider.js"),require("./solana/getWalletPublicKeyFromTransaction.js"),require("./solana/isVersionedTransaction.js"),require("./client/MfaPromises.js"),require("./client/PrivyInternal.js"),require("fetch-retry"),require("uuid"),require("@privy-io/api-base"),require("./Session.js"),require("js-cookie"),require("./utils/allSettled.js"),require("./toAbortSignalTimeout.js"),require("./utils/toSearchParams.js"),require("./client/logger.js"),require("./utils/noop.js"),require("./client/UserApi.js"),require("./client/auth/AuthApi.js"),require("./client/auth/CustomProviderApi.js"),require("./client/auth/maybeCreateWalletOnLogin.js"),require("./utils/shouldCreateEmbeddedEthWallet.js"),require("./utils/shouldCreateEmbeddedSolWallet.js"),require("./client/auth/EmailApi.js"),require("./client/auth/FarcasterApi.js"),require("./client/auth/FarcasterV2Api.js"),require("./client/auth/GuestApi.js"),require("./client/auth/OAuthApi.js"),require("./pkce.js"),require("./client/auth/PasskeyApi.js"),require("./client/auth/PhoneApi.js"),require("./client/auth/SiweApi.js"),require("./client/auth/SiwsApi.js"),require("./client/auth/SmartWalletApi.js"),require("./client/funding/FundingApi.js"),require("./client/funding/CoinbaseOnRampApi.js"),require("./client/funding/MoonpayOnRampApi.js"),require("./client/mfa/MfaApi.js"),require("./client/mfa/MfaPasskeyApi.js"),require("./client/mfa/MfaSmsApi.js"),require("./client/recovery/RecoveryApi.js"),require("./client/recovery/RecoveryICloudApi.js"),require("./client/recovery/RecoveryOAuthApi.js"),require("./embedded/types.js"),require("libphonenumber-js/examples.mobile.json"),require("canonicalize"),require("./action/delegatedActions/utils.js"),require("./action/delegatedActions/delegateWallet.js"),require("./action/delegatedActions/revokeWallets.js"),require("./action/crossApp/loginWithCrossAppAuth.js"),require("./action/crossApp/linkWithCrossAppAuth.js"),require("./index-CARkJvRM.js"),require("./action/crossApp/wallet/signMessage.js"),require("./action/crossApp/wallet/utils/isCrossAppWalletSmart.js"),require("./action/crossApp/wallet/utils/sendCrossAppRequest.js"),require("./action/crossApp/wallet/utils/getCrossAppAccountByWalletAddress.js"),require("./action/crossApp/wallet/utils/getProviderAccessTokenOrRelink.js"),require("./action/crossApp/wallet/utils/throwIfNotLoggedIn.js"),require("./action/crossApp/wallet/signTypedData.js"),require("./utils/typedData/generateDomainType.js"),require("./action/crossApp/wallet/sendTransaction.js"),exports.default=e.default,Object.defineProperty(exports,"BICONOMY",{enumerable:!0,get:function(){return r.BICONOMY}}),Object.defineProperty(exports,"COINBASE_SMART_WALLET",{enumerable:!0,get:function(){return r.COINBASE_SMART_WALLET}}),Object.defineProperty(exports,"KERNEL",{enumerable:!0,get:function(){return r.KERNEL}}),Object.defineProperty(exports,"LIGHT_ACCOUNT",{enumerable:!0,get:function(){return r.LIGHT_ACCOUNT}}),Object.defineProperty(exports,"SAFE",{enumerable:!0,get:function(){return r.SAFE}}),Object.defineProperty(exports,"THIRDWEB",{enumerable:!0,get:function(){return r.THIRDWEB}}),exports.LocalStorage=t.LocalStorage,exports.InMemoryCache=s.InMemoryCache,exports.MoonpayApiError=i.MoonpayApiError,exports.PrivyApiError=i.PrivyApiError,exports.PrivyClientError=i.PrivyClientError,exports.createErrorFormatter=i.createErrorFormatter,exports.errorIndicatesMfaCanceled=i.errorIndicatesMfaCanceled,exports.EmbeddedProviderError=o.EmbeddedProviderError,exports.PrivyConnectorError=o.PrivyConnectorError,exports.PrivyEmbeddedWalletErrorCode=o.PrivyEmbeddedWalletErrorCode,exports.PrivyProviderRpcError=o.PrivyProviderRpcError,exports.ProviderErrors=o.ProviderErrors,exports.errorIndicatesMaxMfaRetries=o.errorIndicatesMaxMfaRetries,exports.errorIndicatesMfaRateLimit=o.errorIndicatesMfaRateLimit,exports.errorIndicatesMfaTimeout=o.errorIndicatesMfaTimeout,exports.errorIndicatesMfaVerificationFailed=o.errorIndicatesMfaVerificationFailed,exports.errorIndicatesRecoveryIsNeeded=o.errorIndicatesRecoveryIsNeeded,exports.getUserEmbeddedEthereumWallet=a.getUserEmbeddedEthereumWallet,exports.getUserEmbeddedWallet=a.getUserEmbeddedWallet,exports.getAllUserEmbeddedEthereumWallets=n.getAllUserEmbeddedEthereumWallets,exports.getAllUserEmbeddedSolanaWallets=l.getAllUserEmbeddedSolanaWallets,exports.getAllUserEmbeddedBitcoinWallets=d.getAllUserEmbeddedBitcoinWallets,exports.isEmbeddedWalletAccount=u.isEmbeddedWalletAccount,exports.getEntropyDetailsFromAccount=p.getEntropyDetailsFromAccount,exports.getEntropyDetailsFromUser=p.getEntropyDetailsFromUser,exports.getUserSmartWallet=c.getUserSmartWallet,exports.getJsonRpcEndpointFromChain=m.getJsonRpcEndpointFromChain,exports.throwIfInvalidRecoveryUpgradePath=m.throwIfInvalidRecoveryUpgradePath,exports.countryCodesAndNumbers=j.countryCodesAndNumbers,exports.formatPhoneNumber=j.formatPhoneNumber,exports.getPhoneCountryCodeAndNumber=j.getPhoneCountryCodeAndNumber,exports.getPlaceholderPhoneNumber=j.getPlaceholderPhoneNumber,exports.lastFourDigits=j.lastFourDigits,exports.phoneNumberTypingFormatter=j.phoneNumberTypingFormatter,exports.validatePhoneNumber=j.validatePhoneNumber,exports.getUserEmbeddedSolanaWallet=q.getUserEmbeddedSolanaWallet,exports.toObjectKeys=g.toObjectKeys,exports.SolanaUsdcAddressMap=A.SolanaUsdcAddressMap,exports.UsdcAddressMap=A.UsdcAddressMap,exports.getIsTokenUsdc=A.getIsTokenUsdc,exports.chainToMoonpayCurrency=b.chainToMoonpayCurrency,exports.fundingMethodToMoonpayPaymentMethod=b.fundingMethodToMoonpayPaymentMethod,exports.isSupportedChainIdForMoonpay=b.isSupportedChainIdForMoonpay,exports.getCoinbaseOnRampUrl=E.getCoinbaseOnRampUrl,exports.isSupportedChainIdForCoinbaseOnramp=E.isSupportedChainIdForCoinbaseOnramp,exports.toCoinbaseAssetId=E.toCoinbaseAssetId,exports.toCoinbaseBlockchainFromChainId=E.toCoinbaseBlockchainFromChainId,exports.SolanaClient=x.SolanaClient,exports.createSiwsMessage=y.createSiwsMessage,exports.getSolanaRpcEndpointForCluster=C.getSolanaRpcEndpointForCluster,exports.getSolanaUsdcMintAddressForCluster=h.getSolanaUsdcMintAddressForCluster,exports.getSolanaClusterDisplayName=S.getSolanaClusterDisplayName,exports.ALL_WALLET_CLIENT_TYPES=f.ALL_WALLET_CLIENT_TYPES,exports.SUPPORTED_CONNECTOR_TYPES=f.SUPPORTED_CONNECTOR_TYPES,exports.formatLamportsAmount=W.formatLamportsAmount,exports.formatTokenAmount=W.formatTokenAmount,exports.formatWalletAddress=W.formatWalletAddress,exports.formatWeiAmount=W.formatWeiAmount,exports.generateAuthorizationSignature=v.generateAuthorizationSignature,exports.create=M.create,exports.rpc=I.rpc,exports.rawSign=U.rawSign,exports.getWallet=T.getWallet,exports.updateWallet=O.updateWallet,exports.isUnifiedWallet=w.isUnifiedWallet,exports.addSessionSigners=R.addSessionSigners,exports.removeSessionSigners=R.removeSessionSigners,exports.ConnectedStandardSolanaWallet=N.ConnectedStandardSolanaWallet,Object.defineProperty(exports,"getCountryCallingCode",{enumerable:!0,get:function(){return F.getCountryCallingCode}}),exports.delegatedActions=L.index,exports.crossApp=k.index,Object.keys(P).forEach((function(e){"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return P[e]}})}));
@@ -326,6 +326,7 @@ declare class EmbeddedWalletProvider extends EventEmitter implements EIP1193Prov
326
326
  */
327
327
  private internalSwitchEthereumChain;
328
328
  private handlePopulateTransaction;
329
+ private handleSignTransaction;
329
330
  private handleSendTransaction;
330
331
  private handleEstimateGas;
331
332
  private handleSwitchEthereumChain;
@@ -786,6 +787,12 @@ declare class AppApi {
786
787
  line_oauth: boolean;
787
788
  linkedin_oauth: boolean;
788
789
  apple_oauth: boolean;
790
+ custom_oauth_providers: {
791
+ provider: `custom:${string}`;
792
+ provider_display_name: string;
793
+ provider_icon_url: string;
794
+ enabled: boolean;
795
+ }[];
789
796
  farcaster_auth: boolean;
790
797
  passkey_auth: boolean;
791
798
  passkeys_for_signup_enabled: boolean;
@@ -1264,6 +1271,16 @@ declare class EmbeddedWalletApi {
1264
1271
  first_verified_at: number | null;
1265
1272
  latest_verified_at: number | null;
1266
1273
  subject: string;
1274
+ } | {
1275
+ type: `custom:${string}`;
1276
+ verified_at: number;
1277
+ first_verified_at: number | null;
1278
+ latest_verified_at: number | null;
1279
+ subject: string;
1280
+ name?: string | undefined;
1281
+ email?: string | undefined;
1282
+ username?: string | undefined;
1283
+ profile_picture_url?: string | undefined;
1267
1284
  } | {
1268
1285
  type: "custom_auth";
1269
1286
  verified_at: number;
@@ -1705,6 +1722,16 @@ declare class UserApi {
1705
1722
  first_verified_at: number | null;
1706
1723
  latest_verified_at: number | null;
1707
1724
  subject: string;
1725
+ } | {
1726
+ type: `custom:${string}`;
1727
+ verified_at: number;
1728
+ first_verified_at: number | null;
1729
+ latest_verified_at: number | null;
1730
+ subject: string;
1731
+ name?: string | undefined;
1732
+ email?: string | undefined;
1733
+ username?: string | undefined;
1734
+ profile_picture_url?: string | undefined;
1708
1735
  } | {
1709
1736
  type: "custom_auth";
1710
1737
  verified_at: number;
@@ -2043,6 +2070,16 @@ declare class EmailApi {
2043
2070
  first_verified_at: number | null;
2044
2071
  latest_verified_at: number | null;
2045
2072
  subject: string;
2073
+ } | {
2074
+ type: `custom:${string}`;
2075
+ verified_at: number;
2076
+ first_verified_at: number | null;
2077
+ latest_verified_at: number | null;
2078
+ subject: string;
2079
+ name?: string | undefined;
2080
+ email?: string | undefined;
2081
+ username?: string | undefined;
2082
+ profile_picture_url?: string | undefined;
2046
2083
  } | {
2047
2084
  type: "custom_auth";
2048
2085
  verified_at: number;
@@ -2346,6 +2383,16 @@ declare class EmailApi {
2346
2383
  first_verified_at: number | null;
2347
2384
  latest_verified_at: number | null;
2348
2385
  subject: string;
2386
+ } | {
2387
+ type: `custom:${string}`;
2388
+ verified_at: number;
2389
+ first_verified_at: number | null;
2390
+ latest_verified_at: number | null;
2391
+ subject: string;
2392
+ name?: string | undefined;
2393
+ email?: string | undefined;
2394
+ username?: string | undefined;
2395
+ profile_picture_url?: string | undefined;
2349
2396
  } | {
2350
2397
  type: "custom_auth";
2351
2398
  verified_at: number;
@@ -2638,6 +2685,16 @@ declare class EmailApi {
2638
2685
  first_verified_at: number | null;
2639
2686
  latest_verified_at: number | null;
2640
2687
  subject: string;
2688
+ } | {
2689
+ type: `custom:${string}`;
2690
+ verified_at: number;
2691
+ first_verified_at: number | null;
2692
+ latest_verified_at: number | null;
2693
+ subject: string;
2694
+ name?: string | undefined;
2695
+ email?: string | undefined;
2696
+ username?: string | undefined;
2697
+ profile_picture_url?: string | undefined;
2641
2698
  } | {
2642
2699
  type: "custom_auth";
2643
2700
  verified_at: number;
@@ -2965,6 +3022,16 @@ declare class FarcasterApi {
2965
3022
  first_verified_at: number | null;
2966
3023
  latest_verified_at: number | null;
2967
3024
  subject: string;
3025
+ } | {
3026
+ type: `custom:${string}`;
3027
+ verified_at: number;
3028
+ first_verified_at: number | null;
3029
+ latest_verified_at: number | null;
3030
+ subject: string;
3031
+ name?: string | undefined;
3032
+ email?: string | undefined;
3033
+ username?: string | undefined;
3034
+ profile_picture_url?: string | undefined;
2968
3035
  } | {
2969
3036
  type: "custom_auth";
2970
3037
  verified_at: number;
@@ -3262,6 +3329,16 @@ declare class FarcasterApi {
3262
3329
  first_verified_at: number | null;
3263
3330
  latest_verified_at: number | null;
3264
3331
  subject: string;
3332
+ } | {
3333
+ type: `custom:${string}`;
3334
+ verified_at: number;
3335
+ first_verified_at: number | null;
3336
+ latest_verified_at: number | null;
3337
+ subject: string;
3338
+ name?: string | undefined;
3339
+ email?: string | undefined;
3340
+ username?: string | undefined;
3341
+ profile_picture_url?: string | undefined;
3265
3342
  } | {
3266
3343
  type: "custom_auth";
3267
3344
  verified_at: number;
@@ -3607,6 +3684,16 @@ declare class OAuthApi {
3607
3684
  first_verified_at: number | null;
3608
3685
  latest_verified_at: number | null;
3609
3686
  subject: string;
3687
+ } | {
3688
+ type: `custom:${string}`;
3689
+ verified_at: number;
3690
+ first_verified_at: number | null;
3691
+ latest_verified_at: number | null;
3692
+ subject: string;
3693
+ name?: string | undefined;
3694
+ email?: string | undefined;
3695
+ username?: string | undefined;
3696
+ profile_picture_url?: string | undefined;
3610
3697
  } | {
3611
3698
  type: "custom_auth";
3612
3699
  verified_at: number;
@@ -3905,6 +3992,16 @@ declare class OAuthApi {
3905
3992
  first_verified_at: number | null;
3906
3993
  latest_verified_at: number | null;
3907
3994
  subject: string;
3995
+ } | {
3996
+ type: `custom:${string}`;
3997
+ verified_at: number;
3998
+ first_verified_at: number | null;
3999
+ latest_verified_at: number | null;
4000
+ subject: string;
4001
+ name?: string | undefined;
4002
+ email?: string | undefined;
4003
+ username?: string | undefined;
4004
+ profile_picture_url?: string | undefined;
3908
4005
  } | {
3909
4006
  type: "custom_auth";
3910
4007
  verified_at: number;
@@ -4323,6 +4420,16 @@ declare class PasskeyApi {
4323
4420
  first_verified_at: number | null;
4324
4421
  latest_verified_at: number | null;
4325
4422
  subject: string;
4423
+ } | {
4424
+ type: `custom:${string}`;
4425
+ verified_at: number;
4426
+ first_verified_at: number | null;
4427
+ latest_verified_at: number | null;
4428
+ subject: string;
4429
+ name?: string | undefined;
4430
+ email?: string | undefined;
4431
+ username?: string | undefined;
4432
+ profile_picture_url?: string | undefined;
4326
4433
  } | {
4327
4434
  type: "custom_auth";
4328
4435
  verified_at: number;
@@ -4641,6 +4748,16 @@ declare class PhoneApi {
4641
4748
  first_verified_at: number | null;
4642
4749
  latest_verified_at: number | null;
4643
4750
  subject: string;
4751
+ } | {
4752
+ type: `custom:${string}`;
4753
+ verified_at: number;
4754
+ first_verified_at: number | null;
4755
+ latest_verified_at: number | null;
4756
+ subject: string;
4757
+ name?: string | undefined;
4758
+ email?: string | undefined;
4759
+ username?: string | undefined;
4760
+ profile_picture_url?: string | undefined;
4644
4761
  } | {
4645
4762
  type: "custom_auth";
4646
4763
  verified_at: number;
@@ -4944,6 +5061,16 @@ declare class PhoneApi {
4944
5061
  first_verified_at: number | null;
4945
5062
  latest_verified_at: number | null;
4946
5063
  subject: string;
5064
+ } | {
5065
+ type: `custom:${string}`;
5066
+ verified_at: number;
5067
+ first_verified_at: number | null;
5068
+ latest_verified_at: number | null;
5069
+ subject: string;
5070
+ name?: string | undefined;
5071
+ email?: string | undefined;
5072
+ username?: string | undefined;
5073
+ profile_picture_url?: string | undefined;
4947
5074
  } | {
4948
5075
  type: "custom_auth";
4949
5076
  verified_at: number;
@@ -5236,6 +5363,16 @@ declare class PhoneApi {
5236
5363
  first_verified_at: number | null;
5237
5364
  latest_verified_at: number | null;
5238
5365
  subject: string;
5366
+ } | {
5367
+ type: `custom:${string}`;
5368
+ verified_at: number;
5369
+ first_verified_at: number | null;
5370
+ latest_verified_at: number | null;
5371
+ subject: string;
5372
+ name?: string | undefined;
5373
+ email?: string | undefined;
5374
+ username?: string | undefined;
5375
+ profile_picture_url?: string | undefined;
5239
5376
  } | {
5240
5377
  type: "custom_auth";
5241
5378
  verified_at: number;
@@ -5599,6 +5736,16 @@ declare class SiweApi {
5599
5736
  first_verified_at: number | null;
5600
5737
  latest_verified_at: number | null;
5601
5738
  subject: string;
5739
+ } | {
5740
+ type: `custom:${string}`;
5741
+ verified_at: number;
5742
+ first_verified_at: number | null;
5743
+ latest_verified_at: number | null;
5744
+ subject: string;
5745
+ name?: string | undefined;
5746
+ email?: string | undefined;
5747
+ username?: string | undefined;
5748
+ profile_picture_url?: string | undefined;
5602
5749
  } | {
5603
5750
  type: "custom_auth";
5604
5751
  verified_at: number;
@@ -5908,6 +6055,16 @@ declare class SiweApi {
5908
6055
  first_verified_at: number | null;
5909
6056
  latest_verified_at: number | null;
5910
6057
  subject: string;
6058
+ } | {
6059
+ type: `custom:${string}`;
6060
+ verified_at: number;
6061
+ first_verified_at: number | null;
6062
+ latest_verified_at: number | null;
6063
+ subject: string;
6064
+ name?: string | undefined;
6065
+ email?: string | undefined;
6066
+ username?: string | undefined;
6067
+ profile_picture_url?: string | undefined;
5911
6068
  } | {
5912
6069
  type: "custom_auth";
5913
6070
  verified_at: number;
@@ -6250,6 +6407,16 @@ declare class SiwsApi {
6250
6407
  first_verified_at: number | null;
6251
6408
  latest_verified_at: number | null;
6252
6409
  subject: string;
6410
+ } | {
6411
+ type: `custom:${string}`;
6412
+ verified_at: number;
6413
+ first_verified_at: number | null;
6414
+ latest_verified_at: number | null;
6415
+ subject: string;
6416
+ name?: string | undefined;
6417
+ email?: string | undefined;
6418
+ username?: string | undefined;
6419
+ profile_picture_url?: string | undefined;
6253
6420
  } | {
6254
6421
  type: "custom_auth";
6255
6422
  verified_at: number;
@@ -6564,6 +6731,16 @@ declare class SiwsApi {
6564
6731
  first_verified_at: number | null;
6565
6732
  latest_verified_at: number | null;
6566
6733
  subject: string;
6734
+ } | {
6735
+ type: `custom:${string}`;
6736
+ verified_at: number;
6737
+ first_verified_at: number | null;
6738
+ latest_verified_at: number | null;
6739
+ subject: string;
6740
+ name?: string | undefined;
6741
+ email?: string | undefined;
6742
+ username?: string | undefined;
6743
+ profile_picture_url?: string | undefined;
6567
6744
  } | {
6568
6745
  type: "custom_auth";
6569
6746
  verified_at: number;
@@ -6913,6 +7090,16 @@ declare class SmartWalletApi {
6913
7090
  first_verified_at: number | null;
6914
7091
  latest_verified_at: number | null;
6915
7092
  subject: string;
7093
+ } | {
7094
+ type: `custom:${string}`;
7095
+ verified_at: number;
7096
+ first_verified_at: number | null;
7097
+ latest_verified_at: number | null;
7098
+ subject: string;
7099
+ name?: string | undefined;
7100
+ email?: string | undefined;
7101
+ username?: string | undefined;
7102
+ profile_picture_url?: string | undefined;
6916
7103
  } | {
6917
7104
  type: "custom_auth";
6918
7105
  verified_at: number;
@@ -8002,6 +8189,16 @@ declare const delegateWallet: (client: Privy) => ({ address, chainType }: Delega
8002
8189
  first_verified_at: number | null;
8003
8190
  latest_verified_at: number | null;
8004
8191
  subject: string;
8192
+ } | {
8193
+ type: `custom:${string}`;
8194
+ verified_at: number;
8195
+ first_verified_at: number | null;
8196
+ latest_verified_at: number | null;
8197
+ subject: string;
8198
+ name?: string | undefined;
8199
+ email?: string | undefined;
8200
+ username?: string | undefined;
8201
+ profile_picture_url?: string | undefined;
8005
8202
  } | {
8006
8203
  type: "custom_auth";
8007
8204
  verified_at: number;
@@ -8302,6 +8499,16 @@ declare const revokeWallets: (client: Privy) => () => Promise<{
8302
8499
  first_verified_at: number | null;
8303
8500
  latest_verified_at: number | null;
8304
8501
  subject: string;
8502
+ } | {
8503
+ type: `custom:${string}`;
8504
+ verified_at: number;
8505
+ first_verified_at: number | null;
8506
+ latest_verified_at: number | null;
8507
+ subject: string;
8508
+ name?: string | undefined;
8509
+ email?: string | undefined;
8510
+ username?: string | undefined;
8511
+ profile_picture_url?: string | undefined;
8305
8512
  } | {
8306
8513
  type: "custom_auth";
8307
8514
  verified_at: number;
@@ -326,6 +326,7 @@ declare class EmbeddedWalletProvider extends EventEmitter implements EIP1193Prov
326
326
  */
327
327
  private internalSwitchEthereumChain;
328
328
  private handlePopulateTransaction;
329
+ private handleSignTransaction;
329
330
  private handleSendTransaction;
330
331
  private handleEstimateGas;
331
332
  private handleSwitchEthereumChain;
@@ -786,6 +787,12 @@ declare class AppApi {
786
787
  line_oauth: boolean;
787
788
  linkedin_oauth: boolean;
788
789
  apple_oauth: boolean;
790
+ custom_oauth_providers: {
791
+ provider: `custom:${string}`;
792
+ provider_display_name: string;
793
+ provider_icon_url: string;
794
+ enabled: boolean;
795
+ }[];
789
796
  farcaster_auth: boolean;
790
797
  passkey_auth: boolean;
791
798
  passkeys_for_signup_enabled: boolean;
@@ -1264,6 +1271,16 @@ declare class EmbeddedWalletApi {
1264
1271
  first_verified_at: number | null;
1265
1272
  latest_verified_at: number | null;
1266
1273
  subject: string;
1274
+ } | {
1275
+ type: `custom:${string}`;
1276
+ verified_at: number;
1277
+ first_verified_at: number | null;
1278
+ latest_verified_at: number | null;
1279
+ subject: string;
1280
+ name?: string | undefined;
1281
+ email?: string | undefined;
1282
+ username?: string | undefined;
1283
+ profile_picture_url?: string | undefined;
1267
1284
  } | {
1268
1285
  type: "custom_auth";
1269
1286
  verified_at: number;
@@ -1705,6 +1722,16 @@ declare class UserApi {
1705
1722
  first_verified_at: number | null;
1706
1723
  latest_verified_at: number | null;
1707
1724
  subject: string;
1725
+ } | {
1726
+ type: `custom:${string}`;
1727
+ verified_at: number;
1728
+ first_verified_at: number | null;
1729
+ latest_verified_at: number | null;
1730
+ subject: string;
1731
+ name?: string | undefined;
1732
+ email?: string | undefined;
1733
+ username?: string | undefined;
1734
+ profile_picture_url?: string | undefined;
1708
1735
  } | {
1709
1736
  type: "custom_auth";
1710
1737
  verified_at: number;
@@ -2043,6 +2070,16 @@ declare class EmailApi {
2043
2070
  first_verified_at: number | null;
2044
2071
  latest_verified_at: number | null;
2045
2072
  subject: string;
2073
+ } | {
2074
+ type: `custom:${string}`;
2075
+ verified_at: number;
2076
+ first_verified_at: number | null;
2077
+ latest_verified_at: number | null;
2078
+ subject: string;
2079
+ name?: string | undefined;
2080
+ email?: string | undefined;
2081
+ username?: string | undefined;
2082
+ profile_picture_url?: string | undefined;
2046
2083
  } | {
2047
2084
  type: "custom_auth";
2048
2085
  verified_at: number;
@@ -2346,6 +2383,16 @@ declare class EmailApi {
2346
2383
  first_verified_at: number | null;
2347
2384
  latest_verified_at: number | null;
2348
2385
  subject: string;
2386
+ } | {
2387
+ type: `custom:${string}`;
2388
+ verified_at: number;
2389
+ first_verified_at: number | null;
2390
+ latest_verified_at: number | null;
2391
+ subject: string;
2392
+ name?: string | undefined;
2393
+ email?: string | undefined;
2394
+ username?: string | undefined;
2395
+ profile_picture_url?: string | undefined;
2349
2396
  } | {
2350
2397
  type: "custom_auth";
2351
2398
  verified_at: number;
@@ -2638,6 +2685,16 @@ declare class EmailApi {
2638
2685
  first_verified_at: number | null;
2639
2686
  latest_verified_at: number | null;
2640
2687
  subject: string;
2688
+ } | {
2689
+ type: `custom:${string}`;
2690
+ verified_at: number;
2691
+ first_verified_at: number | null;
2692
+ latest_verified_at: number | null;
2693
+ subject: string;
2694
+ name?: string | undefined;
2695
+ email?: string | undefined;
2696
+ username?: string | undefined;
2697
+ profile_picture_url?: string | undefined;
2641
2698
  } | {
2642
2699
  type: "custom_auth";
2643
2700
  verified_at: number;
@@ -2965,6 +3022,16 @@ declare class FarcasterApi {
2965
3022
  first_verified_at: number | null;
2966
3023
  latest_verified_at: number | null;
2967
3024
  subject: string;
3025
+ } | {
3026
+ type: `custom:${string}`;
3027
+ verified_at: number;
3028
+ first_verified_at: number | null;
3029
+ latest_verified_at: number | null;
3030
+ subject: string;
3031
+ name?: string | undefined;
3032
+ email?: string | undefined;
3033
+ username?: string | undefined;
3034
+ profile_picture_url?: string | undefined;
2968
3035
  } | {
2969
3036
  type: "custom_auth";
2970
3037
  verified_at: number;
@@ -3262,6 +3329,16 @@ declare class FarcasterApi {
3262
3329
  first_verified_at: number | null;
3263
3330
  latest_verified_at: number | null;
3264
3331
  subject: string;
3332
+ } | {
3333
+ type: `custom:${string}`;
3334
+ verified_at: number;
3335
+ first_verified_at: number | null;
3336
+ latest_verified_at: number | null;
3337
+ subject: string;
3338
+ name?: string | undefined;
3339
+ email?: string | undefined;
3340
+ username?: string | undefined;
3341
+ profile_picture_url?: string | undefined;
3265
3342
  } | {
3266
3343
  type: "custom_auth";
3267
3344
  verified_at: number;
@@ -3607,6 +3684,16 @@ declare class OAuthApi {
3607
3684
  first_verified_at: number | null;
3608
3685
  latest_verified_at: number | null;
3609
3686
  subject: string;
3687
+ } | {
3688
+ type: `custom:${string}`;
3689
+ verified_at: number;
3690
+ first_verified_at: number | null;
3691
+ latest_verified_at: number | null;
3692
+ subject: string;
3693
+ name?: string | undefined;
3694
+ email?: string | undefined;
3695
+ username?: string | undefined;
3696
+ profile_picture_url?: string | undefined;
3610
3697
  } | {
3611
3698
  type: "custom_auth";
3612
3699
  verified_at: number;
@@ -3905,6 +3992,16 @@ declare class OAuthApi {
3905
3992
  first_verified_at: number | null;
3906
3993
  latest_verified_at: number | null;
3907
3994
  subject: string;
3995
+ } | {
3996
+ type: `custom:${string}`;
3997
+ verified_at: number;
3998
+ first_verified_at: number | null;
3999
+ latest_verified_at: number | null;
4000
+ subject: string;
4001
+ name?: string | undefined;
4002
+ email?: string | undefined;
4003
+ username?: string | undefined;
4004
+ profile_picture_url?: string | undefined;
3908
4005
  } | {
3909
4006
  type: "custom_auth";
3910
4007
  verified_at: number;
@@ -4323,6 +4420,16 @@ declare class PasskeyApi {
4323
4420
  first_verified_at: number | null;
4324
4421
  latest_verified_at: number | null;
4325
4422
  subject: string;
4423
+ } | {
4424
+ type: `custom:${string}`;
4425
+ verified_at: number;
4426
+ first_verified_at: number | null;
4427
+ latest_verified_at: number | null;
4428
+ subject: string;
4429
+ name?: string | undefined;
4430
+ email?: string | undefined;
4431
+ username?: string | undefined;
4432
+ profile_picture_url?: string | undefined;
4326
4433
  } | {
4327
4434
  type: "custom_auth";
4328
4435
  verified_at: number;
@@ -4641,6 +4748,16 @@ declare class PhoneApi {
4641
4748
  first_verified_at: number | null;
4642
4749
  latest_verified_at: number | null;
4643
4750
  subject: string;
4751
+ } | {
4752
+ type: `custom:${string}`;
4753
+ verified_at: number;
4754
+ first_verified_at: number | null;
4755
+ latest_verified_at: number | null;
4756
+ subject: string;
4757
+ name?: string | undefined;
4758
+ email?: string | undefined;
4759
+ username?: string | undefined;
4760
+ profile_picture_url?: string | undefined;
4644
4761
  } | {
4645
4762
  type: "custom_auth";
4646
4763
  verified_at: number;
@@ -4944,6 +5061,16 @@ declare class PhoneApi {
4944
5061
  first_verified_at: number | null;
4945
5062
  latest_verified_at: number | null;
4946
5063
  subject: string;
5064
+ } | {
5065
+ type: `custom:${string}`;
5066
+ verified_at: number;
5067
+ first_verified_at: number | null;
5068
+ latest_verified_at: number | null;
5069
+ subject: string;
5070
+ name?: string | undefined;
5071
+ email?: string | undefined;
5072
+ username?: string | undefined;
5073
+ profile_picture_url?: string | undefined;
4947
5074
  } | {
4948
5075
  type: "custom_auth";
4949
5076
  verified_at: number;
@@ -5236,6 +5363,16 @@ declare class PhoneApi {
5236
5363
  first_verified_at: number | null;
5237
5364
  latest_verified_at: number | null;
5238
5365
  subject: string;
5366
+ } | {
5367
+ type: `custom:${string}`;
5368
+ verified_at: number;
5369
+ first_verified_at: number | null;
5370
+ latest_verified_at: number | null;
5371
+ subject: string;
5372
+ name?: string | undefined;
5373
+ email?: string | undefined;
5374
+ username?: string | undefined;
5375
+ profile_picture_url?: string | undefined;
5239
5376
  } | {
5240
5377
  type: "custom_auth";
5241
5378
  verified_at: number;
@@ -5599,6 +5736,16 @@ declare class SiweApi {
5599
5736
  first_verified_at: number | null;
5600
5737
  latest_verified_at: number | null;
5601
5738
  subject: string;
5739
+ } | {
5740
+ type: `custom:${string}`;
5741
+ verified_at: number;
5742
+ first_verified_at: number | null;
5743
+ latest_verified_at: number | null;
5744
+ subject: string;
5745
+ name?: string | undefined;
5746
+ email?: string | undefined;
5747
+ username?: string | undefined;
5748
+ profile_picture_url?: string | undefined;
5602
5749
  } | {
5603
5750
  type: "custom_auth";
5604
5751
  verified_at: number;
@@ -5908,6 +6055,16 @@ declare class SiweApi {
5908
6055
  first_verified_at: number | null;
5909
6056
  latest_verified_at: number | null;
5910
6057
  subject: string;
6058
+ } | {
6059
+ type: `custom:${string}`;
6060
+ verified_at: number;
6061
+ first_verified_at: number | null;
6062
+ latest_verified_at: number | null;
6063
+ subject: string;
6064
+ name?: string | undefined;
6065
+ email?: string | undefined;
6066
+ username?: string | undefined;
6067
+ profile_picture_url?: string | undefined;
5911
6068
  } | {
5912
6069
  type: "custom_auth";
5913
6070
  verified_at: number;
@@ -6250,6 +6407,16 @@ declare class SiwsApi {
6250
6407
  first_verified_at: number | null;
6251
6408
  latest_verified_at: number | null;
6252
6409
  subject: string;
6410
+ } | {
6411
+ type: `custom:${string}`;
6412
+ verified_at: number;
6413
+ first_verified_at: number | null;
6414
+ latest_verified_at: number | null;
6415
+ subject: string;
6416
+ name?: string | undefined;
6417
+ email?: string | undefined;
6418
+ username?: string | undefined;
6419
+ profile_picture_url?: string | undefined;
6253
6420
  } | {
6254
6421
  type: "custom_auth";
6255
6422
  verified_at: number;
@@ -6564,6 +6731,16 @@ declare class SiwsApi {
6564
6731
  first_verified_at: number | null;
6565
6732
  latest_verified_at: number | null;
6566
6733
  subject: string;
6734
+ } | {
6735
+ type: `custom:${string}`;
6736
+ verified_at: number;
6737
+ first_verified_at: number | null;
6738
+ latest_verified_at: number | null;
6739
+ subject: string;
6740
+ name?: string | undefined;
6741
+ email?: string | undefined;
6742
+ username?: string | undefined;
6743
+ profile_picture_url?: string | undefined;
6567
6744
  } | {
6568
6745
  type: "custom_auth";
6569
6746
  verified_at: number;
@@ -6913,6 +7090,16 @@ declare class SmartWalletApi {
6913
7090
  first_verified_at: number | null;
6914
7091
  latest_verified_at: number | null;
6915
7092
  subject: string;
7093
+ } | {
7094
+ type: `custom:${string}`;
7095
+ verified_at: number;
7096
+ first_verified_at: number | null;
7097
+ latest_verified_at: number | null;
7098
+ subject: string;
7099
+ name?: string | undefined;
7100
+ email?: string | undefined;
7101
+ username?: string | undefined;
7102
+ profile_picture_url?: string | undefined;
6916
7103
  } | {
6917
7104
  type: "custom_auth";
6918
7105
  verified_at: number;
@@ -8002,6 +8189,16 @@ declare const delegateWallet: (client: Privy) => ({ address, chainType }: Delega
8002
8189
  first_verified_at: number | null;
8003
8190
  latest_verified_at: number | null;
8004
8191
  subject: string;
8192
+ } | {
8193
+ type: `custom:${string}`;
8194
+ verified_at: number;
8195
+ first_verified_at: number | null;
8196
+ latest_verified_at: number | null;
8197
+ subject: string;
8198
+ name?: string | undefined;
8199
+ email?: string | undefined;
8200
+ username?: string | undefined;
8201
+ profile_picture_url?: string | undefined;
8005
8202
  } | {
8006
8203
  type: "custom_auth";
8007
8204
  verified_at: number;
@@ -8302,6 +8499,16 @@ declare const revokeWallets: (client: Privy) => () => Promise<{
8302
8499
  first_verified_at: number | null;
8303
8500
  latest_verified_at: number | null;
8304
8501
  subject: string;
8502
+ } | {
8503
+ type: `custom:${string}`;
8504
+ verified_at: number;
8505
+ first_verified_at: number | null;
8506
+ latest_verified_at: number | null;
8507
+ subject: string;
8508
+ name?: string | undefined;
8509
+ email?: string | undefined;
8510
+ username?: string | undefined;
8511
+ profile_picture_url?: string | undefined;
8305
8512
  } | {
8306
8513
  type: "custom_auth";
8307
8514
  verified_at: number;
@@ -1 +1 @@
1
- import{DEFAULT_SUPPORTED_CHAINS as e,dedupeSupportedChains as r}from"@privy-io/chains";import{PrivyClientError as t}from"../Error.mjs";import{EmbeddedBitcoinWalletProvider as o}from"../embedded/EmbeddedBitcoinWalletProvider.mjs";import{errorIndicatesRecoveryIsNeeded as i}from"../embedded/errors.mjs";import{walletCreate as d}from"../embedded/stack/walletCreate.mjs";import{throwIfInvalidRecoveryUpgradePath as a}from"../embedded/utils/index.mjs";import{isUnifiedWallet as s}from"../wallet-api/unified-wallet.mjs";import{EmbeddedWalletProxy as n}from"../embedded/EmbeddedWalletProxy.mjs";import{EmbeddedWalletProvider as c}from"../embedded/EmbeddedWalletProvider.mjs";import{EmbeddedSolanaWalletProvider as l}from"../embedded/EmbeddedSolanaWalletProvider.mjs";import"../embedded/types.mjs";import"../wallet-api/create.mjs";import"@privy-io/public-api";import"viem";import"../utils/sleep.mjs";import"../embedded/EventCallbackQueue.mjs";import"../embedded/withMfa.mjs";import"eventemitter3";import"@privy-io/ethereum";import"../embedded/methods.mjs";import"../embedded/stack/walletRpc.mjs";import"../utils/encodings.mjs";import"../wallet-api/rpc.mjs";import"../wallet-api/generate-authorization-signature.mjs";import"canonicalize";import"../embedded/stack/wallet-api-eth-transaction.mjs";import"../embedded/stack/wallet-api-eth-typed-data.mjs";import"../solana/getWalletPublicKeyFromTransaction.mjs";import"../solana/isVersionedTransaction.mjs";class y{setMessagePoster(e){this._proxy=new n(e,this._mfaPromises),this._mfa.setProxy(this._proxy)}async signWithUserSigner(e){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");let r=await this._privyInternal.getAccessToken();if(!r)throw new t({error:"User must be logged in to sign a message with the user signer",code:"user_signer_sign_error"});let{signature:o}=await this._proxy.signWithUserSigner({accessToken:r,message:e.message});return{signature:o}}async add(e){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if("user-controlled-server-wallets-only"===this._privyInternal.config?.embedded_wallet_config.mode)await d({context:{app:this._appApi,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e)},chainType:e.chainType});else{let r=await this._privyInternal.getAccessToken();if(!r)throw new t({error:"User must be logged in to create an embedded wallet",code:"embedded_wallet_creation_error"});await this._proxy.addWallet({accessToken:r,...e})}let{user:r}=await this._privyInternal.refreshSession();return{user:r}}async getBitcoinProvider({wallet:e,entropyId:r,entropyIdVerifier:t,recoveryPassword:i,recoveryAccessToken:d,recoverySecretOverride:a}){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if(!await this._privyInternal.getAccessToken())throw Error("User must be logged in to create an embedded wallet");return s(e)||await this._load({entropyId:r,entropyIdVerifier:t,wallet:e,recoveryPassword:i,recoveryAccessToken:d,recoverySecretOverride:a}),new o({account:e,privyInternal:this._privyInternal,proxy:this._proxy,entropyId:r,entropyIdVerifier:t})}async create({password:e,recoveryMethod:r,recoveryToken:o,recoveryKey:i,recoverySecretOverride:a,iCloudRecordNameOverride:s,solanaAccount:n,skipCallbacks:c}){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if("user-controlled-server-wallets-only"===this._privyInternal.config?.embedded_wallet_config.mode){if(r&&!r.startsWith("privy"))throw new t({error:"User-controlled server wallets do not support custom recovery methods",code:"embedded_wallet_creation_error"});await d({context:{app:this._appApi,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e)},chainType:"ethereum"})}else{let t;if(t=r||(e?"user-passcode":"privy"),e&&"string"!=typeof e)throw Error("Invalid recovery password, must be a string");if("privy"===t&&this._privyInternal.config?.embedded_wallet_config.require_user_password_on_create)throw Error("Password not provided yet is required by App configuration");let d=await this._privyInternal.getAccessToken();if(!d)throw Error("User must be logged in to create an embedded wallet");let{address:c}=await this._proxy.create({accessToken:d,recoveryMethod:t,recoveryKey:i,recoveryPassword:e,recoveryAccessToken:o,recoverySecretOverride:a,iCloudRecordNameOverride:s,solanaAddress:n?.address});if(!c)throw Error("Failed to create wallet")}return await this._privyInternal.refreshSession(c)}async createSolana(e){if(!this._proxy)throw new t({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_creation_error"});if("user-controlled-server-wallets-only"===this._privyInternal.config?.embedded_wallet_config.mode)await d({context:{app:this._appApi,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e)},chainType:"solana"});else{let r=await this._privyInternal.getAccessToken();if(!r)throw new t({error:"User must be logged in to create an embedded wallet",code:"embedded_wallet_creation_error"});e?.ethereumAccount&&await this.getProvider(e.ethereumAccount);let{publicKey:o}=await this._proxy.createSolana({accessToken:r,ethereumAddress:e?.ethereumAccount?.address});if(!o)throw new t({error:"Failed to create wallet",code:"embedded_wallet_creation_error"})}return await this._privyInternal.refreshSession()}async delegateWallets({delegatedWallets:e,rootWallet:r}){if(!this._proxy)throw new t({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_creation_error"});let o=await this._privyInternal.getAccessToken();if(!o)throw new t({error:"User must be logged in to create an embedded wallet",code:"embedded_wallet_creation_error"});await this._proxy.delegateWallets({accessToken:o,delegatedWallets:e,rootWallet:r})}async getProvider(e,r,t,o,i){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");return s(e)||await this._load({wallet:e,entropyId:e.address,entropyIdVerifier:"ethereum-address-verifier",recoveryPassword:r,recoveryKey:i,recoveryAccessToken:t,recoverySecretOverride:o}),new c({account:e,entropyId:e.address,entropyIdVerifier:"ethereum-address-verifier",privyInternal:this._privyInternal,chains:this._chains,walletProxy:this._proxy,appApi:this._appApi})}async getEthereumProvider({wallet:e,entropyId:r,entropyIdVerifier:t,recoveryPassword:o,recoveryAccessToken:i,recoverySecretOverride:d,recoveryKey:a,onNeedsRecovery:n}){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if(!await this._privyInternal.getAccessToken())throw Error("User must be logged in to create an embedded wallet");return s(e)||(!n||o||i||d||a)&&await this._load({entropyId:r,entropyIdVerifier:t,wallet:e,recoveryPassword:o,recoveryAccessToken:i,recoverySecretOverride:d,recoveryKey:a}),new c({account:e,entropyId:r,entropyIdVerifier:"ethereum-address-verifier",privyInternal:this._privyInternal,chains:this._chains,walletProxy:this._proxy,onNeedsRecovery:n,appApi:this._appApi})}async getSolanaProvider(e,r,o,i,d,a,n){if(!this._proxy)throw new t({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});return s(e)||(!n||i||d||a)&&await this._load({wallet:e,entropyId:r,entropyIdVerifier:o,recoveryPassword:i,recoveryAccessToken:d,recoverySecretOverride:a}),new l({account:e,privyInternal:this._privyInternal,proxy:this._proxy,entropyId:r,entropyIdVerifier:o,onNeedsRecovery:n,app:this._appApi})}async setRecovery(e){let{wallet:r,...o}=e;if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if(s(r))throw new t({error:"This wallet does not support setting recovery methods",code:"unsupported_recovery_method"});a({currentRecoveryMethod:r.recovery_method,upgradeToRecoveryMethod:"icloud-native"===o.recoveryMethod?"icloud":o.recoveryMethod}),await this._load("solana"===r.chain_type?{wallet:r,entropyId:r.address,entropyIdVerifier:"solana-address-verifier"}:{wallet:r,entropyId:r.address,entropyIdVerifier:"ethereum-address-verifier"});let i=await this._privyInternal.getAccessToken();if(!i)throw Error("User must be logged in to interact with embedded wallets");let d=r.recovery_method;this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_set_recovery_started",{address:r.address,target_recovery_method:o.recoveryMethod,existing_recovery_method:d});try{let e;if("user-passcode"===o.recoveryMethod)e={recoveryMethod:"user-passcode",recoveryPassword:o.password};else if("google-drive"===o.recoveryMethod)e={recoveryMethod:"google-drive",recoveryAccessToken:o.recoveryAccessToken};else if("icloud"===o.recoveryMethod)e={recoveryMethod:"icloud",recoveryAccessToken:o.recoveryAccessToken};else if("icloud-native"===o.recoveryMethod)e={recoveryMethod:"icloud-native",iCloudRecordNameOverride:o.iCloudRecordNameOverride,recoverySecretOverride:o.recoverySecretOverride};else if("recovery-encryption-key"===o.recoveryMethod)e={recoveryMethod:"recovery-encryption-key",recoveryKey:o.recoveryKey};else{if("privy"!==o.recoveryMethod)throw Error(`Unknown recovery method: ${o.recoveryMethod}`);e={recoveryMethod:"privy"}}await this._proxy.setRecovery({accessToken:i,entropyId:r.address,entropyIdVerifier:"solana"===r.chain_type?"solana-address-verifier":"ethereum-address-verifier",...e}),this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_set_recovery_completed",{address:r.address,target_recovery_method:o.recoveryMethod,existing_recovery_method:d});let{user:t}=await this._privyInternal.refreshSession();return{user:t,provider:"ethereum"!==r.chain_type?null:new c({account:r,entropyId:r.address,entropyIdVerifier:"ethereum-address-verifier",privyInternal:this._privyInternal,chains:this._chains,walletProxy:this._proxy,appApi:this._appApi})}}catch(e){throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_set_recovery_failed",{address:r.address,recovery_method:r.recovery_method,error:e instanceof Error?e.message:"Unable to recover wallet"}),e}}getURL(){let e=new URL(`${this._privyInternal.baseUrl}/apps/${this._privyInternal.appId}/embedded-wallets`);return this._privyInternal.caid&&e.searchParams.append("caid",this._privyInternal.caid),this._privyInternal.appClientId&&e.searchParams.append("client_id",this._privyInternal.appClientId),e.href}get chains(){return this._chains}onMessage(e){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");return this._proxy.handleEmbeddedWalletMessages(e)}reload(){this._proxy?this._proxy.reload():console.warn("Attempted to reload proxy before initialized")}async ping(e){try{if(!this._proxy)throw Error("Embedded wallet proxy not initialized");return await this._proxy.ping(e),!0}catch(e){return console.error(e),!1}}async _load({entropyId:e,entropyIdVerifier:r,wallet:t,recoveryPassword:o,recoveryKey:d,recoveryAccessToken:a,recoverySecretOverride:s}){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");let n=await this._privyInternal.getAccessToken();if(!n)throw Error("User must be logged in to interact with embedded wallets");try{return await this._proxy.connect({accessToken:n,entropyId:e,entropyIdVerifier:r}),e}catch(c){if(i(c))try{if("privy"===t.recovery_method){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:t.recovery_method});let o=await this._proxy.recover({accessToken:n,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:t.recovery_method}),o.entropyId}if("user-passcode"===t.recovery_method&&o){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:t.recovery_method});let i=await this._proxy.recover({accessToken:n,recoveryPassword:o,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:t.recovery_method}),i.entropyId}if(["google-drive","icloud"].includes(t.recovery_method)&&a){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:t.recovery_method});let o=await this._proxy.recover({accessToken:n,recoveryAccessToken:a,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:t.recovery_method}),o.entropyId}if("icloud"===t.recovery_method&&s){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:"icloud-native"});let o=await this._proxy.recover({accessToken:n,recoverySecretOverride:s,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:"icloud-native"}),o.entropyId}if("recovery-encryption-key"===t.recovery_method&&d){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:t.recovery_method});let o=await this._proxy.recover({accessToken:n,recoveryKey:d,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:t.recovery_method}),o.entropyId}}catch(r){throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_failed",{address:t.address,recovery_method:t.recovery_method,error:r instanceof Error?r.message:`Unable to recover wallet: ${e}`}),r}throw c}}constructor(t,o,i,d,a,s){if(this._chains=Array.from(e),this._privyInternal=t,o&&(this._proxy=new n(o,a),d.setProxy(this._proxy)),i){let e=r(i);this._chains=e}this._mfa=d,this._mfaPromises=a,this._appApi=s}}export{y as default};
1
+ import{DEFAULT_SUPPORTED_CHAINS as e,dedupeSupportedChains as r}from"@privy-io/chains";import{PrivyClientError as t}from"../Error.mjs";import{EmbeddedBitcoinWalletProvider as o}from"../embedded/EmbeddedBitcoinWalletProvider.mjs";import{errorIndicatesRecoveryIsNeeded as i}from"../embedded/errors.mjs";import{walletCreate as d}from"../embedded/stack/walletCreate.mjs";import{throwIfInvalidRecoveryUpgradePath as a}from"../embedded/utils/index.mjs";import{isUnifiedWallet as s}from"../wallet-api/unified-wallet.mjs";import{EmbeddedWalletProxy as n}from"../embedded/EmbeddedWalletProxy.mjs";import{EmbeddedWalletProvider as c}from"../embedded/EmbeddedWalletProvider.mjs";import{EmbeddedSolanaWalletProvider as l}from"../embedded/EmbeddedSolanaWalletProvider.mjs";import"../embedded/types.mjs";import"../wallet-api/create.mjs";import"@privy-io/public-api";import"viem";import"../utils/sleep.mjs";import"../embedded/EventCallbackQueue.mjs";import"../embedded/withMfa.mjs";import"eventemitter3";import"@privy-io/ethereum";import"../embedded/stack/walletRpc.mjs";import"../utils/encodings.mjs";import"../wallet-api/rpc.mjs";import"../wallet-api/generate-authorization-signature.mjs";import"canonicalize";import"../embedded/stack/wallet-api-eth-transaction.mjs";import"../embedded/stack/wallet-api-eth-typed-data.mjs";import"../solana/getWalletPublicKeyFromTransaction.mjs";import"../solana/isVersionedTransaction.mjs";class y{setMessagePoster(e){this._proxy=new n(e,this._mfaPromises),this._mfa.setProxy(this._proxy)}async signWithUserSigner(e){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");let r=await this._privyInternal.getAccessToken();if(!r)throw new t({error:"User must be logged in to sign a message with the user signer",code:"user_signer_sign_error"});let{signature:o}=await this._proxy.signWithUserSigner({accessToken:r,message:e.message});return{signature:o}}async add(e){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if("user-controlled-server-wallets-only"===this._privyInternal.config?.embedded_wallet_config.mode)await d({context:{app:this._appApi,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e)},chainType:e.chainType});else{let r=await this._privyInternal.getAccessToken();if(!r)throw new t({error:"User must be logged in to create an embedded wallet",code:"embedded_wallet_creation_error"});await this._proxy.addWallet({accessToken:r,...e})}let{user:r}=await this._privyInternal.refreshSession();return{user:r}}async getBitcoinProvider({wallet:e,entropyId:r,entropyIdVerifier:t,recoveryPassword:i,recoveryAccessToken:d,recoverySecretOverride:a}){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if(!await this._privyInternal.getAccessToken())throw Error("User must be logged in to create an embedded wallet");return s(e)||await this._load({entropyId:r,entropyIdVerifier:t,wallet:e,recoveryPassword:i,recoveryAccessToken:d,recoverySecretOverride:a}),new o({account:e,privyInternal:this._privyInternal,proxy:this._proxy,entropyId:r,entropyIdVerifier:t})}async create({password:e,recoveryMethod:r,recoveryToken:o,recoveryKey:i,recoverySecretOverride:a,iCloudRecordNameOverride:s,solanaAccount:n,skipCallbacks:c}){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if("user-controlled-server-wallets-only"===this._privyInternal.config?.embedded_wallet_config.mode){if(r&&!r.startsWith("privy"))throw new t({error:"User-controlled server wallets do not support custom recovery methods",code:"embedded_wallet_creation_error"});await d({context:{app:this._appApi,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e)},chainType:"ethereum"})}else{let t;if(t=r||(e?"user-passcode":"privy"),e&&"string"!=typeof e)throw Error("Invalid recovery password, must be a string");if("privy"===t&&this._privyInternal.config?.embedded_wallet_config.require_user_password_on_create)throw Error("Password not provided yet is required by App configuration");let d=await this._privyInternal.getAccessToken();if(!d)throw Error("User must be logged in to create an embedded wallet");let{address:c}=await this._proxy.create({accessToken:d,recoveryMethod:t,recoveryKey:i,recoveryPassword:e,recoveryAccessToken:o,recoverySecretOverride:a,iCloudRecordNameOverride:s,solanaAddress:n?.address});if(!c)throw Error("Failed to create wallet")}return await this._privyInternal.refreshSession(c)}async createSolana(e){if(!this._proxy)throw new t({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_creation_error"});if("user-controlled-server-wallets-only"===this._privyInternal.config?.embedded_wallet_config.mode)await d({context:{app:this._appApi,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e)},chainType:"solana"});else{let r=await this._privyInternal.getAccessToken();if(!r)throw new t({error:"User must be logged in to create an embedded wallet",code:"embedded_wallet_creation_error"});e?.ethereumAccount&&await this.getProvider(e.ethereumAccount);let{publicKey:o}=await this._proxy.createSolana({accessToken:r,ethereumAddress:e?.ethereumAccount?.address});if(!o)throw new t({error:"Failed to create wallet",code:"embedded_wallet_creation_error"})}return await this._privyInternal.refreshSession()}async delegateWallets({delegatedWallets:e,rootWallet:r}){if(!this._proxy)throw new t({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_creation_error"});let o=await this._privyInternal.getAccessToken();if(!o)throw new t({error:"User must be logged in to create an embedded wallet",code:"embedded_wallet_creation_error"});await this._proxy.delegateWallets({accessToken:o,delegatedWallets:e,rootWallet:r})}async getProvider(e,r,t,o,i){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");return s(e)||await this._load({wallet:e,entropyId:e.address,entropyIdVerifier:"ethereum-address-verifier",recoveryPassword:r,recoveryKey:i,recoveryAccessToken:t,recoverySecretOverride:o}),new c({account:e,entropyId:e.address,entropyIdVerifier:"ethereum-address-verifier",privyInternal:this._privyInternal,chains:this._chains,walletProxy:this._proxy,appApi:this._appApi})}async getEthereumProvider({wallet:e,entropyId:r,entropyIdVerifier:t,recoveryPassword:o,recoveryAccessToken:i,recoverySecretOverride:d,recoveryKey:a,onNeedsRecovery:n}){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if(!await this._privyInternal.getAccessToken())throw Error("User must be logged in to create an embedded wallet");return s(e)||(!n||o||i||d||a)&&await this._load({entropyId:r,entropyIdVerifier:t,wallet:e,recoveryPassword:o,recoveryAccessToken:i,recoverySecretOverride:d,recoveryKey:a}),new c({account:e,entropyId:r,entropyIdVerifier:"ethereum-address-verifier",privyInternal:this._privyInternal,chains:this._chains,walletProxy:this._proxy,onNeedsRecovery:n,appApi:this._appApi})}async getSolanaProvider(e,r,o,i,d,a,n){if(!this._proxy)throw new t({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});return s(e)||(!n||i||d||a)&&await this._load({wallet:e,entropyId:r,entropyIdVerifier:o,recoveryPassword:i,recoveryAccessToken:d,recoverySecretOverride:a}),new l({account:e,privyInternal:this._privyInternal,proxy:this._proxy,entropyId:r,entropyIdVerifier:o,onNeedsRecovery:n,app:this._appApi})}async setRecovery(e){let{wallet:r,...o}=e;if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if(s(r))throw new t({error:"This wallet does not support setting recovery methods",code:"unsupported_recovery_method"});a({currentRecoveryMethod:r.recovery_method,upgradeToRecoveryMethod:"icloud-native"===o.recoveryMethod?"icloud":o.recoveryMethod}),await this._load("solana"===r.chain_type?{wallet:r,entropyId:r.address,entropyIdVerifier:"solana-address-verifier"}:{wallet:r,entropyId:r.address,entropyIdVerifier:"ethereum-address-verifier"});let i=await this._privyInternal.getAccessToken();if(!i)throw Error("User must be logged in to interact with embedded wallets");let d=r.recovery_method;this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_set_recovery_started",{address:r.address,target_recovery_method:o.recoveryMethod,existing_recovery_method:d});try{let e;if("user-passcode"===o.recoveryMethod)e={recoveryMethod:"user-passcode",recoveryPassword:o.password};else if("google-drive"===o.recoveryMethod)e={recoveryMethod:"google-drive",recoveryAccessToken:o.recoveryAccessToken};else if("icloud"===o.recoveryMethod)e={recoveryMethod:"icloud",recoveryAccessToken:o.recoveryAccessToken};else if("icloud-native"===o.recoveryMethod)e={recoveryMethod:"icloud-native",iCloudRecordNameOverride:o.iCloudRecordNameOverride,recoverySecretOverride:o.recoverySecretOverride};else if("recovery-encryption-key"===o.recoveryMethod)e={recoveryMethod:"recovery-encryption-key",recoveryKey:o.recoveryKey};else{if("privy"!==o.recoveryMethod)throw Error(`Unknown recovery method: ${o.recoveryMethod}`);e={recoveryMethod:"privy"}}await this._proxy.setRecovery({accessToken:i,entropyId:r.address,entropyIdVerifier:"solana"===r.chain_type?"solana-address-verifier":"ethereum-address-verifier",...e}),this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_set_recovery_completed",{address:r.address,target_recovery_method:o.recoveryMethod,existing_recovery_method:d});let{user:t}=await this._privyInternal.refreshSession();return{user:t,provider:"ethereum"!==r.chain_type?null:new c({account:r,entropyId:r.address,entropyIdVerifier:"ethereum-address-verifier",privyInternal:this._privyInternal,chains:this._chains,walletProxy:this._proxy,appApi:this._appApi})}}catch(e){throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_set_recovery_failed",{address:r.address,recovery_method:r.recovery_method,error:e instanceof Error?e.message:"Unable to recover wallet"}),e}}getURL(){let e=new URL(`${this._privyInternal.baseUrl}/apps/${this._privyInternal.appId}/embedded-wallets`);return this._privyInternal.caid&&e.searchParams.append("caid",this._privyInternal.caid),this._privyInternal.appClientId&&e.searchParams.append("client_id",this._privyInternal.appClientId),e.href}get chains(){return this._chains}onMessage(e){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");return this._proxy.handleEmbeddedWalletMessages(e)}reload(){this._proxy?this._proxy.reload():console.warn("Attempted to reload proxy before initialized")}async ping(e){try{if(!this._proxy)throw Error("Embedded wallet proxy not initialized");return await this._proxy.ping(e),!0}catch(e){return console.error(e),!1}}async _load({entropyId:e,entropyIdVerifier:r,wallet:t,recoveryPassword:o,recoveryKey:d,recoveryAccessToken:a,recoverySecretOverride:s}){if(!this._proxy)throw Error("Embedded wallet proxy not initialized");let n=await this._privyInternal.getAccessToken();if(!n)throw Error("User must be logged in to interact with embedded wallets");try{return await this._proxy.connect({accessToken:n,entropyId:e,entropyIdVerifier:r}),e}catch(c){if(i(c))try{if("privy"===t.recovery_method){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:t.recovery_method});let o=await this._proxy.recover({accessToken:n,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:t.recovery_method}),o.entropyId}if("user-passcode"===t.recovery_method&&o){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:t.recovery_method});let i=await this._proxy.recover({accessToken:n,recoveryPassword:o,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:t.recovery_method}),i.entropyId}if(["google-drive","icloud"].includes(t.recovery_method)&&a){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:t.recovery_method});let o=await this._proxy.recover({accessToken:n,recoveryAccessToken:a,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:t.recovery_method}),o.entropyId}if("icloud"===t.recovery_method&&s){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:"icloud-native"});let o=await this._proxy.recover({accessToken:n,recoverySecretOverride:s,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:"icloud-native"}),o.entropyId}if("recovery-encryption-key"===t.recovery_method&&d){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:t.recovery_method});let o=await this._proxy.recover({accessToken:n,recoveryKey:d,entropyId:e,entropyIdVerifier:r});return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_completed",{address:t.address,recovery_method:t.recovery_method}),o.entropyId}}catch(r){throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_failed",{address:t.address,recovery_method:t.recovery_method,error:r instanceof Error?r.message:`Unable to recover wallet: ${e}`}),r}throw c}}constructor(t,o,i,d,a,s){if(this._chains=Array.from(e),this._privyInternal=t,o&&(this._proxy=new n(o,a),d.setProxy(this._proxy)),i){let e=r(i);this._chains=e}this._mfa=d,this._mfaPromises=a,this._appApi=s}}export{y as default};
@@ -1 +1 @@
1
- import e from"./AppApi.mjs";import t from"./CrossAppApi.mjs";import i from"./DelegatedWalletsApi.mjs";import r from"./EmbeddedWalletApi.mjs";import m from"./MfaPromises.mjs";import{PrivyInternal as s}from"./PrivyInternal.mjs";import o from"./UserApi.mjs";import a from"./auth/AuthApi.mjs";import p from"./funding/FundingApi.mjs";import l from"./mfa/MfaApi.mjs";import n from"./recovery/RecoveryApi.mjs";import"@privy-io/public-api";import"../Token.mjs";import"jose";import"@privy-io/chains";import"../Error.mjs";import"../embedded/EmbeddedBitcoinWalletProvider.mjs";import"../wallet-api/unified-wallet.mjs";import"../embedded/errors.mjs";import"../embedded/types.mjs";import"../embedded/stack/walletCreate.mjs";import"../wallet-api/create.mjs";import"../embedded/utils/index.mjs";import"viem";import"../embedded/EmbeddedWalletProxy.mjs";import"../utils/sleep.mjs";import"../embedded/EventCallbackQueue.mjs";import"../embedded/withMfa.mjs";import"../embedded/EmbeddedWalletProvider.mjs";import"eventemitter3";import"@privy-io/ethereum";import"../embedded/methods.mjs";import"../embedded/stack/walletRpc.mjs";import"../utils/encodings.mjs";import"../wallet-api/rpc.mjs";import"../wallet-api/generate-authorization-signature.mjs";import"canonicalize";import"../embedded/stack/wallet-api-eth-transaction.mjs";import"../embedded/stack/wallet-api-eth-typed-data.mjs";import"../embedded/EmbeddedSolanaWalletProvider.mjs";import"../solana/getWalletPublicKeyFromTransaction.mjs";import"../solana/isVersionedTransaction.mjs";import"fetch-retry";import"uuid";import"@privy-io/api-base";import"../Session.mjs";import"js-cookie";import"../utils/allSettled.mjs";import"../toAbortSignalTimeout.mjs";import"../utils/toSearchParams.mjs";import"./logger.mjs";import"../utils/noop.mjs";import"./auth/CustomProviderApi.mjs";import"./auth/maybeCreateWalletOnLogin.mjs";import"../utils/getUserEmbeddedEthereumWallet.mjs";import"../utils/getAllUserEmbeddedEthereumWallets.mjs";import"../utils/embedded-wallets.mjs";import"../utils/getUserEmbeddedSolanaWallet.mjs";import"../utils/getAllUserEmbeddedSolanaWallets.mjs";import"../utils/shouldCreateEmbeddedEthWallet.mjs";import"../utils/shouldCreateEmbeddedSolWallet.mjs";import"./auth/EmailApi.mjs";import"./auth/FarcasterApi.mjs";import"./auth/FarcasterV2Api.mjs";import"./auth/GuestApi.mjs";import"./auth/OAuthApi.mjs";import"../pkce.mjs";import"./auth/PasskeyApi.mjs";import"./auth/PhoneApi.mjs";import"./auth/SiweApi.mjs";import"./auth/SiwsApi.mjs";import"./auth/SmartWalletApi.mjs";import"./funding/CoinbaseOnRampApi.mjs";import"./funding/MoonpayOnRampApi.mjs";import"../funding/moonpay.mjs";import"./mfa/MfaPasskeyApi.mjs";import"./mfa/MfaSmsApi.mjs";import"./recovery/RecoveryICloudApi.mjs";import"./recovery/RecoveryOAuthApi.mjs";class d{async initialize(){await this._privyInternal._initialize()}setMessagePoster(e){this.embeddedWallet.setMessagePoster(e)}addOAuthTokensListener(e){return this._privyInternal.session.on("oauth_tokens_granted",e),{unsubscribe:()=>{this._privyInternal.session.removeListener("oauth_tokens_granted",e)}}}setCallbacks(e){this._privyInternal.setCallbacks(e)}getAccessToken(){return this._privyInternal.getAccessToken()}getIdentityToken(){return this._privyInternal.getIdentityToken()}getCompiledPath(e,t){return this._privyInternal.getPath(e,t)}async fetchPrivyRoute(e,t){return this._privyInternal.fetch(e,t)}get logger(){return this._privyInternal.logger}constructor({clientId:d,...h}){this._privyInternal=new s({...h,appClientId:d}),this.mfa=new l(this._privyInternal),this.mfaPromises=new m,this.app=new e(this._privyInternal),this.embeddedWallet=new r(this._privyInternal,h.embeddedWalletMessagePoster,h.supportedChains,this.mfa,this.mfaPromises,this.app),this.user=new o(this._privyInternal),this.auth=new a(this._privyInternal,this.embeddedWallet,h.storage,h.crypto),this.recovery=new n(this._privyInternal,h.storage,h.crypto),this.funding=new p(this._privyInternal),this.delegated=new i(this._privyInternal),this.crossApp=new t(this._privyInternal,h.storage)}}export{d as default};
1
+ import e from"./AppApi.mjs";import t from"./CrossAppApi.mjs";import i from"./DelegatedWalletsApi.mjs";import r from"./EmbeddedWalletApi.mjs";import m from"./MfaPromises.mjs";import{PrivyInternal as s}from"./PrivyInternal.mjs";import o from"./UserApi.mjs";import a from"./auth/AuthApi.mjs";import p from"./funding/FundingApi.mjs";import l from"./mfa/MfaApi.mjs";import n from"./recovery/RecoveryApi.mjs";import"@privy-io/public-api";import"../Token.mjs";import"jose";import"@privy-io/chains";import"../Error.mjs";import"../embedded/EmbeddedBitcoinWalletProvider.mjs";import"../wallet-api/unified-wallet.mjs";import"../embedded/errors.mjs";import"../embedded/types.mjs";import"../embedded/stack/walletCreate.mjs";import"../wallet-api/create.mjs";import"../embedded/utils/index.mjs";import"viem";import"../embedded/EmbeddedWalletProxy.mjs";import"../utils/sleep.mjs";import"../embedded/EventCallbackQueue.mjs";import"../embedded/withMfa.mjs";import"../embedded/EmbeddedWalletProvider.mjs";import"eventemitter3";import"@privy-io/ethereum";import"../embedded/stack/walletRpc.mjs";import"../utils/encodings.mjs";import"../wallet-api/rpc.mjs";import"../wallet-api/generate-authorization-signature.mjs";import"canonicalize";import"../embedded/stack/wallet-api-eth-transaction.mjs";import"../embedded/stack/wallet-api-eth-typed-data.mjs";import"../embedded/EmbeddedSolanaWalletProvider.mjs";import"../solana/getWalletPublicKeyFromTransaction.mjs";import"../solana/isVersionedTransaction.mjs";import"fetch-retry";import"uuid";import"@privy-io/api-base";import"../Session.mjs";import"js-cookie";import"../utils/allSettled.mjs";import"../toAbortSignalTimeout.mjs";import"../utils/toSearchParams.mjs";import"./logger.mjs";import"../utils/noop.mjs";import"./auth/CustomProviderApi.mjs";import"./auth/maybeCreateWalletOnLogin.mjs";import"../utils/getUserEmbeddedEthereumWallet.mjs";import"../utils/getAllUserEmbeddedEthereumWallets.mjs";import"../utils/embedded-wallets.mjs";import"../utils/getUserEmbeddedSolanaWallet.mjs";import"../utils/getAllUserEmbeddedSolanaWallets.mjs";import"../utils/shouldCreateEmbeddedEthWallet.mjs";import"../utils/shouldCreateEmbeddedSolWallet.mjs";import"./auth/EmailApi.mjs";import"./auth/FarcasterApi.mjs";import"./auth/FarcasterV2Api.mjs";import"./auth/GuestApi.mjs";import"./auth/OAuthApi.mjs";import"../pkce.mjs";import"./auth/PasskeyApi.mjs";import"./auth/PhoneApi.mjs";import"./auth/SiweApi.mjs";import"./auth/SiwsApi.mjs";import"./auth/SmartWalletApi.mjs";import"./funding/CoinbaseOnRampApi.mjs";import"./funding/MoonpayOnRampApi.mjs";import"../funding/moonpay.mjs";import"./mfa/MfaPasskeyApi.mjs";import"./mfa/MfaSmsApi.mjs";import"./recovery/RecoveryICloudApi.mjs";import"./recovery/RecoveryOAuthApi.mjs";class d{async initialize(){await this._privyInternal._initialize()}setMessagePoster(e){this.embeddedWallet.setMessagePoster(e)}addOAuthTokensListener(e){return this._privyInternal.session.on("oauth_tokens_granted",e),{unsubscribe:()=>{this._privyInternal.session.removeListener("oauth_tokens_granted",e)}}}setCallbacks(e){this._privyInternal.setCallbacks(e)}getAccessToken(){return this._privyInternal.getAccessToken()}getIdentityToken(){return this._privyInternal.getIdentityToken()}getCompiledPath(e,t){return this._privyInternal.getPath(e,t)}async fetchPrivyRoute(e,t){return this._privyInternal.fetch(e,t)}get logger(){return this._privyInternal.logger}constructor({clientId:d,...h}){this._privyInternal=new s({...h,appClientId:d}),this.mfa=new l(this._privyInternal),this.mfaPromises=new m,this.app=new e(this._privyInternal),this.embeddedWallet=new r(this._privyInternal,h.embeddedWalletMessagePoster,h.supportedChains,this.mfa,this.mfaPromises,this.app),this.user=new o(this._privyInternal),this.auth=new a(this._privyInternal,this.embeddedWallet,h.storage,h.crypto),this.recovery=new n(this._privyInternal,h.storage,h.crypto),this.funding=new p(this._privyInternal),this.delegated=new i(this._privyInternal),this.crossApp=new t(this._privyInternal,h.storage)}}export{d as default};
@@ -1 +1 @@
1
- import e from"fetch-retry";import{v4 as t}from"uuid";import{PrivyErrorCode as s}from"@privy-io/api-base";import{getPathWithParams as i,AppConfig as r,AnalyticsEvent as a,RefreshSession as n}from"@privy-io/public-api";import{PrivyClientError as o,PrivyApiError as h}from"../Error.mjs";import{Session as l}from"../Session.mjs";import c from"../toAbortSignalTimeout.mjs";import{toSearchParams as g}from"../utils/toSearchParams.mjs";import{toConsoleLogger as d}from"./logger.mjs";import"eventemitter3";import"jose";import"js-cookie";import"../Token.mjs";import"../utils/allSettled.mjs";import"../utils/noop.mjs";let p="privy:caid";class u{setCallbacks(e){this.callbacks={...this.callbacks,...e}}get isReady(){return!!this._config}get config(){return this._config}get caid(){return this._analyticsId}async _initialize(){if(this.isReady)this.callbacks?.setIsReady?.(!0);else{if(!await this.isStorageAccessible())throw new o({code:"storage_error",error:"Unable to access storage"});this._config=await this.getAppConfig(),this._config?.custom_api_url&&(this.baseUrl=this._config.custom_api_url,this.session.isUsingServerCookies=!0),this.callbacks?.setIsReady?.(!0),this._sdkVersion.startsWith("react-auth:")||this.createAnalyticsEvent("sdk_initialize",{})}}getPath(e,{params:t,query:s}){return`${this.baseUrl}${i(e.path,t)}${g(s)}`}async fetch(e,{body:t,params:s,query:i,headers:r,onRequest:a=this._beforeRequest.bind(this)}){let n=new Request(this.getPath(e,{params:s,query:i}),{method:e.method,body:JSON.stringify(t),headers:r}),o=await a(n),l=await this._fetch(n,o),c=await l.json();if(l.status>299)throw new h(c);return c}async _beforeRequestWithoutInitialize(e){let t=await this.session.getToken(),s=new Headers(e.headers);s.set("privy-app-id",this.appId),this.appClientId&&s.set("privy-client-id",this.appClientId),s.set("privy-client",this._sdkVersion),t&&s.set("Authorization",`Bearer ${t}`),s.set("Content-Type","application/json"),s.set("Accept","application/json");let i=await this._getOrGenerateClientAnalyticsId();return i&&s.set("privy-ca-id",i),this.nativeAppIdentifier&&s.set("x-native-app-identifier",this.nativeAppIdentifier),{signal:c(2e4),headers:s,credentials:"include"}}async beforeRequestWithoutRefresh(e){return await this._initialize(),this._beforeRequestWithoutInitialize(e)}async _beforeRequest(e){return await this._initialize(),await this.getAccessToken(),this.beforeRequestWithoutRefresh(e)}async getAppConfig(){return await this.fetch(r,{params:{app_id:this.appId},onRequest:this._beforeRequestWithoutInitialize.bind(this)})}async _getOrGenerateClientAnalyticsId(){if(this._analyticsId)return this._analyticsId;try{let e=await this._storage.get(p);if("string"==typeof e&&e.length>0)return this._analyticsId=e,e}catch(e){this.logger.error("Unable to load clientId",e)}try{this._analyticsId=t()}catch(e){this.logger.error("Unable to generate uuidv4",e)}if(!this._analyticsId)return null;try{await this._storage.put(p,this._analyticsId)}catch(e){this.logger.error(`Unable to store clientId: ${this._analyticsId}`,e)}return this._analyticsId}async destroyClientAnalyticsId(){try{return await this._storage.del(p)}catch(e){this.logger.error("Unable to delete clientId",e)}}async createAnalyticsEvent(e,t){try{await this.fetch(a,{body:{event_name:e,client_id:await this._getOrGenerateClientAnalyticsId(),payload:t},onRequest:this.beforeRequestWithoutRefresh.bind(this)})}catch(e){}}async refreshSession(e=!1){if(!await this.isStorageAccessible())throw new o({code:"storage_error",error:"Unable to access storage"});let t=await this.session.getRefreshToken()??void 0,s=t??"key",i=this._cache.get(s);if(i)return this.logger.debug("[privy:refresh] found in-flight session refresh request, deduping"),await i;let r=this._refreshSession(t,e);this._cache.set(s,r);try{return await r}finally{this._cache.delete(s)}}async _refreshSession(e,t){let i=await this.session.getToken();if(!this.session.hasRefreshCredentials(i,e??null))throw this.logger.debug("[privy:refresh] missing tokens, skipping request"),await this._initialize(),new h({code:s.MISSING_OR_INVALID_TOKEN,error:"No tokens found in storage"});try{this.logger.debug(`[privy:refresh] fetching: ${n.path}`);let s=await this.fetch(n,{body:{refresh_token:e},onRequest:this.beforeRequestWithoutRefresh.bind(this)}),i=s.session_update_action;return this.logger.debug(`[privy:refresh] response: ${i}`),t||this.callbacks?.setUser?.(s.user),"set"===i&&(await this.session.updateWithTokensResponse(s),this.logger.debug("[privy:refresh] tokens stored")),"clear"===i&&(await this.session.destroyLocalState(),this.logger.debug("[privy:refresh] tokens cleared"),t||this.callbacks?.setUser?.(null)),"ignore"===i&&s.token&&(await this.session.storeToken(s.token),this.logger.debug("[privy:refresh] access token stored"),s.identity_token&&(this.logger.debug("[privy:refresh] identity token stored"),await this.session.storeIdentityToken(s.identity_token))),this.logger.debug("[privy:refresh] returning response"),s}catch(e){throw this.logger.debug(`[privy:refresh] error: ${e.message??"unknown error"}`),e instanceof h&&e.code===s.MISSING_OR_INVALID_TOKEN&&(await this.session.destroyLocalState(),t||this.callbacks?.setUser?.(null)),e}}async getAccessToken(){let[e,t]=await Promise.all([this.session.getToken(),this.session.getRefreshToken()]);if(!this.session.tokenIsActive(e)&&this.session.hasRefreshCredentials(e,t)){let t=await this.refreshSession(),s=await this.session.getToken();return t.token||this.logger.debug("[privy:getAccessToken] expected token received null"),t.token===e&&this.logger.debug("[privy:getAccessToken] expected new token in response received existing"),s===e&&this.logger.debug("[privy:getAccessToken] expected new token in storage received existing"),t.token??s}return e}async getIdentityToken(){return await this.session.getIdentityToken()}async isStorageAccessible(){try{let e=`privy:__storage__test-${t()}`,s="blobby";await this._storage.put(e,s);let i=await this._storage.get(e);return await this._storage.del(e),i===s}catch(e){return this.logger.error(e),!1}}constructor(t){this._sdkVersion="js-sdk-core:0.55.3",this._cache=new Map,this.logger=d({level:t.logLevel??"ERROR"}),this._storage=t.storage,this._analyticsId=null,this._getOrGenerateClientAnalyticsId(),this.baseUrl=t.baseUrl??"https://auth.privy.io",this.appId=t.appId,this.appClientId=t.appClientId,this._sdkVersion=t.sdkVersion??this._sdkVersion,this.callbacks=t.callbacks,this.nativeAppIdentifier=t.nativeAppIdentifier,this.session=new l({storage:this._storage,isUsingServerCookies:!1,appId:t.appId}),this._fetch=e(globalThis.fetch,{retries:3,retryDelay:e=>3**e*500,retryOn:[408,409,425,500,502,503,504]}),this.session.on("error_storing_tokens",(e=>{this.createAnalyticsEvent("error_updating_tokens_in_storage",{reason:e})}))}}export{u as PrivyInternal};
1
+ import e from"fetch-retry";import{v4 as t}from"uuid";import{PrivyErrorCode as s}from"@privy-io/api-base";import{getPathWithParams as i,AppConfig as r,AnalyticsEvent as a,RefreshSession as n}from"@privy-io/public-api";import{PrivyClientError as o,PrivyApiError as h}from"../Error.mjs";import{Session as l}from"../Session.mjs";import c from"../toAbortSignalTimeout.mjs";import{toSearchParams as g}from"../utils/toSearchParams.mjs";import{toConsoleLogger as d}from"./logger.mjs";import"eventemitter3";import"jose";import"js-cookie";import"../Token.mjs";import"../utils/allSettled.mjs";import"../utils/noop.mjs";let p="privy:caid";class u{setCallbacks(e){this.callbacks={...this.callbacks,...e}}get isReady(){return!!this._config}get config(){return this._config}get caid(){return this._analyticsId}async _initialize(){if(this.isReady)this.callbacks?.setIsReady?.(!0);else{if(!await this.isStorageAccessible())throw new o({code:"storage_error",error:"Unable to access storage"});this._config=await this.getAppConfig(),this._config?.custom_api_url&&(this.baseUrl=this._config.custom_api_url,this.session.isUsingServerCookies=!0),this.callbacks?.setIsReady?.(!0),this._sdkVersion.startsWith("react-auth:")||this.createAnalyticsEvent("sdk_initialize",{})}}getPath(e,{params:t,query:s}){return`${this.baseUrl}${i(e.path,t)}${g(s)}`}async fetch(e,{body:t,params:s,query:i,headers:r,onRequest:a=this._beforeRequest.bind(this)}){let n=new Request(this.getPath(e,{params:s,query:i}),{method:e.method,body:JSON.stringify(t),headers:r}),o=await a(n),l=await this._fetch(n,o),c=await l.json();if(l.status>299)throw new h(c);return c}async _beforeRequestWithoutInitialize(e){let t=await this.session.getToken(),s=new Headers(e.headers);s.set("privy-app-id",this.appId),this.appClientId&&s.set("privy-client-id",this.appClientId),s.set("privy-client",this._sdkVersion),t&&s.set("Authorization",`Bearer ${t}`),s.set("Content-Type","application/json"),s.set("Accept","application/json");let i=await this._getOrGenerateClientAnalyticsId();return i&&s.set("privy-ca-id",i),this.nativeAppIdentifier&&s.set("x-native-app-identifier",this.nativeAppIdentifier),{signal:c(2e4),headers:s,credentials:"include"}}async beforeRequestWithoutRefresh(e){return await this._initialize(),this._beforeRequestWithoutInitialize(e)}async _beforeRequest(e){return await this._initialize(),await this.getAccessToken(),this.beforeRequestWithoutRefresh(e)}async getAppConfig(){return await this.fetch(r,{params:{app_id:this.appId},onRequest:this._beforeRequestWithoutInitialize.bind(this)})}async _getOrGenerateClientAnalyticsId(){if(this._analyticsId)return this._analyticsId;try{let e=await this._storage.get(p);if("string"==typeof e&&e.length>0)return this._analyticsId=e,e}catch(e){this.logger.error("Unable to load clientId",e)}try{this._analyticsId=t()}catch(e){this.logger.error("Unable to generate uuidv4",e)}if(!this._analyticsId)return null;try{await this._storage.put(p,this._analyticsId)}catch(e){this.logger.error(`Unable to store clientId: ${this._analyticsId}`,e)}return this._analyticsId}async destroyClientAnalyticsId(){try{return await this._storage.del(p)}catch(e){this.logger.error("Unable to delete clientId",e)}}async createAnalyticsEvent(e,t){try{await this.fetch(a,{body:{event_name:e,client_id:await this._getOrGenerateClientAnalyticsId(),payload:t},onRequest:this.beforeRequestWithoutRefresh.bind(this)})}catch(e){}}async refreshSession(e=!1){if(!await this.isStorageAccessible())throw new o({code:"storage_error",error:"Unable to access storage"});let t=await this.session.getRefreshToken()??void 0,s=t??"key",i=this._cache.get(s);if(i)return this.logger.debug("[privy:refresh] found in-flight session refresh request, deduping"),await i;let r=this._refreshSession(t,e);this._cache.set(s,r);try{return await r}finally{this._cache.delete(s)}}async _refreshSession(e,t){let i=await this.session.getToken();if(!this.session.hasRefreshCredentials(i,e??null))throw this.logger.debug("[privy:refresh] missing tokens, skipping request"),await this._initialize(),new h({code:s.MISSING_OR_INVALID_TOKEN,error:"No tokens found in storage"});try{this.logger.debug(`[privy:refresh] fetching: ${n.path}`);let s=await this.fetch(n,{body:{refresh_token:e},onRequest:this.beforeRequestWithoutRefresh.bind(this)}),i=s.session_update_action;return this.logger.debug(`[privy:refresh] response: ${i}`),t||this.callbacks?.setUser?.(s.user),"set"===i&&(await this.session.updateWithTokensResponse(s),this.logger.debug("[privy:refresh] tokens stored")),"clear"===i&&(await this.session.destroyLocalState(),this.logger.debug("[privy:refresh] tokens cleared"),t||this.callbacks?.setUser?.(null)),"ignore"===i&&s.token&&(await this.session.storeToken(s.token),this.logger.debug("[privy:refresh] access token stored"),s.identity_token&&(this.logger.debug("[privy:refresh] identity token stored"),await this.session.storeIdentityToken(s.identity_token))),this.logger.debug("[privy:refresh] returning response"),s}catch(e){throw this.logger.debug(`[privy:refresh] error: ${e.message??"unknown error"}`),e instanceof h&&e.code===s.MISSING_OR_INVALID_TOKEN&&(await this.session.destroyLocalState(),t||this.callbacks?.setUser?.(null)),e}}async getAccessToken(){let[e,t]=await Promise.all([this.session.getToken(),this.session.getRefreshToken()]);if(!this.session.tokenIsActive(e)&&this.session.hasRefreshCredentials(e,t)){let t=await this.refreshSession(),s=await this.session.getToken();return t.token||this.logger.debug("[privy:getAccessToken] expected token received null"),t.token===e&&this.logger.debug("[privy:getAccessToken] expected new token in response received existing"),s===e&&this.logger.debug("[privy:getAccessToken] expected new token in storage received existing"),t.token??s}return e}async getIdentityToken(){return await this.session.getIdentityToken()}async isStorageAccessible(){try{let e=`privy:__storage__test-${t()}`,s="blobby";await this._storage.put(e,s);let i=await this._storage.get(e);return await this._storage.del(e),i===s}catch(e){return this.logger.error(e),!1}}constructor(t){this._sdkVersion="js-sdk-core:0.55.4",this._cache=new Map,this.logger=d({level:t.logLevel??"ERROR"}),this._storage=t.storage,this._analyticsId=null,this._getOrGenerateClientAnalyticsId(),this.baseUrl=t.baseUrl??"https://auth.privy.io",this.appId=t.appId,this.appClientId=t.appClientId,this._sdkVersion=t.sdkVersion??this._sdkVersion,this.callbacks=t.callbacks,this.nativeAppIdentifier=t.nativeAppIdentifier,this.session=new l({storage:this._storage,isUsingServerCookies:!1,appId:t.appId}),this._fetch=e(globalThis.fetch,{retries:3,retryDelay:e=>3**e*500,retryOn:[408,409,425,500,502,503,504]}),this.session.on("error_storing_tokens",(e=>{this.createAnalyticsEvent("error_updating_tokens_in_storage",{reason:e})}))}}export{u as PrivyInternal};
@@ -1 +1 @@
1
- import e from"eventemitter3";import{toHex as t}from"viem";import{toViemTransactionSerializable as r,STRING_TO_NUMBER_TXN_TYPE as a}from"@privy-io/ethereum";import{PrivyClientError as i}from"../Error.mjs";import{isUnifiedWallet as s}from"../wallet-api/unified-wallet.mjs";import{EmbeddedProviderError as n,errorIndicatesRecoveryIsNeeded as o}from"./errors.mjs";import{isSupportedIframeRpcMethod as h}from"./methods.mjs";import{walletRpc as c}from"./stack/walletRpc.mjs";import{getPublicClient as d}from"./utils/index.mjs";import"./types.mjs";import"../utils/encodings.mjs";import"../wallet-api/rpc.mjs";import"@privy-io/public-api";import"../wallet-api/generate-authorization-signature.mjs";import"canonicalize";import"./stack/wallet-api-eth-transaction.mjs";import"./stack/wallet-api-eth-typed-data.mjs";class p extends e{async request(e){if(h(e.method))return this.handleIFrameRpc(e);switch(e.method){case"eth_accounts":case"eth_requestAccounts":return this._account.address?[this._account.address]:[];case"eth_chainId":return`0x${this._chainId.toString(16)}`;case"wallet_switchEthereumChain":return this.handleSwitchEthereumChain(e);case"eth_estimateGas":return this.handleEstimateGas(e);case"eth_sendTransaction":{let t=e.params?.[0];return this.handleSendTransaction(t)}case"eth_populateTransactionRequest":{let t=e.params?.[0];return this.handlePopulateTransaction(t)}default:return this.handleJsonRpc(e)}}ensureChainId(e){let t={chainId:this._chainId,...e};return this.internalSwitchEthereumChain(t.chainId),t}internalSwitchEthereumChain(e){e&&Number(e)!==this._chainId&&(this._chainId=Number(e),this._client=d(this._chainId,this._chains,{rpcUrls:[]},{appId:this._privyInternal.appId}),this.emit("chainChanged",e))}async handlePopulateTransaction(e){let t=r(this.ensureChainId(e)),{type:i,...s}=await this._client.prepareTransactionRequest(t);return{...s,type:a[i]}}async handleSendTransaction(e){let r={...await this.handlePopulateTransaction(e)};for(let e of Object.keys(r)){let a=r[e];a&&"bigint"==typeof a&&(r[e]=t(a))}let a=await this.handleIFrameRpc({method:"eth_signTransaction",params:[r]});return await this.handleJsonRpc({method:"eth_sendRawTransaction",params:[a]})}async handleEstimateGas(e){if(!e.params||!Array.isArray(e.params))throw Error("Invalid params for eth_estimateGas");let t=e.params?.[0],a=r(this.ensureChainId(t));return await this._client.estimateGas(a)}handleSwitchEthereumChain(e){let t;if(!e.params||!Array.isArray(e.params))throw new n(`Invalid params for ${e.method}`,4200);if("string"==typeof e.params[0])t=e.params[0];else{if(!("chainId"in e.params[0])||"string"!=typeof e.params[0].chainId)throw new n(`Invalid params for ${e.method}`,4200);t=e.params[0].chainId}this.internalSwitchEthereumChain(t)}async handleIFrameRpc(e){try{let t=await this._privyInternal.getAccessToken();if(!t)throw Error("Missing privy token. User must be logged in");this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_started",{method:e.method,address:this._account.address});let r=this._account;if(s(r)){let{data:a}=await c({context:{app:this._appApi,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e),signRequest:({message:e})=>this._walletProxy.signWithUserSigner({accessToken:t,message:e})},account:r,rpcRequest:{chainType:"ethereum",request:e}});return a}try{await this._walletProxy.connect({entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier,accessToken:t})}catch(e){let r=o(e);if(r&&"privy"===this._account.recovery_method)await this._walletProxy.recover({entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier,accessToken:t});else{if(!r||!this._onNeedsRecovery)throw e;{let e;await new Promise((async(t,r)=>{e=setTimeout((()=>r(new i({code:"embedded_wallet_recovery_error",error:"User-owned recovery timed out"}))),12e4),await(this._onNeedsRecovery?.({recoveryMethod:this._account.recovery_method,onRecovered:()=>t(!0)}))})).finally((()=>clearTimeout(e)))}}}return(await this._walletProxy.rpcWallet({accessToken:t,request:e,entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier,hdWalletIndex:this._account.wallet_index,chainType:"ethereum"})).response.data}catch(t){console.error(t);let r=t instanceof Error?t.message:"Unable to make wallet request";throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_failed",{method:e.method,address:this._account.address,error:r}),new i({code:"embedded_wallet_request_error",error:r})}}async handleJsonRpc(e){return this._client.request(e)}toJSON(){return`PrivyEIP1193Provider { address: '${this._account.address}', chainId: ${this._chainId}, request: [Function] }`}constructor({walletProxy:e,privyInternal:t,account:r,entropyId:a,entropyIdVerifier:i,chains:s,onNeedsRecovery:n,chainId:o=s[0].id,appApi:h}){super(),this._walletProxy=e,this._privyInternal=t,this._account=r,this._entropyId=a,this._entropyIdVerifier=i,this._chainId=o,this._chains=s,this._onNeedsRecovery=n,this._client=d(o,s,{rpcUrls:[]},{appId:h.appId}),this._appApi=h}}export{p as EmbeddedWalletProvider};
1
+ import e from"eventemitter3";import{toHex as t}from"viem";import{toViemTransactionSerializable as r,STRING_TO_NUMBER_TXN_TYPE as a}from"@privy-io/ethereum";import{PrivyClientError as i}from"../Error.mjs";import{isUnifiedWallet as s}from"../wallet-api/unified-wallet.mjs";import{EmbeddedProviderError as n,errorIndicatesRecoveryIsNeeded as o}from"./errors.mjs";import{walletRpc as h}from"./stack/walletRpc.mjs";import{getPublicClient as c}from"./utils/index.mjs";import"./types.mjs";import"../utils/encodings.mjs";import"../wallet-api/rpc.mjs";import"@privy-io/public-api";import"../wallet-api/generate-authorization-signature.mjs";import"canonicalize";import"./stack/wallet-api-eth-transaction.mjs";import"./stack/wallet-api-eth-typed-data.mjs";let d=new Set(["eth_sign","personal_sign","eth_signTypedData_v4","csw_signUserOperation","secp256k1_sign"]);class p extends e{async request(e){if(d.has(e.method))return this.handleIFrameRpc(e);switch(e.method){case"eth_accounts":case"eth_requestAccounts":return this._account.address?[this._account.address]:[];case"eth_chainId":return`0x${this._chainId.toString(16)}`;case"wallet_switchEthereumChain":return this.handleSwitchEthereumChain(e);case"eth_estimateGas":return this.handleEstimateGas(e);case"eth_signTransaction":{let t=e.params?.[0];return this.handleSignTransaction(t)}case"eth_sendTransaction":{let t=e.params?.[0];return this.handleSendTransaction(t)}case"eth_populateTransactionRequest":{let t=e.params?.[0];return this.handlePopulateTransaction(t)}default:return this.handleJsonRpc(e)}}ensureChainId(e){let t={chainId:this._chainId,...e};return this.internalSwitchEthereumChain(t.chainId),t}internalSwitchEthereumChain(e){e&&Number(e)!==this._chainId&&(this._chainId=Number(e),this._client=c(this._chainId,this._chains,{rpcUrls:[]},{appId:this._privyInternal.appId}),this.emit("chainChanged",e))}async handlePopulateTransaction(e){let t=r(this.ensureChainId(e)),{type:i,...s}=await this._client.prepareTransactionRequest(t);return{...s,type:a[i]}}async handleSignTransaction(e){let r={...e};for(let e of Object.keys(r)){let a=r[e];a&&"bigint"==typeof a&&(r[e]=t(a))}return await this.handleIFrameRpc({method:"eth_signTransaction",params:[r]})}async handleSendTransaction(e){let t=await this.handlePopulateTransaction(e),r=await this.handleSignTransaction(t);return await this.handleJsonRpc({method:"eth_sendRawTransaction",params:[r]})}async handleEstimateGas(e){if(!e.params||!Array.isArray(e.params))throw Error("Invalid params for eth_estimateGas");let t=e.params?.[0],a=r(this.ensureChainId(t));return await this._client.estimateGas(a)}handleSwitchEthereumChain(e){let t;if(!e.params||!Array.isArray(e.params))throw new n(`Invalid params for ${e.method}`,4200);if("string"==typeof e.params[0])t=e.params[0];else{if(!("chainId"in e.params[0])||"string"!=typeof e.params[0].chainId)throw new n(`Invalid params for ${e.method}`,4200);t=e.params[0].chainId}this.internalSwitchEthereumChain(t)}async handleIFrameRpc(e){try{let t=await this._privyInternal.getAccessToken();if(!t)throw Error("Missing privy token. User must be logged in");this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_started",{method:e.method,address:this._account.address});let r=this._account;if(s(r)){let{data:a}=await h({context:{app:this._appApi,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e),signRequest:({message:e})=>this._walletProxy.signWithUserSigner({accessToken:t,message:e})},account:r,rpcRequest:{chainType:"ethereum",request:e}});return a}try{await this._walletProxy.connect({entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier,accessToken:t})}catch(e){let r=o(e);if(r&&"privy"===this._account.recovery_method)await this._walletProxy.recover({entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier,accessToken:t});else{if(!r||!this._onNeedsRecovery)throw e;{let e;await new Promise((async(t,r)=>{e=setTimeout((()=>r(new i({code:"embedded_wallet_recovery_error",error:"User-owned recovery timed out"}))),12e4),await(this._onNeedsRecovery?.({recoveryMethod:this._account.recovery_method,onRecovered:()=>t(!0)}))})).finally((()=>clearTimeout(e)))}}}return(await this._walletProxy.rpcWallet({accessToken:t,request:e,entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier,hdWalletIndex:this._account.wallet_index,chainType:"ethereum"})).response.data}catch(t){console.error(t);let r=t instanceof Error?t.message:"Unable to make wallet request";throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_failed",{method:e.method,address:this._account.address,error:r}),new i({code:"embedded_wallet_request_error",error:r})}}async handleJsonRpc(e){return this._client.request(e)}toJSON(){return`PrivyEIP1193Provider { address: '${this._account.address}', chainId: ${this._chainId}, request: [Function] }`}constructor({walletProxy:e,privyInternal:t,account:r,entropyId:a,entropyIdVerifier:i,chains:s,onNeedsRecovery:n,chainId:o=s[0].id,appApi:h}){super(),this._walletProxy=e,this._privyInternal=t,this._account=r,this._entropyId=a,this._entropyIdVerifier=i,this._chainId=o,this._chains=s,this._onNeedsRecovery=n,this._client=c(o,s,{rpcUrls:[]},{appId:h.appId}),this._appApi=h}}export{p as EmbeddedWalletProvider};
@@ -1 +1 @@
1
- export{EmbeddedWalletProvider}from"./EmbeddedWalletProvider.mjs";export{EmbeddedSolanaWalletProvider}from"./EmbeddedSolanaWalletProvider.mjs";export{EmbeddedWalletProxy}from"./EmbeddedWalletProxy.mjs";import"eventemitter3";import"viem";import"@privy-io/ethereum";import"../Error.mjs";import"../wallet-api/unified-wallet.mjs";import"./errors.mjs";import"./types.mjs";import"./methods.mjs";import"./stack/walletRpc.mjs";import"../utils/encodings.mjs";import"../wallet-api/rpc.mjs";import"@privy-io/public-api";import"../wallet-api/generate-authorization-signature.mjs";import"canonicalize";import"./stack/wallet-api-eth-transaction.mjs";import"./stack/wallet-api-eth-typed-data.mjs";import"./utils/index.mjs";import"../solana/getWalletPublicKeyFromTransaction.mjs";import"../solana/isVersionedTransaction.mjs";import"../utils/sleep.mjs";import"./EventCallbackQueue.mjs";import"./withMfa.mjs";
1
+ export{EmbeddedWalletProvider}from"./EmbeddedWalletProvider.mjs";export{EmbeddedSolanaWalletProvider}from"./EmbeddedSolanaWalletProvider.mjs";export{EmbeddedWalletProxy}from"./EmbeddedWalletProxy.mjs";import"eventemitter3";import"viem";import"@privy-io/ethereum";import"../Error.mjs";import"../wallet-api/unified-wallet.mjs";import"./errors.mjs";import"./types.mjs";import"./stack/walletRpc.mjs";import"../utils/encodings.mjs";import"../wallet-api/rpc.mjs";import"@privy-io/public-api";import"../wallet-api/generate-authorization-signature.mjs";import"canonicalize";import"./stack/wallet-api-eth-transaction.mjs";import"./stack/wallet-api-eth-typed-data.mjs";import"./utils/index.mjs";import"../solana/getWalletPublicKeyFromTransaction.mjs";import"../solana/isVersionedTransaction.mjs";import"../utils/sleep.mjs";import"./EventCallbackQueue.mjs";import"./withMfa.mjs";
@@ -1 +1 @@
1
- import e from"./client/Privy.mjs";export{BICONOMY,COINBASE_SMART_WALLET,KERNEL,LIGHT_ACCOUNT,SAFE,THIRDWEB}from"@privy-io/public-api";export{LocalStorage}from"./storage/LocalStorage.mjs";export{InMemoryCache}from"./storage/InMemoryStorage.mjs";export{MoonpayApiError,PrivyApiError,PrivyClientError,createErrorFormatter,errorIndicatesMfaCanceled}from"./Error.mjs";export{EmbeddedProviderError,PrivyConnectorError,PrivyEmbeddedWalletErrorCode,PrivyProviderRpcError,ProviderErrors,errorIndicatesMaxMfaRetries,errorIndicatesMfaRateLimit,errorIndicatesMfaTimeout,errorIndicatesMfaVerificationFailed,errorIndicatesRecoveryIsNeeded}from"./embedded/errors.mjs";export{getUserEmbeddedEthereumWallet,getUserEmbeddedWallet}from"./utils/getUserEmbeddedEthereumWallet.mjs";export{getAllUserEmbeddedEthereumWallets}from"./utils/getAllUserEmbeddedEthereumWallets.mjs";export{getAllUserEmbeddedSolanaWallets}from"./utils/getAllUserEmbeddedSolanaWallets.mjs";export{getAllUserEmbeddedBitcoinWallets}from"./utils/getAllUserEmbeddedBitcoinWallets.mjs";export{isEmbeddedWalletAccount}from"./utils/embedded-wallets.mjs";export{getEntropyDetailsFromAccount,getEntropyDetailsFromUser}from"./utils/entropy.mjs";export{getUserSmartWallet}from"./utils/getUserSmartWallet.mjs";export{getJsonRpcEndpointFromChain,throwIfInvalidRecoveryUpgradePath}from"./embedded/utils/index.mjs";export{countryCodesAndNumbers,formatPhoneNumber,getPhoneCountryCodeAndNumber,getPlaceholderPhoneNumber,lastFourDigits,phoneNumberTypingFormatter,validatePhoneNumber}from"./utils/phoneNumberUtils.mjs";export{getUserEmbeddedSolanaWallet}from"./utils/getUserEmbeddedSolanaWallet.mjs";export{toObjectKeys}from"./utils/toObjectKeys.mjs";export{SolanaUsdcAddressMap,UsdcAddressMap,getIsTokenUsdc}from"./utils/getIsTokenUsdc.mjs";export{chainToMoonpayCurrency,fundingMethodToMoonpayPaymentMethod,isSupportedChainIdForMoonpay}from"./funding/moonpay.mjs";export{getCoinbaseOnRampUrl,isSupportedChainIdForCoinbaseOnramp,toCoinbaseAssetId,toCoinbaseBlockchainFromChainId}from"./funding/coinbase.mjs";export{SolanaClient}from"./solana/client.mjs";export{createSiwsMessage}from"./solana/createSiwsMessage.mjs";export{getSolanaRpcEndpointForCluster}from"./solana/getSolanaRpcEndpointForCluster.mjs";export{getSolanaUsdcMintAddressForCluster}from"./solana/getSolanaUsdcMintAddressForCluster.mjs";export{getSolanaClusterDisplayName}from"./solana/getSolanaClusterDisplayName.mjs";export{ALL_WALLET_CLIENT_TYPES,SUPPORTED_CONNECTOR_TYPES}from"./types.mjs";export*from"@privy-io/chains";export{formatLamportsAmount,formatTokenAmount,formatWalletAddress,formatWeiAmount}from"./utils/formatters.mjs";export{generateAuthorizationSignature}from"./wallet-api/generate-authorization-signature.mjs";export{create}from"./wallet-api/create.mjs";export{rpc}from"./wallet-api/rpc.mjs";export{rawSign}from"./wallet-api/raw-sign.mjs";export{getWallet}from"./wallet-api/get-wallet.mjs";export{updateWallet}from"./wallet-api/update-wallet.mjs";export{isUnifiedWallet}from"./wallet-api/unified-wallet.mjs";export{addSessionSigners,removeSessionSigners}from"./embedded/stack/session-signers.mjs";export{ConnectedStandardSolanaWallet}from"./solana/ConnectedStandardSolanaWallet.mjs";export{getCountryCallingCode}from"libphonenumber-js/min";export{i as delegatedActions}from"./index-g0cxoRWQ.mjs";export{i as crossApp}from"./index-Bu3ySxLM.mjs";import"./client/AppApi.mjs";import"./client/CrossAppApi.mjs";import"./Token.mjs";import"jose";import"./client/DelegatedWalletsApi.mjs";import"./client/EmbeddedWalletApi.mjs";import"./embedded/EmbeddedBitcoinWalletProvider.mjs";import"./embedded/stack/walletCreate.mjs";import"./embedded/EmbeddedWalletProxy.mjs";import"./utils/sleep.mjs";import"./embedded/EventCallbackQueue.mjs";import"./embedded/withMfa.mjs";import"./embedded/EmbeddedWalletProvider.mjs";import"eventemitter3";import"viem";import"@privy-io/ethereum";import"./embedded/methods.mjs";import"./embedded/stack/walletRpc.mjs";import"./utils/encodings.mjs";import"./embedded/stack/wallet-api-eth-transaction.mjs";import"./embedded/stack/wallet-api-eth-typed-data.mjs";import"./embedded/EmbeddedSolanaWalletProvider.mjs";import"./solana/getWalletPublicKeyFromTransaction.mjs";import"./solana/isVersionedTransaction.mjs";import"./client/MfaPromises.mjs";import"./client/PrivyInternal.mjs";import"fetch-retry";import"uuid";import"@privy-io/api-base";import"./Session.mjs";import"js-cookie";import"./utils/allSettled.mjs";import"./toAbortSignalTimeout.mjs";import"./utils/toSearchParams.mjs";import"./client/logger.mjs";import"./utils/noop.mjs";import"./client/UserApi.mjs";import"./client/auth/AuthApi.mjs";import"./client/auth/CustomProviderApi.mjs";import"./client/auth/maybeCreateWalletOnLogin.mjs";import"./utils/shouldCreateEmbeddedEthWallet.mjs";import"./utils/shouldCreateEmbeddedSolWallet.mjs";import"./client/auth/EmailApi.mjs";import"./client/auth/FarcasterApi.mjs";import"./client/auth/FarcasterV2Api.mjs";import"./client/auth/GuestApi.mjs";import"./client/auth/OAuthApi.mjs";import"./pkce.mjs";import"./client/auth/PasskeyApi.mjs";import"./client/auth/PhoneApi.mjs";import"./client/auth/SiweApi.mjs";import"./client/auth/SiwsApi.mjs";import"./client/auth/SmartWalletApi.mjs";import"./client/funding/FundingApi.mjs";import"./client/funding/CoinbaseOnRampApi.mjs";import"./client/funding/MoonpayOnRampApi.mjs";import"./client/mfa/MfaApi.mjs";import"./client/mfa/MfaPasskeyApi.mjs";import"./client/mfa/MfaSmsApi.mjs";import"./client/recovery/RecoveryApi.mjs";import"./client/recovery/RecoveryICloudApi.mjs";import"./client/recovery/RecoveryOAuthApi.mjs";import"./embedded/types.mjs";import"libphonenumber-js/examples.mobile.json";import"canonicalize";import"./action/delegatedActions/utils.mjs";import"./action/delegatedActions/delegateWallet.mjs";import"./action/delegatedActions/revokeWallets.mjs";import"./action/crossApp/loginWithCrossAppAuth.mjs";import"./action/crossApp/linkWithCrossAppAuth.mjs";import"./index-DTAjYY8z.mjs";import"./action/crossApp/wallet/signMessage.mjs";import"./action/crossApp/wallet/utils/isCrossAppWalletSmart.mjs";import"./action/crossApp/wallet/utils/sendCrossAppRequest.mjs";import"./action/crossApp/wallet/utils/getCrossAppAccountByWalletAddress.mjs";import"./action/crossApp/wallet/utils/getProviderAccessTokenOrRelink.mjs";import"./action/crossApp/wallet/utils/throwIfNotLoggedIn.mjs";import"./action/crossApp/wallet/signTypedData.mjs";import"./utils/typedData/generateDomainType.mjs";import"./action/crossApp/wallet/sendTransaction.mjs";export{e as default};
1
+ import e from"./client/Privy.mjs";export{BICONOMY,COINBASE_SMART_WALLET,KERNEL,LIGHT_ACCOUNT,SAFE,THIRDWEB}from"@privy-io/public-api";export{LocalStorage}from"./storage/LocalStorage.mjs";export{InMemoryCache}from"./storage/InMemoryStorage.mjs";export{MoonpayApiError,PrivyApiError,PrivyClientError,createErrorFormatter,errorIndicatesMfaCanceled}from"./Error.mjs";export{EmbeddedProviderError,PrivyConnectorError,PrivyEmbeddedWalletErrorCode,PrivyProviderRpcError,ProviderErrors,errorIndicatesMaxMfaRetries,errorIndicatesMfaRateLimit,errorIndicatesMfaTimeout,errorIndicatesMfaVerificationFailed,errorIndicatesRecoveryIsNeeded}from"./embedded/errors.mjs";export{getUserEmbeddedEthereumWallet,getUserEmbeddedWallet}from"./utils/getUserEmbeddedEthereumWallet.mjs";export{getAllUserEmbeddedEthereumWallets}from"./utils/getAllUserEmbeddedEthereumWallets.mjs";export{getAllUserEmbeddedSolanaWallets}from"./utils/getAllUserEmbeddedSolanaWallets.mjs";export{getAllUserEmbeddedBitcoinWallets}from"./utils/getAllUserEmbeddedBitcoinWallets.mjs";export{isEmbeddedWalletAccount}from"./utils/embedded-wallets.mjs";export{getEntropyDetailsFromAccount,getEntropyDetailsFromUser}from"./utils/entropy.mjs";export{getUserSmartWallet}from"./utils/getUserSmartWallet.mjs";export{getJsonRpcEndpointFromChain,throwIfInvalidRecoveryUpgradePath}from"./embedded/utils/index.mjs";export{countryCodesAndNumbers,formatPhoneNumber,getPhoneCountryCodeAndNumber,getPlaceholderPhoneNumber,lastFourDigits,phoneNumberTypingFormatter,validatePhoneNumber}from"./utils/phoneNumberUtils.mjs";export{getUserEmbeddedSolanaWallet}from"./utils/getUserEmbeddedSolanaWallet.mjs";export{toObjectKeys}from"./utils/toObjectKeys.mjs";export{SolanaUsdcAddressMap,UsdcAddressMap,getIsTokenUsdc}from"./utils/getIsTokenUsdc.mjs";export{chainToMoonpayCurrency,fundingMethodToMoonpayPaymentMethod,isSupportedChainIdForMoonpay}from"./funding/moonpay.mjs";export{getCoinbaseOnRampUrl,isSupportedChainIdForCoinbaseOnramp,toCoinbaseAssetId,toCoinbaseBlockchainFromChainId}from"./funding/coinbase.mjs";export{SolanaClient}from"./solana/client.mjs";export{createSiwsMessage}from"./solana/createSiwsMessage.mjs";export{getSolanaRpcEndpointForCluster}from"./solana/getSolanaRpcEndpointForCluster.mjs";export{getSolanaUsdcMintAddressForCluster}from"./solana/getSolanaUsdcMintAddressForCluster.mjs";export{getSolanaClusterDisplayName}from"./solana/getSolanaClusterDisplayName.mjs";export{ALL_WALLET_CLIENT_TYPES,SUPPORTED_CONNECTOR_TYPES}from"./types.mjs";export*from"@privy-io/chains";export{formatLamportsAmount,formatTokenAmount,formatWalletAddress,formatWeiAmount}from"./utils/formatters.mjs";export{generateAuthorizationSignature}from"./wallet-api/generate-authorization-signature.mjs";export{create}from"./wallet-api/create.mjs";export{rpc}from"./wallet-api/rpc.mjs";export{rawSign}from"./wallet-api/raw-sign.mjs";export{getWallet}from"./wallet-api/get-wallet.mjs";export{updateWallet}from"./wallet-api/update-wallet.mjs";export{isUnifiedWallet}from"./wallet-api/unified-wallet.mjs";export{addSessionSigners,removeSessionSigners}from"./embedded/stack/session-signers.mjs";export{ConnectedStandardSolanaWallet}from"./solana/ConnectedStandardSolanaWallet.mjs";export{getCountryCallingCode}from"libphonenumber-js/min";export{i as delegatedActions}from"./index-g0cxoRWQ.mjs";export{i as crossApp}from"./index-Bu3ySxLM.mjs";import"./client/AppApi.mjs";import"./client/CrossAppApi.mjs";import"./Token.mjs";import"jose";import"./client/DelegatedWalletsApi.mjs";import"./client/EmbeddedWalletApi.mjs";import"./embedded/EmbeddedBitcoinWalletProvider.mjs";import"./embedded/stack/walletCreate.mjs";import"./embedded/EmbeddedWalletProxy.mjs";import"./utils/sleep.mjs";import"./embedded/EventCallbackQueue.mjs";import"./embedded/withMfa.mjs";import"./embedded/EmbeddedWalletProvider.mjs";import"eventemitter3";import"viem";import"@privy-io/ethereum";import"./embedded/stack/walletRpc.mjs";import"./utils/encodings.mjs";import"./embedded/stack/wallet-api-eth-transaction.mjs";import"./embedded/stack/wallet-api-eth-typed-data.mjs";import"./embedded/EmbeddedSolanaWalletProvider.mjs";import"./solana/getWalletPublicKeyFromTransaction.mjs";import"./solana/isVersionedTransaction.mjs";import"./client/MfaPromises.mjs";import"./client/PrivyInternal.mjs";import"fetch-retry";import"uuid";import"@privy-io/api-base";import"./Session.mjs";import"js-cookie";import"./utils/allSettled.mjs";import"./toAbortSignalTimeout.mjs";import"./utils/toSearchParams.mjs";import"./client/logger.mjs";import"./utils/noop.mjs";import"./client/UserApi.mjs";import"./client/auth/AuthApi.mjs";import"./client/auth/CustomProviderApi.mjs";import"./client/auth/maybeCreateWalletOnLogin.mjs";import"./utils/shouldCreateEmbeddedEthWallet.mjs";import"./utils/shouldCreateEmbeddedSolWallet.mjs";import"./client/auth/EmailApi.mjs";import"./client/auth/FarcasterApi.mjs";import"./client/auth/FarcasterV2Api.mjs";import"./client/auth/GuestApi.mjs";import"./client/auth/OAuthApi.mjs";import"./pkce.mjs";import"./client/auth/PasskeyApi.mjs";import"./client/auth/PhoneApi.mjs";import"./client/auth/SiweApi.mjs";import"./client/auth/SiwsApi.mjs";import"./client/auth/SmartWalletApi.mjs";import"./client/funding/FundingApi.mjs";import"./client/funding/CoinbaseOnRampApi.mjs";import"./client/funding/MoonpayOnRampApi.mjs";import"./client/mfa/MfaApi.mjs";import"./client/mfa/MfaPasskeyApi.mjs";import"./client/mfa/MfaSmsApi.mjs";import"./client/recovery/RecoveryApi.mjs";import"./client/recovery/RecoveryICloudApi.mjs";import"./client/recovery/RecoveryOAuthApi.mjs";import"./embedded/types.mjs";import"libphonenumber-js/examples.mobile.json";import"canonicalize";import"./action/delegatedActions/utils.mjs";import"./action/delegatedActions/delegateWallet.mjs";import"./action/delegatedActions/revokeWallets.mjs";import"./action/crossApp/loginWithCrossAppAuth.mjs";import"./action/crossApp/linkWithCrossAppAuth.mjs";import"./index-DTAjYY8z.mjs";import"./action/crossApp/wallet/signMessage.mjs";import"./action/crossApp/wallet/utils/isCrossAppWalletSmart.mjs";import"./action/crossApp/wallet/utils/sendCrossAppRequest.mjs";import"./action/crossApp/wallet/utils/getCrossAppAccountByWalletAddress.mjs";import"./action/crossApp/wallet/utils/getProviderAccessTokenOrRelink.mjs";import"./action/crossApp/wallet/utils/throwIfNotLoggedIn.mjs";import"./action/crossApp/wallet/signTypedData.mjs";import"./utils/typedData/generateDomainType.mjs";import"./action/crossApp/wallet/sendTransaction.mjs";export{e as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@privy-io/js-sdk-core",
3
- "version": "0.55.3",
3
+ "version": "0.55.4",
4
4
  "description": "Vanilla JS client for the Privy Auth API",
5
5
  "keywords": [
6
6
  "authentication",
@@ -63,7 +63,7 @@
63
63
  ],
64
64
  "dependencies": {
65
65
  "@privy-io/api-base": "1.7.1",
66
- "@privy-io/public-api": "2.46.0",
66
+ "@privy-io/public-api": "2.47.0",
67
67
  "@privy-io/ethereum": "0.0.2",
68
68
  "canonicalize": "^2.0.0",
69
69
  "@privy-io/chains": "0.0.2",
@@ -1 +0,0 @@
1
- "use strict";let s=["eth_sign","eth_signTransaction","personal_sign","eth_signTypedData_v4","csw_signUserOperation","secp256k1_sign"];exports.isSupportedIframeRpcMethod=e=>s.includes(e);
@@ -1 +0,0 @@
1
- let s=["eth_sign","eth_signTransaction","personal_sign","eth_signTypedData_v4","csw_signUserOperation","secp256k1_sign"];const n=n=>s.includes(n);export{n as isSupportedIframeRpcMethod};