🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Sign inDemoInstall
Socket

@privy-io/js-sdk-core

Package Overview
Dependencies
Maintainers
8
Versions
833
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@privy-io/js-sdk-core - npm Package Compare versions

Comparing version

to
0.50.1

2

dist/cjs/client/auth/CustomProviderApi.js

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@privy-io/public-api"),t=require("./maybeCreateWalletOnLogin.js");require("../../utils/getUserEmbeddedEthereumWallet.js"),require("../../utils/getAllUserEmbeddedEthereumWallets.js"),require("../../utils/getUserEmbeddedSolanaWallet.js"),require("../../utils/getAllUserEmbeddedSolanaWallets.js"),require("../../utils/shouldCreateEmbeddedEthWallet.js"),require("../../utils/shouldCreateEmbeddedSolWallet.js");exports.default=class{async syncWithToken(s,r){let l=await this._privyInternal.fetch(e.CustomJWTAuthenticate,{body:{token:s}});await this._privyInternal.session.updateWithTokensResponse(l);let i=await t.maybeCreateWalletOnLogin(this._embedded,l,r?.embedded);return this._privyInternal.callbacks?.setUser?.(i.user),i}constructor(e,t){this._privyInternal=e,this._embedded=t}};
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@privy-io/public-api"),t=require("./maybeCreateWalletOnLogin.js");require("../../utils/getUserEmbeddedEthereumWallet.js"),require("../../utils/getAllUserEmbeddedEthereumWallets.js"),require("../../utils/getUserEmbeddedSolanaWallet.js"),require("../../utils/getAllUserEmbeddedSolanaWallets.js"),require("../../utils/shouldCreateEmbeddedEthWallet.js"),require("../../utils/shouldCreateEmbeddedSolWallet.js");exports.default=class{async syncWithToken(s,r,l){let i=await this._privyInternal.fetch(e.CustomJWTAuthenticate,{body:{token:s,mode:l}});await this._privyInternal.session.updateWithTokensResponse(i);let a=await t.maybeCreateWalletOnLogin(this._embedded,i,r?.embedded);return this._privyInternal.callbacks?.setUser?.(a.user),a}constructor(e,t){this._privyInternal=e,this._embedded=t}};

@@ -1,1 +0,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"),s=require("../wallet-api/unified-wallet.js"),a=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("@ethersproject/abstract-signer"),require("@ethersproject/providers"),require("../embedded/gas/arbitrum.js"),require("@ethersproject/bignumber"),require("../embedded/utils/ethers.js"),require("../embedded/gas/bsc.js"),require("../embedded/gas/op-stack.js"),require("@ethersproject/contracts"),require("@ethersproject/transactions"),require("../embedded/gas/polygon.js"),require("@ethersproject/units"),require("fetch-retry"),require("../embedded/utils/gas.js"),require("../utils/sleep.js"),require("../embedded/EventCallbackQueue.js"),require("../embedded/withMfa.js"),require("eventemitter3"),require("../embedded/methods.js"),require("../embedded/stack/walletRpc.js"),require("../utils/encodings.js"),require("../wallet-api/rpc.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 a.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)throw new r.PrivyClientError({error:"User-controlled server wallets do not support adding wallets",code:"embedded_wallet_creation_error"});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:o}=await this._privyInternal.refreshSession();return{user:o}}async getBitcoinProvider({wallet:e,entropyId:r,entropyIdVerifier:o,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.isUnifiedWallet(e)||await this._load({entropyId:r,entropyIdVerifier:o,wallet:e,recoveryPassword:i,recoveryAccessToken:d,recoverySecretOverride:a}),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:s,iCloudRecordNameOverride:a,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:s,iCloudRecordNameOverride:a,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 s.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:a,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 s.isUnifiedWallet(e)||(!l||o||i||d||a)&&await this._load({entropyId:r,entropyIdVerifier:t,wallet:e,recoveryPassword:o,recoveryAccessToken:i,recoverySecretOverride:d,recoveryKey:a}),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,a,n){if(!this._proxy)throw new r.PrivyClientError({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});return s.isUnifiedWallet(e)||(!n||i||d||a)&&await this._load({wallet:e,entropyId:t,entropyIdVerifier:o,recoveryPassword:i,recoveryAccessToken:d,recoverySecretOverride:a}),new l.EmbeddedSolanaWalletProvider({account:e,privyInternal:this._privyInternal,proxy:this._proxy,entropyId:t,entropyIdVerifier:o,app:this._appApi})}async setRecovery(e){let{wallet:t,...o}=e;if(!this._proxy)throw Error("Embedded wallet proxy not initialized");if(s.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 a=t.recovery_method;this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_set_recovery_started",{address:t.address,target_recovery_method:o.recoveryMethod,existing_recovery_method:a});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:a});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:s,recoverySecretOverride:a}){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)&&s){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:s,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&&a){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:"icloud-native"});let o=await this._proxy.recover({accessToken:n,recoverySecretOverride:a,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,s){if(this._chains=Array.from(e.DEFAULT_SUPPORTED_CHAINS),this._privyInternal=r,t&&(this._proxy=new a.EmbeddedWalletProxy(t,d),i.setProxy(this._proxy)),o){let r=e.dedupeSupportedChains(o);this._chains=r}this._mfa=i,this._mfaPromises=d,this._appApi=s}};
"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"),s=require("../wallet-api/unified-wallet.js"),a=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("@ethersproject/abstract-signer"),require("@ethersproject/providers"),require("../embedded/gas/arbitrum.js"),require("@ethersproject/bignumber"),require("../embedded/utils/ethers.js"),require("../embedded/gas/bsc.js"),require("../embedded/gas/op-stack.js"),require("@ethersproject/contracts"),require("@ethersproject/transactions"),require("../embedded/gas/polygon.js"),require("@ethersproject/units"),require("fetch-retry"),require("../embedded/utils/gas.js"),require("../utils/sleep.js"),require("../embedded/EventCallbackQueue.js"),require("../embedded/withMfa.js"),require("eventemitter3"),require("../embedded/methods.js"),require("../embedded/stack/walletRpc.js"),require("../utils/encodings.js"),require("../wallet-api/rpc.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 a.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)throw new r.PrivyClientError({error:"User-controlled server wallets do not support adding wallets",code:"embedded_wallet_creation_error"});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:o}=await this._privyInternal.refreshSession();return{user:o}}async getBitcoinProvider({wallet:e,entropyId:r,entropyIdVerifier:o,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.isUnifiedWallet(e)||await this._load({entropyId:r,entropyIdVerifier:o,wallet:e,recoveryPassword:i,recoveryAccessToken:d,recoverySecretOverride:a}),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:s,iCloudRecordNameOverride:a,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:s,iCloudRecordNameOverride:a,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 s.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:a,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 s.isUnifiedWallet(e)||(!l||o||i||d||a)&&await this._load({entropyId:r,entropyIdVerifier:t,wallet:e,recoveryPassword:o,recoveryAccessToken:i,recoverySecretOverride:d,recoveryKey:a}),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,a,n){if(!this._proxy)throw new r.PrivyClientError({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});return s.isUnifiedWallet(e)||(!n||i||d||a)&&await this._load({wallet:e,entropyId:t,entropyIdVerifier:o,recoveryPassword:i,recoveryAccessToken:d,recoverySecretOverride:a}),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(s.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 a=t.recovery_method;this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_set_recovery_started",{address:t.address,target_recovery_method:o.recoveryMethod,existing_recovery_method:a});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:a});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:s,recoverySecretOverride:a}){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)&&s){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:s,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&&a){this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_recovery_started",{address:t.address,recovery_method:"icloud-native"});let o=await this._proxy.recover({accessToken:n,recoverySecretOverride:a,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,s){if(this._chains=Array.from(e.DEFAULT_SUPPORTED_CHAINS),this._privyInternal=r,t&&(this._proxy=new a.EmbeddedWalletProxy(t,d),i.setProxy(this._proxy)),o){let r=e.dedupeSupportedChains(o);this._chains=r}this._mfa=i,this._mfaPromises=d,this._appApi=s}};

@@ -1,1 +0,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.50.1-beta-20250508214717",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})}))}};
"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.50.1",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 +0,1 @@

"use strict";var e=require("../Error.js"),r=require("../solana/getWalletPublicKeyFromTransaction.js"),t=require("../solana/isVersionedTransaction.js"),s=require("../wallet-api/unified-wallet.js"),a=require("./errors.js"),i=require("./stack/walletRpc.js");require("./types.js"),require("../utils/encodings.js"),require("../wallet-api/rpc.js"),require("canonicalize"),require("@privy-io/public-api"),require("./stack/wallet-api-eth-transaction.js"),require("./stack/wallet-api-eth-typed-data.js");exports.EmbeddedSolanaWalletProvider=class{async request(r){if(!await this._privyInternal.getAccessToken())throw new e.PrivyClientError({error:"Missing access token",code:"attempted_rpc_call_before_logged_in"});switch(r.method){case"signAndSendTransaction":return await this.handleSignAndSendTransaction(r);case"signTransaction":return await this.handleSignTransaction(r);default:return await this.handleIFrameRpc(r)}}get _publicKey(){return this._account.address}async connectAndRecover(e){if("privy-v2"!==this._account.recovery_method)try{await this._proxy.connect({entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier,accessToken:e})}catch(r){let t=a.errorIndicatesRecoveryIsNeeded(r);if(t&&"privy"===this._account.recovery_method)await this._proxy.recover({entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier,accessToken:e});else{if(!t||!this._onNeedsRecovery)throw r;{let e;await new Promise((async(r,t)=>{e=setTimeout(t,12e4),await(this._onNeedsRecovery?.({recoveryMethod:this._account.recovery_method,onRecovered:()=>r(!0)}))})).finally((()=>clearTimeout(e)))}}}}async signMessageRpc(e,r){let t=this._account;if(!s.isUnifiedWallet(t))return(await this._proxy.rpcWallet({accessToken:r,request:e,chainType:"solana",hdWalletIndex:this._account.wallet_index,entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier})).response.data;{let{data:s}=await i.walletRpc({context:{app:this._app,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e),signRequest:({message:e})=>this._proxy.signWithUserSigner({accessToken:r,message:e})},account:t,rpcRequest:{chainType:"solana",request:e}});return{signature:s}}}async handleIFrameRpc(r){try{let e=await this._privyInternal.getAccessToken();if(!e)throw Error("Missing privy token. User must be logged in");return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_started",{method:r.method,address:this._account.address}),await this.connectAndRecover(e),await this.signMessageRpc(r,e)}catch(t){console.error(t);let s=t instanceof Error?t.message:"Unable to make wallet request";throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_failed",{method:r.method,address:this._account.address,error:s}),new e.PrivyClientError({code:"embedded_wallet_request_error",error:s})}}async handleSignAndSendTransaction(s){try{let e=await this._privyInternal.getAccessToken();if(!e)throw Error("Missing privy token. User must be logged in");this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_started",{method:s.method,address:this._account.address}),await this.connectAndRecover(e);let{transaction:a,connection:i,options:n}=s.params,o=r.getWalletPublicKeyFromTransaction(a,this._account.address),c=t.isVersionedTransaction(a)?Buffer.from(a.message.serialize()):a.serializeMessage(),{signature:d}=await this.signMessageRpc({method:"signMessage",params:{message:c.toString("base64")}},e);return a.addSignature(o,Buffer.from(d,"base64")),{signature:await i.sendRawTransaction(a.serialize(),n)}}catch(r){console.error(r);let t=r instanceof Error?r.message:"Unable to make wallet request";throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_failed",{method:s.method,address:this._account.address,error:t}),new e.PrivyClientError({code:"embedded_wallet_request_error",error:t})}}async handleSignTransaction(s){try{let e=await this._privyInternal.getAccessToken();if(!e)throw Error("Missing privy token. User must be logged in");this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_started",{method:s.method,address:this._account.address}),await this.connectAndRecover(e);let{transaction:a}=s.params,i=r.getWalletPublicKeyFromTransaction(a,this._account.address),n=t.isVersionedTransaction(a)?Buffer.from(a.message.serialize()):a.serializeMessage(),{signature:o}=await this.signMessageRpc({method:"signMessage",params:{message:n.toString("base64")}},e);return a.addSignature(i,Buffer.from(o,"base64")),{signedTransaction:a}}catch(r){console.error(r);let t=r instanceof Error?r.message:"Unable to make wallet request";throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_failed",{method:s.method,address:this._account.wallet_index,error:t}),new e.PrivyClientError({code:"embedded_wallet_request_error",error:t})}}toJSON(){return`PrivyEmbeddedSolanaProvider { address: '${this._account.address}', request: [Function] }`}constructor({proxy:e,privyInternal:r,account:t,entropyId:s,entropyIdVerifier:a,onNeedsRecovery:i,app:n}){this._proxy=e,this._privyInternal=r,this._account=t,this._entropyId=s,this._entropyIdVerifier=a,this._onNeedsRecovery=i,this._app=n}};
"use strict";var e=require("../Error.js"),r=require("../solana/getWalletPublicKeyFromTransaction.js"),t=require("../solana/isVersionedTransaction.js"),s=require("../wallet-api/unified-wallet.js"),a=require("./errors.js"),i=require("./stack/walletRpc.js");require("./types.js"),require("../utils/encodings.js"),require("../wallet-api/rpc.js"),require("canonicalize"),require("@privy-io/public-api"),require("./stack/wallet-api-eth-transaction.js"),require("./stack/wallet-api-eth-typed-data.js");exports.EmbeddedSolanaWalletProvider=class{async request(r){if(!await this._privyInternal.getAccessToken())throw new e.PrivyClientError({error:"Missing access token",code:"attempted_rpc_call_before_logged_in"});switch(r.method){case"signAndSendTransaction":return await this.handleSignAndSendTransaction(r);case"signTransaction":return await this.handleSignTransaction(r);default:return await this.handleIFrameRpc(r)}}get _publicKey(){return this._account.address}async connectAndRecover(r){if("privy-v2"!==this._account.recovery_method)try{await this._proxy.connect({entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier,accessToken:r})}catch(t){let s=a.errorIndicatesRecoveryIsNeeded(t);if(s&&"privy"===this._account.recovery_method)await this._proxy.recover({entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier,accessToken:r});else{if(!s||!this._onNeedsRecovery)throw t;{let r;await new Promise((async(t,s)=>{r=setTimeout((()=>s(new e.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(r)))}}}}async signMessageRpc(e,r){let t=this._account;if(!s.isUnifiedWallet(t))return(await this._proxy.rpcWallet({accessToken:r,request:e,chainType:"solana",hdWalletIndex:this._account.wallet_index,entropyId:this._entropyId,entropyIdVerifier:this._entropyIdVerifier})).response.data;{let{data:s}=await i.walletRpc({context:{app:this._app,fetchPrivyRoute:(...e)=>this._privyInternal.fetch(...e),getCompiledPath:(...e)=>this._privyInternal.getPath(...e),signRequest:({message:e})=>this._proxy.signWithUserSigner({accessToken:r,message:e})},account:t,rpcRequest:{chainType:"solana",request:e}});return{signature:s}}}async handleIFrameRpc(r){try{let e=await this._privyInternal.getAccessToken();if(!e)throw Error("Missing privy token. User must be logged in");return this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_started",{method:r.method,address:this._account.address}),await this.connectAndRecover(e),await this.signMessageRpc(r,e)}catch(t){console.error(t);let s=t instanceof Error?t.message:"Unable to make wallet request";throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_failed",{method:r.method,address:this._account.address,error:s}),new e.PrivyClientError({code:"embedded_wallet_request_error",error:s})}}async handleSignAndSendTransaction(s){try{let e=await this._privyInternal.getAccessToken();if(!e)throw Error("Missing privy token. User must be logged in");this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_started",{method:s.method,address:this._account.address}),await this.connectAndRecover(e);let{transaction:a,connection:i,options:n}=s.params,o=r.getWalletPublicKeyFromTransaction(a,this._account.address),c=t.isVersionedTransaction(a)?Buffer.from(a.message.serialize()):a.serializeMessage(),{signature:d}=await this.signMessageRpc({method:"signMessage",params:{message:c.toString("base64")}},e);return a.addSignature(o,Buffer.from(d,"base64")),{signature:await i.sendRawTransaction(a.serialize(),n)}}catch(r){console.error(r);let t=r instanceof Error?r.message:"Unable to make wallet request";throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_failed",{method:s.method,address:this._account.address,error:t}),new e.PrivyClientError({code:"embedded_wallet_request_error",error:t})}}async handleSignTransaction(s){try{let e=await this._privyInternal.getAccessToken();if(!e)throw Error("Missing privy token. User must be logged in");this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_started",{method:s.method,address:this._account.address}),await this.connectAndRecover(e);let{transaction:a}=s.params,i=r.getWalletPublicKeyFromTransaction(a,this._account.address),n=t.isVersionedTransaction(a)?Buffer.from(a.message.serialize()):a.serializeMessage(),{signature:o}=await this.signMessageRpc({method:"signMessage",params:{message:n.toString("base64")}},e);return a.addSignature(i,Buffer.from(o,"base64")),{signedTransaction:a}}catch(r){console.error(r);let t=r instanceof Error?r.message:"Unable to make wallet request";throw this._privyInternal.createAnalyticsEvent("embedded_wallet_sdk_rpc_failed",{method:s.method,address:this._account.wallet_index,error:t}),new e.PrivyClientError({code:"embedded_wallet_request_error",error:t})}}toJSON(){return`PrivyEmbeddedSolanaProvider { address: '${this._account.address}', request: [Function] }`}constructor({proxy:e,privyInternal:r,account:t,entropyId:s,entropyIdVerifier:a,onNeedsRecovery:i,app:n}){this._proxy=e,this._privyInternal=r,this._account=t,this._entropyId=s,this._entropyIdVerifier=a,this._onNeedsRecovery=i,this._app=n}};
{
"name": "@privy-io/js-sdk-core",
"version": "0.50.1-beta-20250508214717",
"version": "0.50.1",
"description": "Vanilla JS client for the Privy Auth API",

@@ -70,4 +70,4 @@ "keywords": [

"@ethersproject/units": "^5.7.0",
"@privy-io/api-base": "1.5.1-beta-20250508214717",
"@privy-io/public-api": "2.25.0-beta-20250508214717",
"@privy-io/api-base": "1.5.1",
"@privy-io/public-api": "2.25.0",
"canonicalize": "^2.0.0",

@@ -74,0 +74,0 @@ "@privy-io/chains": "0.0.1",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet