@privy-io/react-auth 3.2.1 → 3.3.0

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.
Files changed (48) hide show
  1. package/dist/cjs/SignRequestScreen-CvBcoZRA.js +27 -0
  2. package/dist/cjs/abstract-smart-wallets.js +1 -1
  3. package/dist/cjs/extended-chains.js +1 -1
  4. package/dist/cjs/getEmbeddedConnectedWallet-6TsVZJkD.js +1 -0
  5. package/dist/cjs/index.js +5 -5
  6. package/dist/cjs/privy-context-NMR-GjnL.js +1 -0
  7. package/dist/cjs/{smart-wallets-7Aqc5Nzs.js → smart-wallets-Cgmp6lBz.js} +1 -1
  8. package/dist/cjs/smart-wallets.js +1 -1
  9. package/dist/cjs/solana.js +1 -1
  10. package/dist/cjs/ui.js +2 -2
  11. package/dist/cjs/{use-export-wallet-sK7TOD-_.js → use-export-wallet-Crjmwv6E.js} +1 -1
  12. package/dist/cjs/{useActiveWallet-BtCoqsEN.js → useActiveWallet-DAK4USsc.js} +1 -1
  13. package/dist/cjs/{usePrivy-B_0-uaxv.js → usePrivy-BQiDRA6a.js} +1 -1
  14. package/dist/dts/extended-chains.d.mts +1 -1
  15. package/dist/dts/extended-chains.d.ts +1 -1
  16. package/dist/dts/farcaster.d.mts +1 -1
  17. package/dist/dts/farcaster.d.ts +1 -1
  18. package/dist/dts/index.d.mts +25 -3
  19. package/dist/dts/index.d.ts +25 -3
  20. package/dist/dts/smart-wallets.d.mts +1 -1
  21. package/dist/dts/smart-wallets.d.ts +1 -1
  22. package/dist/dts/solana.d.mts +2 -2
  23. package/dist/dts/solana.d.ts +2 -2
  24. package/dist/dts/{types-DbYYrJGX.d.mts → types-C97UOzaM.d.mts} +18 -3
  25. package/dist/dts/{types-DbYYrJGX.d.ts → types-C97UOzaM.d.ts} +18 -3
  26. package/dist/dts/ui.d.mts +1 -1
  27. package/dist/dts/ui.d.ts +1 -1
  28. package/dist/esm/{SignRequestScreen-BFYRKL3N.mjs → SignRequestScreen-Dnn_x6kV.mjs} +21 -21
  29. package/dist/esm/abstract-smart-wallets.mjs +1 -1
  30. package/dist/esm/extended-chains.mjs +1 -1
  31. package/dist/esm/getEmbeddedConnectedWallet-CM6cDQCS.mjs +1 -0
  32. package/dist/esm/index.mjs +6 -6
  33. package/dist/esm/privy-context-C7K3ZBW-.mjs +1 -0
  34. package/dist/esm/smart-wallets-D86YXRN5.mjs +1 -0
  35. package/dist/esm/smart-wallets.mjs +1 -1
  36. package/dist/esm/solana.mjs +1 -1
  37. package/dist/esm/ui.mjs +2 -2
  38. package/dist/esm/use-export-wallet-DVZxxj2x.mjs +1 -0
  39. package/dist/esm/{useActiveWallet-LdKZteNM.mjs → useActiveWallet-YrSgEFNG.mjs} +1 -1
  40. package/dist/esm/{usePrivy-DPEbjcra.mjs → usePrivy-CYAVrCyA.mjs} +1 -1
  41. package/package.json +4 -4
  42. package/dist/cjs/SignRequestScreen-BbqNYmhD.js +0 -27
  43. package/dist/cjs/getEmbeddedConnectedWallet-DTU4T9TJ.js +0 -1
  44. package/dist/cjs/privy-context-CJzQZH6s.js +0 -1
  45. package/dist/esm/getEmbeddedConnectedWallet-CSSBWE2p.mjs +0 -1
  46. package/dist/esm/privy-context-CTKe79J4.mjs +0 -1
  47. package/dist/esm/smart-wallets-kAXh6Vvw.mjs +0 -1
  48. package/dist/esm/use-export-wallet-BxcU5zVQ.mjs +0 -1
@@ -1 +0,0 @@
1
- "use strict";exports.getEmbeddedConnectedWallet=function(e){return e.find((e=>"privy"===e.walletClientType&&"embedded"===e.connectorType&&!e.imported))??null};
@@ -1 +0,0 @@
1
- "use strict";var e=require("viem"),t=require("react"),i=require("./internal-context-DNWjSiYq.js");function a(e){return"string"==typeof e&&/^custom:[a-zA-Z0-9_-]+$/i.test(e)}function r(e){return e?new Date(1e3*e):null}function l(e,t){return e.slice().sort(((e,t)=>(e.firstVerifiedAt?.getTime()??0)-(t.firstVerifiedAt?.getTime()??0))).find((e=>e.type===t))}const n=e=>e?s(e).find((e=>0===e.walletIndex))??null:null,s=e=>e?m(e,"ethereum"):[],m=(e,t)=>e.linkedAccounts.filter((e=>"wallet"===e.type&&"privy"===e.walletClientType&&!e.imported&&e.chainType===t)),d=e=>e?m(e,"solana"):[],o=e=>e?d(e).find((e=>0===e.walletIndex))??null:null;let p=(t,i)=>t===i||!(!t.startsWith("0x")||!i.startsWith("0x"))&&e.getAddress(t)===e.getAddress(i);const u=/*#__PURE__*/t.createContext({ready:!1,authenticated:!1,user:null,walletConnectors:null,connectWallet:i.notImplemented,login:i.notImplemented,connectOrCreateWallet:i.notImplemented,linkEmail:i.notImplemented,linkPhone:i.notImplemented,linkFarcaster:i.notImplemented,linkWallet:i.notImplemented,startCrossAppAuthFlow:i.notImplemented,linkGoogle:i.notImplemented,linkTwitter:i.notImplemented,linkDiscord:i.notImplemented,linkGithub:i.notImplemented,linkSpotify:i.notImplemented,linkInstagram:i.notImplemented,linkTelegram:i.notImplemented,linkTiktok:i.notImplemented,linkLine:i.notImplemented,linkLinkedIn:i.notImplemented,linkApple:i.notImplemented,linkPasskey:i.notImplemented,updateEmail:i.notImplemented,updatePhone:i.notImplemented,logout:i.notImplemented,getAccessToken:i.notImplemented,unlinkEmail:i.notImplemented,unlinkPhone:i.notImplemented,unlinkWallet:i.notImplemented,unlinkGoogle:i.notImplemented,unlinkTwitter:i.notImplemented,unlinkDiscord:i.notImplemented,unlinkGithub:i.notImplemented,unlinkSpotify:i.notImplemented,unlinkInstagram:i.notImplemented,unlinkTiktok:i.notImplemented,unlinkLine:i.notImplemented,unlinkLinkedIn:i.notImplemented,unlinkApple:i.notImplemented,unlinkCrossAppAccount:i.notImplemented,unlinkFarcaster:i.notImplemented,unlinkTelegram:i.notImplemented,unlinkPasskey:i.notImplemented,signMessage:i.notImplemented,signTypedData:i.notImplemented,enrollInMfa:i.notImplemented,initEnrollmentWithSms:i.notImplemented,initEnrollmentWithTotp:i.notImplemented,initEnrollmentWithPasskey:i.notImplemented,promptMfa:i.notImplemented,init:i.notImplemented,submitEnrollmentWithSms:i.notImplemented,submitEnrollmentWithTotp:i.notImplemented,submitEnrollmentWithPasskey:i.notImplemented,unenroll:i.notImplemented,submit:i.notImplemented,cancel:i.notImplemented,sendTransaction:i.notImplemented,signTransaction:i.notImplemented,exportWallet:i.notImplemented,setWalletPassword:i.notImplemented,setWalletRecovery:i.notImplemented,requestFarcasterSignerFromWarpcast:i.notImplemented,getFarcasterSignerPublicKey:i.notImplemented,signFarcasterMessage:i.notImplemented,signMessageWithCrossAppWallet:i.notImplemented,signTypedDataWithCrossAppWallet:i.notImplemented,sendTransactionWithCrossAppWallet:i.notImplemented,signTransactionWithCrossAppWallet:i.notImplemented,isModalOpen:!1,mfaMethods:[]});exports.PrivyContext=u,exports.convertUserResponseToUser=function(e){if(!e)return null;let t=function(e){let t=[];for(let i of e){let e=i.type;switch(i.type){case"wallet":let l={id:i.id,address:i.address,type:i.type,imported:i.imported,delegated:i.delegated,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at),chainType:i.chain_type,walletClientType:i.wallet_client_type,connectorType:i.connector_type,recoveryMethod:i.recovery_method,walletIndex:i.wallet_index,publicKey:i.public_key};t.push(l);break;case"smart_wallet":let n={address:i.address,type:i.type,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at),smartWalletType:i.smart_wallet_type,smartWalletVersion:i.smart_wallet_version};t.push(n);break;case"cross_app":let s={type:i.type,subject:i.subject,embeddedWallets:i.embedded_wallets,smartWallets:i.smart_wallets,providerApp:{id:i.provider_app_id},firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)};t.push(s);break;case"email":let m={address:i.address,type:i.type,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)};t.push(m);break;case"phone":let d={number:i.phoneNumber,type:i.type,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)};t.push(d);break;case"google_oauth":let o={subject:i.subject,email:i.email,name:i.name,type:i.type,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)};t.push(o);break;case"spotify_oauth":let p={subject:i.subject,email:i.email,name:i.name,type:i.type,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)};t.push(p);break;case"instagram_oauth":let u={subject:i.subject,username:i.username,type:i.type,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)};t.push(u);break;case"twitter_oauth":let c={subject:i.subject,username:i.username,name:i.name,type:i.type,profilePictureUrl:i.profile_picture_url,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)};t.push(c);break;case"discord_oauth":let f={subject:i.subject,username:i.username,email:i.email,type:i.type,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)};t.push(f);break;case"github_oauth":let _={subject:i.subject,username:i.username,name:i.name,email:i.email,type:i.type,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)};t.push(_);break;case"tiktok_oauth":let y={subject:i.subject,username:i.username,name:i.name,type:i.type,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)};t.push(y);break;case"line_oauth":let h={subject:i.subject,name:i.name,email:i.email,profilePictureUrl:i.profile_picture_url,type:i.type,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)};t.push(h);break;case"linkedin_oauth":let b={subject:i.subject,name:i.name,email:i.email,vanityName:i.vanity_name,type:i.type,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)};t.push(b);break;case"apple_oauth":let I={subject:i.subject,email:i.email,type:i.type,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)};t.push(I);break;case"custom_auth":t.push({type:i.type,customUserId:i.custom_user_id,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)});break;case"farcaster":let k={type:i.type,fid:i.fid,ownerAddress:i.owner_address,displayName:i.display_name,username:i.username,bio:i.bio,pfp:i.profile_picture_url,url:i.homepage_url,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at),signerPublicKey:i.signer_public_key};t.push(k);break;case"passkey":let v={type:i.type,enrolledInMfa:i.enrolled_in_mfa,credentialId:i.credential_id,publicKey:i.public_key,authenticatorName:i.authenticator_name,createdWithDevice:i.created_with_device,createdWithOs:i.created_with_os,createdWithBrowser:i.created_with_browser,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)};t.push(v);break;case"telegram":let A={type:i.type,telegramUserId:i.telegram_user_id,firstName:i.first_name,lastName:i.last_name,username:i.username,photoUrl:i.photo_url,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)};t.push(A);break;default:if(a(i.type)){let e={type:i.type,subject:i.subject,name:i.name,username:i.username,email:i.email,profilePictureUrl:i.profile_picture_url,firstVerifiedAt:r(i.first_verified_at),latestVerifiedAt:r(i.latest_verified_at)};t.push(e);break}console.warn(`Unrecognized account type: ${e}. Please consider upgrading the Privy SDK.`)}}return t}(e.linked_accounts),i=l(t,"wallet"),n=l(t,"smart_wallet"),s=l(t,"email"),m=l(t,"phone"),d=l(t,"google_oauth"),o=l(t,"twitter_oauth"),p=l(t,"discord_oauth"),u=l(t,"github_oauth"),c=l(t,"spotify_oauth"),f=l(t,"instagram_oauth"),_=l(t,"tiktok_oauth"),y=l(t,"line_oauth"),h=l(t,"linkedin_oauth"),b=l(t,"apple_oauth"),I=l(t,"farcaster"),k=l(t,"telegram"),v=e.mfa_methods.map((({type:e,verified_at:t})=>({type:e,verifiedAt:r(t)})));return{id:e.id,createdAt:r(e.created_at),linkedAccounts:t,email:s&&{address:s?.address},phone:m&&{number:m?.number},wallet:i&&{id:i.id,address:i.address,chainType:i.chainType,walletClientType:i.walletClientType,connectorType:i.connectorType,recoveryMethod:i.recoveryMethod,imported:i.imported,delegated:i.delegated,walletIndex:i.walletIndex,publicKey:i.publicKey},smartWallet:n&&{address:n.address,smartWalletType:n.smartWalletType,smartWalletVersion:n.smartWalletVersion},google:d&&{subject:d.subject,email:d.email,name:d.name},twitter:o&&{subject:o.subject,username:o.username,name:o.name,profilePictureUrl:o.profilePictureUrl},discord:p&&{subject:p.subject,username:p.username,email:p.email},github:u&&{subject:u.subject,username:u.username,name:u.name,email:u.email},spotify:c&&{subject:c.subject,email:c.email,name:c.name},instagram:f&&{subject:f.subject,username:f.username},tiktok:_&&{subject:_.subject,username:_.username,name:_.name},line:y&&{subject:y.subject,name:y.name,email:y.email,profilePictureUrl:y.profilePictureUrl},linkedin:h&&{subject:h.subject,name:h.name,email:h.email,vanityName:h.vanityName},apple:b&&{subject:b.subject,email:b.email},farcaster:I&&{fid:I.fid,ownerAddress:I.ownerAddress,displayName:I.displayName,username:I.username,bio:I.bio,pfp:I.pfp,url:I.url,signerPublicKey:I.signerPublicKey},telegram:k&&{telegramUserId:k.telegramUserId,firstName:k.firstName,lastName:k.lastName,username:k.username,photoUrl:k.photoUrl},delegatedWallets:[],mfaMethods:v.map((e=>e.type)),hasAcceptedTerms:e.has_accepted_terms??!1,isGuest:e.is_guest,customMetadata:e.custom_metadata}},exports.getAllPrivyWalletsForChainType=m,exports.getConnectedWalletWithAddress=(e,t)=>e.find((e=>p(e.address,t)))||null,exports.getImportedPrivyEthereumWallets=e=>(e?.linkedAccounts??[]).filter((e=>"wallet"===e.type&&"privy"===e.walletClientType&&e.imported&&"ethereum"===e.chainType)),exports.getImportedPrivySolanaWallets=e=>(e?.linkedAccounts??[]).filter((e=>"wallet"===e.type&&e.imported&&"privy"===e.walletClientType&&"solana"===e.chainType)),exports.getIsUnifiedWallet=e=>!!e.id&&"privy-v2"===e.recoveryMethod,exports.getPrivyEthereumHDWallets=s,exports.getPrivyEthereumWallet=n,exports.getPrivyPrimaryWallet=e=>n(e)??o(e),exports.getPrivySolanaHDWallets=d,exports.getPrivySolanaWallet=o,exports.getPrivyWalletWithAddress=(e,t)=>e?.linkedAccounts.find((e=>"wallet"===e.type&&"privy"===e.walletClientType&&p(e.address,t)))||null,exports.isCustomOAuthProvider=a,exports.usePrivyContext=()=>t.useContext(u);
@@ -1 +0,0 @@
1
- function e(e){return e.find((e=>"privy"===e.walletClientType&&"embedded"===e.connectorType&&!e.imported))??null}export{e as g};
@@ -1 +0,0 @@
1
- import{getAddress as e}from"viem";import{createContext as t,useContext as i}from"react";import{n as a}from"./internal-context-LlMdpfkb.mjs";function r(e){return"string"==typeof e&&/^custom:[a-zA-Z0-9_-]+$/i.test(e)}function s(e){return e?new Date(1e3*e):null}function l(e,t){return e.slice().sort(((e,t)=>(e.firstVerifiedAt?.getTime()??0)-(t.firstVerifiedAt?.getTime()??0))).find((e=>e.type===t))}const n=e=>e?d(e).find((e=>0===e.walletIndex))??null:null,d=e=>e?u(e,"ethereum"):[],u=(e,t)=>e.linkedAccounts.filter((e=>"wallet"===e.type&&"privy"===e.walletClientType&&!e.imported&&e.chainType===t)),p=e=>e?u(e,"solana"):[],m=e=>e?p(e).find((e=>0===e.walletIndex))??null:null,o=e=>(e?.linkedAccounts??[]).filter((e=>"wallet"===e.type&&"privy"===e.walletClientType&&e.imported&&"ethereum"===e.chainType)),c=e=>(e?.linkedAccounts??[]).filter((e=>"wallet"===e.type&&e.imported&&"privy"===e.walletClientType&&"solana"===e.chainType));let f=(t,i)=>t===i||!(!t.startsWith("0x")||!i.startsWith("0x"))&&e(t)===e(i);const _=(e,t)=>e?.linkedAccounts.find((e=>"wallet"===e.type&&"privy"===e.walletClientType&&f(e.address,t)))||null,y=(e,t)=>e.find((e=>f(e.address,t)))||null,h=e=>n(e)??m(e);function b(e){if(!e)return null;let t=function(e){let t=[];for(let i of e){let e=i.type;switch(i.type){case"wallet":let a={id:i.id,address:i.address,type:i.type,imported:i.imported,delegated:i.delegated,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at),chainType:i.chain_type,walletClientType:i.wallet_client_type,connectorType:i.connector_type,recoveryMethod:i.recovery_method,walletIndex:i.wallet_index,publicKey:i.public_key};t.push(a);break;case"smart_wallet":let l={address:i.address,type:i.type,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at),smartWalletType:i.smart_wallet_type,smartWalletVersion:i.smart_wallet_version};t.push(l);break;case"cross_app":let n={type:i.type,subject:i.subject,embeddedWallets:i.embedded_wallets,smartWallets:i.smart_wallets,providerApp:{id:i.provider_app_id},firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)};t.push(n);break;case"email":let d={address:i.address,type:i.type,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)};t.push(d);break;case"phone":let u={number:i.phoneNumber,type:i.type,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)};t.push(u);break;case"google_oauth":let p={subject:i.subject,email:i.email,name:i.name,type:i.type,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)};t.push(p);break;case"spotify_oauth":let m={subject:i.subject,email:i.email,name:i.name,type:i.type,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)};t.push(m);break;case"instagram_oauth":let o={subject:i.subject,username:i.username,type:i.type,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)};t.push(o);break;case"twitter_oauth":let c={subject:i.subject,username:i.username,name:i.name,type:i.type,profilePictureUrl:i.profile_picture_url,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)};t.push(c);break;case"discord_oauth":let f={subject:i.subject,username:i.username,email:i.email,type:i.type,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)};t.push(f);break;case"github_oauth":let _={subject:i.subject,username:i.username,name:i.name,email:i.email,type:i.type,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)};t.push(_);break;case"tiktok_oauth":let y={subject:i.subject,username:i.username,name:i.name,type:i.type,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)};t.push(y);break;case"line_oauth":let h={subject:i.subject,name:i.name,email:i.email,profilePictureUrl:i.profile_picture_url,type:i.type,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)};t.push(h);break;case"linkedin_oauth":let b={subject:i.subject,name:i.name,email:i.email,vanityName:i.vanity_name,type:i.type,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)};t.push(b);break;case"apple_oauth":let k={subject:i.subject,email:i.email,type:i.type,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)};t.push(k);break;case"custom_auth":t.push({type:i.type,customUserId:i.custom_user_id,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)});break;case"farcaster":let A={type:i.type,fid:i.fid,ownerAddress:i.owner_address,displayName:i.display_name,username:i.username,bio:i.bio,pfp:i.profile_picture_url,url:i.homepage_url,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at),signerPublicKey:i.signer_public_key};t.push(A);break;case"passkey":let v={type:i.type,enrolledInMfa:i.enrolled_in_mfa,credentialId:i.credential_id,publicKey:i.public_key,authenticatorName:i.authenticator_name,createdWithDevice:i.created_with_device,createdWithOs:i.created_with_os,createdWithBrowser:i.created_with_browser,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)};t.push(v);break;case"telegram":let g={type:i.type,telegramUserId:i.telegram_user_id,firstName:i.first_name,lastName:i.last_name,username:i.username,photoUrl:i.photo_url,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)};t.push(g);break;default:if(r(i.type)){let e={type:i.type,subject:i.subject,name:i.name,username:i.username,email:i.email,profilePictureUrl:i.profile_picture_url,firstVerifiedAt:s(i.first_verified_at),latestVerifiedAt:s(i.latest_verified_at)};t.push(e);break}console.warn(`Unrecognized account type: ${e}. Please consider upgrading the Privy SDK.`)}}return t}(e.linked_accounts),i=l(t,"wallet"),a=l(t,"smart_wallet"),n=l(t,"email"),d=l(t,"phone"),u=l(t,"google_oauth"),p=l(t,"twitter_oauth"),m=l(t,"discord_oauth"),o=l(t,"github_oauth"),c=l(t,"spotify_oauth"),f=l(t,"instagram_oauth"),_=l(t,"tiktok_oauth"),y=l(t,"line_oauth"),h=l(t,"linkedin_oauth"),b=l(t,"apple_oauth"),k=l(t,"farcaster"),A=l(t,"telegram"),v=e.mfa_methods.map((({type:e,verified_at:t})=>({type:e,verifiedAt:s(t)})));return{id:e.id,createdAt:s(e.created_at),linkedAccounts:t,email:n&&{address:n?.address},phone:d&&{number:d?.number},wallet:i&&{id:i.id,address:i.address,chainType:i.chainType,walletClientType:i.walletClientType,connectorType:i.connectorType,recoveryMethod:i.recoveryMethod,imported:i.imported,delegated:i.delegated,walletIndex:i.walletIndex,publicKey:i.publicKey},smartWallet:a&&{address:a.address,smartWalletType:a.smartWalletType,smartWalletVersion:a.smartWalletVersion},google:u&&{subject:u.subject,email:u.email,name:u.name},twitter:p&&{subject:p.subject,username:p.username,name:p.name,profilePictureUrl:p.profilePictureUrl},discord:m&&{subject:m.subject,username:m.username,email:m.email},github:o&&{subject:o.subject,username:o.username,name:o.name,email:o.email},spotify:c&&{subject:c.subject,email:c.email,name:c.name},instagram:f&&{subject:f.subject,username:f.username},tiktok:_&&{subject:_.subject,username:_.username,name:_.name},line:y&&{subject:y.subject,name:y.name,email:y.email,profilePictureUrl:y.profilePictureUrl},linkedin:h&&{subject:h.subject,name:h.name,email:h.email,vanityName:h.vanityName},apple:b&&{subject:b.subject,email:b.email},farcaster:k&&{fid:k.fid,ownerAddress:k.ownerAddress,displayName:k.displayName,username:k.username,bio:k.bio,pfp:k.pfp,url:k.url,signerPublicKey:k.signerPublicKey},telegram:A&&{telegramUserId:A.telegramUserId,firstName:A.firstName,lastName:A.lastName,username:A.username,photoUrl:A.photoUrl},delegatedWallets:[],mfaMethods:v.map((e=>e.type)),hasAcceptedTerms:e.has_accepted_terms??!1,isGuest:e.is_guest,customMetadata:e.custom_metadata}}const k=e=>!!e.id&&"privy-v2"===e.recoveryMethod,A=/*#__PURE__*/t({ready:!1,authenticated:!1,user:null,walletConnectors:null,connectWallet:a,login:a,connectOrCreateWallet:a,linkEmail:a,linkPhone:a,linkFarcaster:a,linkWallet:a,startCrossAppAuthFlow:a,linkGoogle:a,linkTwitter:a,linkDiscord:a,linkGithub:a,linkSpotify:a,linkInstagram:a,linkTelegram:a,linkTiktok:a,linkLine:a,linkLinkedIn:a,linkApple:a,linkPasskey:a,updateEmail:a,updatePhone:a,logout:a,getAccessToken:a,unlinkEmail:a,unlinkPhone:a,unlinkWallet:a,unlinkGoogle:a,unlinkTwitter:a,unlinkDiscord:a,unlinkGithub:a,unlinkSpotify:a,unlinkInstagram:a,unlinkTiktok:a,unlinkLine:a,unlinkLinkedIn:a,unlinkApple:a,unlinkCrossAppAccount:a,unlinkFarcaster:a,unlinkTelegram:a,unlinkPasskey:a,signMessage:a,signTypedData:a,enrollInMfa:a,initEnrollmentWithSms:a,initEnrollmentWithTotp:a,initEnrollmentWithPasskey:a,promptMfa:a,init:a,submitEnrollmentWithSms:a,submitEnrollmentWithTotp:a,submitEnrollmentWithPasskey:a,unenroll:a,submit:a,cancel:a,sendTransaction:a,signTransaction:a,exportWallet:a,setWalletPassword:a,setWalletRecovery:a,requestFarcasterSignerFromWarpcast:a,getFarcasterSignerPublicKey:a,signFarcasterMessage:a,signMessageWithCrossAppWallet:a,signTypedDataWithCrossAppWallet:a,sendTransactionWithCrossAppWallet:a,signTransactionWithCrossAppWallet:a,isModalOpen:!1,mfaMethods:[]}),v=()=>i(A);export{A as P,h as a,n as b,b as c,d,o as e,_ as f,k as g,y as h,r as i,c as j,p as k,m as l,u as m,v as u};
@@ -1 +0,0 @@
1
- import{useRef as e,useState as t,useCallback as r}from"react";import{http as a,createPublicClient as n}from"viem";import{u as i,b as s,g as o}from"./privy-context-CTKe79J4.mjs";import{c2 as l,am as c,ar as d,ae as u,z as m,bT as p,bU as y,bw as g}from"./SignRequestScreen-BFYRKL3N.mjs";import{P as f}from"./paths-B891YjWw.mjs";import{u as h}from"./internal-context-LlMdpfkb.mjs";import{g as w}from"./getEmbeddedConnectedWallet-CSSBWE2p.mjs";import{createSmartAccountClient as P}from"permissionless";import{toThirdwebSmartAccount as I,toLightSmartAccount as W,toBiconomySmartAccount as v,toKernelSmartAccount as F,toSafeSmartAccount as x}from"permissionless/accounts";import{createPimlicoClient as G}from"permissionless/clients/pimlico";import{toCoinbaseSmartAccount as C,entryPoint06Address as T,entryPoint07Address as U}from"viem/account-abstraction";import{THIRDWEB as b,COINBASE_SMART_WALLET as M,LIGHT_ACCOUNT as S,BICONOMY as O,KERNEL as V,SAFE as A}from"@privy-io/js-sdk-core";let D={address:T,version:"0.6"},N={address:U,version:"0.7"},_=({owner:e,smartWalletType:t,smartWalletVersion:r,publicClient:a})=>{switch(t){case A:return x({client:a,entryPoint:N,owners:[e],version:"1.4.1"});case V:return F({client:a,version:"0.3.1",entryPoint:N,useMetaFactory:"optional",owners:[e]});case O:return v({client:a,owners:[e],entryPoint:D});case S:return W({client:a,entryPoint:D,owner:e,version:"1.1.0"});case M:return async function({client:e,owner:t,version:r}){let[a]=await t.request({method:"eth_accounts"});if(!a)throw Error("Unable to request embedded owner for eth_accounts");return await C({client:e,owners:[{type:"local",source:"privy",address:a,sign:async({hash:e})=>await t.request({method:"secp256k1_sign",params:[e]})}],version:r})}({client:a,owner:e,version:r??"1"});case b:return I({client:a,entryPoint:N,owner:e});default:throw Error(`Invalid smart account type: ${t}.`)}};const B=({calls:e,chain:t,maxPriorityFeePerGas:r,maxFeePerGas:a,nonce:n})=>e.map((e=>({to:e.to||void 0,data:e.data,value:e.value,chainId:t.id,nonce:n,maxFeePerGas:a,maxPriorityFeePerGas:r}))),$=async({chain:e,paymasterContext:t,account:r,signer:i,user:s,smartWalletsConfig:o,rpcConfig:c,privyAppId:d})=>{if(!(o?.enabled&&s&&r&&i))return;let u=o?.configuredNetworks.find((t=>t.chainId===`eip155:${e.id}`));if(!u)throw new f(`The chain ${e.name} (eip155:${e.id}) must be configured in the smart wallet configuration in your dashboard`);let m=s.smartWallet?s.smartWallet.smartWalletType:o.smartWalletType,p=s.smartWallet?s.smartWallet.smartWalletVersion:o.smartWalletVersion,y=l(e,c,d),g=n({chain:e,transport:a(y)}),h=t??u.paymasterContext,w=await(async({owner:e,smartWalletType:t,smartWalletVersion:r,chain:n,publicClient:i,bundlerUrl:s,paymasterUrl:o,paymasterContext:l})=>{let c=await _({owner:e,smartWalletType:t,publicClient:i,smartWalletVersion:r}),d=G({transport:a(s),entryPoint:c.entryPoint}),u=o?G({transport:a(o),entryPoint:c.entryPoint}):void 0;return P({account:c,chain:n,paymaster:u,paymasterContext:l,bundlerTransport:a(s),userOperation:{estimateFeesPerGas:async()=>{if(["public.pimlico.io","api.pimlico.io"].some((e=>s.includes(e))))return await d.getUserOperationGasPrice().then((e=>e.fast));if(["rpc.zerodev.app"].some((e=>s.includes(e))))return(await d.request({method:"zd_getUserOperationGasPrice",params:[]})).fast;if(["g.alchemy.com"].some((e=>s.includes(e)))){let[e,t]=await Promise.all([i.getBlock({blockTag:"latest"}),d.request({method:"rundler_maxPriorityFeePerGas",params:[]})]);if(!e.baseFeePerGas||!t)throw Error("Failed to get block or maxPriorityFeePerGasEstimate");return{maxFeePerGas:150n*e.baseFeePerGas/100n+BigInt(t.toString()),maxPriorityFeePerGas:BigInt(t.toString())}}{let e=await i.estimateFeesPerGas(),t=s.includes("api.developer.coinbase.com")?175n:150n;return{...e,maxFeePerGas:e.maxFeePerGas*t/100n,maxPriorityFeePerGas:e.maxPriorityFeePerGas*t/100n}}}}})})({owner:i,smartWalletType:m,smartWalletVersion:p,chain:e,publicClient:g,paymasterContext:h,...u});if(!w)throw new f(`Failed to create smart wallet client for chain ${e.name} (eip155:${e.id})`);return w},q=({clientConfig:a,smartWalletsConfig:n})=>{let{hideWalletUIs:l,openPrivyModal:P,appId:I,isHeadlessSigning:W}=h(),v=c(),{setModalData:F}=d(),{user:x}=i(),{chains:G}=c(),{chainId:C,clients:T,setChainId:U,chainIdState:b}=(()=>{let r=e(),[a,n]=t();return{clients:e({}),setChainId:e=>{r.current=e,n(e)},chainId:r,chainIdState:a}})(),M=G.find((e=>e.id===b)),{wallets:S}=u(),O=s(x),V=w(S),A=!!O&&o(O),D=r((async()=>C.current),[C]),N=r((async({id:e})=>{if(!T.current[e]){let t=await $({chain:G.find((t=>t.id===e)),account:O,signer:await(V?.getEthereumProvider()),user:x,paymasterContext:a?.paymasterContext,smartWalletsConfig:n,rpcConfig:v.rpcConfig,privyAppId:I});t&&(T.current[e]=t)}U(e)}),[G,a,S,x,n]);return{wrapSmartAccountClient:e=>{T.current[e.chain.id]=e,b||U(e.chain.id);return{...e,sendTransaction:async(e,t)=>{let r=T.current[C.current];if(!r)throw new f(`Smart wallet client for chain (eip155:${C.current}) not found`);if(delete e.account,W({showWalletUIs:t?.uiOptions?.showWalletUIs}))return l.current=!0,await r.sendTransaction(e).finally((()=>l.current=!1));let a=[];"calls"in e&&void 0!==e.calls?a=[...e.calls]:"to"in e&&(a=[{to:e.to,value:e.value||BigInt(0),data:e.data||"0x"}]);let n=async()=>{let{paymasterAndData:t,paymasterData:n,maxFeePerGas:i,maxPriorityFeePerGas:s}=await r.prepareUserOperation({calls:a,maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0});return 0===Number(i)&&0===Number(s)||Number(t??n??0)>0};return new Promise((async(i,s)=>{l.current=!0;let{entropyId:o,entropyIdVerifier:c}=m(x);F({connectWallet:{recoveryMethod:O.recoveryMethod,connectingWalletAddress:O.address,isUnifiedWallet:A,entropyId:o,entropyIdVerifier:c,onCompleteNavigateTo:p,onFailure:()=>{}},sendTransaction:{transactionRequests:B({calls:a,chain:r.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),transactingWalletIndex:0,transactingWalletAddress:r.account.address,entropyId:o,entropyIdVerifier:c,getIsSponsored:n,signOnly:!1,onConfirm:()=>r.sendTransaction(e),onSuccess:e=>i(e.hash),onFailure:s,uiOptions:t?.uiOptions??{}}}),P(y)})).finally((()=>{l.current=!1}))},signMessage:async(e,t)=>{let r=T.current[C.current];if(!r)throw new f(`Smart wallet client for chain (eip155:${C.current}) not found`);return W({showWalletUIs:t?.uiOptions?.showWalletUIs})?(l.current=!0,await r.signMessage(e).finally((()=>l.current=!1))):new Promise((async(a,n)=>{let{entropyId:i,entropyIdVerifier:s}=m(x);l.current=!0,F({connectWallet:{recoveryMethod:O.recoveryMethod,connectingWalletAddress:O.address,isUnifiedWallet:A,entropyId:i,entropyIdVerifier:s,onCompleteNavigateTo:g,onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof e.message?e.message:e.message.raw.toString(),confirmAndSign:()=>r.signMessage(e),onSuccess:e=>a(e),onFailure:n,uiOptions:t?.uiOptions??{}}}),P(y)})).finally((()=>{l.current=!1}))},signTypedData:async(e,t)=>{let r=T.current[C.current];if(!r)throw new f(`Smart wallet client for chain (eip155:${C.current}) not found`);return delete e.account,W({showWalletUIs:t?.uiOptions?.showWalletUIs})?(l.current=!0,await r.signTypedData(e).finally((()=>l.current=!1))):new Promise((async(a,n)=>{l.current=!0;let{entropyId:i,entropyIdVerifier:s}=m(x);F({connectWallet:{recoveryMethod:O.recoveryMethod,connectingWalletAddress:O.address,isUnifiedWallet:A,entropyId:i,entropyIdVerifier:s,onCompleteNavigateTo:g,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:e,confirmAndSign:()=>r.signTypedData(e),onSuccess:e=>a(e),onFailure:n,uiOptions:t?.uiOptions??{}}}),P(y)})).finally((()=>{l.current=!1}))},getChainId:D,chain:M,switchChain:N}}}},j=()=>{let{hideWalletUIs:e,openPrivyModal:t,isHeadlessSigning:r}=h(),{setModalData:a}=d(),{user:n}=i(),l=s(n),c=!!l&&o(l);return{wrapSmartAccountClientWithUIs:i=>({...i,sendTransaction:async(s,o)=>{if(r({showWalletUIs:o?.uiOptions?.showWalletUIs}))return e.current=!0,await i.sendTransaction(s).finally((()=>e.current=!1));let d=[];"calls"in s&&void 0!==s.calls?d=[...s.calls]:"to"in s&&(d=[{to:s.to,value:s.value||BigInt(0),data:s.data||"0x"}]);let u=async()=>{if(!i.paymaster)return!1;let{paymasterData:e,paymasterAndData:t}=await i.prepareUserOperation({calls:d,maxFeePerGas:s.maxFeePerGas,maxPriorityFeePerGas:s.maxPriorityFeePerGas,nonce:s.nonce?BigInt(s.nonce):void 0});return Number(t??e??0)>0};return new Promise((async(r,g)=>{e.current=!0;let{entropyId:f,entropyIdVerifier:h}=m(n);a({connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:l.address,isUnifiedWallet:c,entropyId:f,entropyIdVerifier:h,onCompleteNavigateTo:p,onFailure:()=>{}},sendTransaction:{transactionRequests:B({calls:d,chain:i.chain,maxPriorityFeePerGas:s.maxPriorityFeePerGas,maxFeePerGas:s.maxFeePerGas,nonce:s.nonce?BigInt(s.nonce):void 0}),transactingWalletIndex:0,transactingWalletAddress:i.account.address,entropyId:f,entropyIdVerifier:h,getIsSponsored:u,signOnly:!1,onConfirm:()=>i.sendTransaction(s),onSuccess:e=>r(e.hash),onFailure:g,uiOptions:o?.uiOptions??{}}}),t(y)})).finally((()=>{e.current=!1}))},signMessage:async(s,o)=>r({showWalletUIs:o?.uiOptions?.showWalletUIs})?(e.current=!0,await i.signMessage(s).finally((()=>e.current=!1))):new Promise((async(r,d)=>{let{entropyId:u,entropyIdVerifier:p}=m(n);e.current=!0,a({connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:l.address,isUnifiedWallet:c,entropyId:u,entropyIdVerifier:p,onCompleteNavigateTo:g,onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof s.message?s.message:s.message.raw.toString(),confirmAndSign:()=>i.signMessage(s),onSuccess:e=>r(e),onFailure:d,uiOptions:o?.uiOptions??{}}}),t(y)})).finally((()=>{e.current=!1})),signTypedData:async(s,o)=>r({showWalletUIs:o?.uiOptions?.showWalletUIs})?(e.current=!0,await i.signTypedData(s).finally((()=>e.current=!1))):new Promise((async(r,d)=>{e.current=!0;let{entropyId:u,entropyIdVerifier:p}=m(n);a({connectWallet:{recoveryMethod:l.recoveryMethod,connectingWalletAddress:l.address,isUnifiedWallet:c,entropyId:u,entropyIdVerifier:p,onCompleteNavigateTo:g,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:s,confirmAndSign:()=>i.signTypedData(s),onSuccess:e=>r(e),onFailure:d,uiOptions:o?.uiOptions??{}}}),t(y)})).finally((()=>{e.current=!1}))})}};export{q as a,B as c,$ as g,j as u};
@@ -1 +0,0 @@
1
- import{cm as e,ch as n,cz as t,cA as a,cB as i,cC as r,ai as s,aj as o,cD as c,cE as l,au as d,cb as u,al as p,cF as m,cG as f,cH as g,cI as h,cJ as y,cK as w,cL as v,am as A,ar as b,cM as I,cN as T,b4 as S,cO as O,cP as k,cQ as C,aG as E,z as x,bw as F,bU as _,ae as P,cR as U,cS as W,cT as M,af as j,b1 as B,cU as D,cV as L,as as N,cW as $,cX as R,cY as V,cZ as J,c_ as Q,c$ as q,bx as H}from"./SignRequestScreen-BFYRKL3N.mjs";import{jsx as K,jsxs as Y,Fragment as G}from"react/jsx-runtime";import z from"@heroicons/react/24/outline/CheckCircleIcon";import{useMemo as Z,useCallback as X,useState as ee,useEffect as ne}from"react";import{formatTokenAmount as te,rpc as ae,ConnectedStandardSolanaWallet as ie,formatWalletAddress as re}from"@privy-io/js-sdk-core";import{P as se,h as oe}from"./paths-B891YjWw.mjs";import{u as ce,a as le}from"./internal-context-LlMdpfkb.mjs";import{u as de,j as ue,a as pe,f as me,g as fe,k as ge,l as he}from"./privy-context-CTKe79J4.mjs";import{u as ye,g as we,i as ve}from"./usePrivy-DPEbjcra.mjs";import Ae from"eventemitter3";import{base58 as be}from"@scure/base";import{styled as Ie}from"styled-components";import{getTransactionDecoder as Te,pipe as Se,getCompiledTransactionMessageDecoder as Oe,decompileTransactionMessage as ke,setTransactionMessageLifetimeUsingBlockhash as Ce,compileTransaction as Ee,getTransactionEncoder as xe,getBase58Decoder as Fe,getBase64Decoder as _e,fetchAddressesForLookupTables as Pe,getBase58Encoder as Ue,address as We,createTransactionMessage as Me,setTransactionMessageFeePayerSigner as je,appendTransactionMessageInstruction as Be}from"@solana/kit";import{u as De}from"./use-sign-with-user-signer-DwqsbciW.mjs";import{getTransferSolInstruction as Le}from"@solana-program/system";import{findAssociatedTokenPda as Ne,getCreateAssociatedTokenIdempotentInstruction as $e,getTransferInstruction as Re}from"@solana-program/token";function Ve({rows:i}){/*#__PURE__*/return K(e,{children:i.filter((e=>!!e)).map(((e,i)=>null!=e.value||e.isLoading?/*#__PURE__*/Y(n,{children:[/*#__PURE__*/K(t,{children:e.label}),/*#__PURE__*/K(a,{$isLoading:e.isLoading,children:e.value})]},i):null))})}const Je=["solana:mainnet","solana:devnet","solana:testnet"];function Qe(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var qe=0,He="__private_"+qe+++"__implementation";function Ke(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var Ye=0;function Ge(e){return"__private_"+Ye+++"_"+e}var ze=/*#__PURE__*/Ge("_address"),Ze=/*#__PURE__*/Ge("_publicKey"),Xe=/*#__PURE__*/Ge("_chains"),en=/*#__PURE__*/Ge("_features"),nn=/*#__PURE__*/Ge("_label"),tn=/*#__PURE__*/Ge("_icon");class an{get address(){return Ke(this,ze)[ze]}get publicKey(){return Ke(this,Ze)[Ze].slice()}get chains(){return Ke(this,Xe)[Xe].slice()}get features(){return Ke(this,en)[en].slice()}get label(){return Ke(this,nn)[nn]}get icon(){return Ke(this,tn)[tn]}constructor({address:e,publicKey:n,label:t,icon:a}){Object.defineProperty(this,ze,{writable:!0,value:void 0}),Object.defineProperty(this,Ze,{writable:!0,value:void 0}),Object.defineProperty(this,Xe,{writable:!0,value:void 0}),Object.defineProperty(this,en,{writable:!0,value:void 0}),Object.defineProperty(this,nn,{writable:!0,value:void 0}),Object.defineProperty(this,tn,{writable:!0,value:void 0}),Ke(this,ze)[ze]=e,Ke(this,Ze)[Ze]=n,Ke(this,Xe)[Xe]=Je,Ke(this,nn)[nn]=t,Ke(this,tn)[tn]=a,Ke(this,en)[en]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===an&&Object.freeze(this)}}function rn(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var sn=0;function on(e){return"__private_"+sn+++"_"+e}var cn=/*#__PURE__*/on("_listeners"),ln=/*#__PURE__*/on("_version"),dn=/*#__PURE__*/on("_name"),un=/*#__PURE__*/on("_icon"),pn=/*#__PURE__*/on("_injection"),mn=/*#__PURE__*/on("_isPrivyWallet"),fn=/*#__PURE__*/on("_accounts"),gn=/*#__PURE__*/on("_on"),hn=/*#__PURE__*/on("_emit"),yn=/*#__PURE__*/on("_off"),wn=/*#__PURE__*/on("_connected"),vn=/*#__PURE__*/on("_connect"),An=/*#__PURE__*/on("_disconnect"),bn=/*#__PURE__*/on("_signMessage"),In=/*#__PURE__*/on("_signAndSendTransaction"),Tn=/*#__PURE__*/on("_signTransaction");function Sn(e,...n){rn(this,cn)[cn][e]?.forEach((e=>e.apply(null,n)))}function On(e,n){rn(this,cn)[cn][e]=rn(this,cn)[cn][e]?.filter((e=>n!==e))}const kn=/*#__PURE__*/Ie.span.withConfig({displayName:"CircleBackground",componentId:"sc-c9f33cd-0"})(["&&{width:82px;height:82px;border-width:4px;border-style:solid;border-color:",";background-color:",";border-radius:50%;display:inline-block;box-sizing:border-box;}"],(e=>e.color??"var(--privy-color-accent)"),(e=>e.color??"var(--privy-color-accent)")),Cn=({instruction:s,fees:o,transactionInfo:c,solPrice:l,chain:d})=>/*#__PURE__*/Y(e,{children:[c?.action&&/*#__PURE__*/Y(n,{children:[/*#__PURE__*/K(t,{children:"Action"}),/*#__PURE__*/K(a,{children:c.action})]}),null!=s?.total&&/*#__PURE__*/Y(n,{children:[/*#__PURE__*/K(t,{children:"Total"}),/*#__PURE__*/K(a,{children:s.total})]}),!s?.total&&null!=s?.amount&&/*#__PURE__*/Y(n,{children:[/*#__PURE__*/K(t,{children:"Total"}),/*#__PURE__*/K(a,{children:/*#__PURE__*/K(i,{quantities:[s.amount,o],tokenPrice:l})})]}),/*#__PURE__*/Y(n,{children:[/*#__PURE__*/K(t,{children:"Fees"}),/*#__PURE__*/K(a,{children:/*#__PURE__*/K(i,{quantities:[o],tokenPrice:l})})]}),s?.to&&/*#__PURE__*/Y(n,{children:[/*#__PURE__*/K(t,{children:"To"}),/*#__PURE__*/K(a,{children:/*#__PURE__*/K(r,{walletAddress:s.to,chainId:d,chainType:"solana"})})]})]}),En=({fees:e,onClose:n,receiptHeader:t,receiptDescription:a,transactionInfo:i,solPrice:r,signOnly:p,instruction:m,chain:f})=>/*#__PURE__*/Y(G,{children:[/*#__PURE__*/K(s,{onClose:n}),/*#__PURE__*/K(o,{style:{marginBottom:"16px"},children:/*#__PURE__*/Y("div",{children:[/*#__PURE__*/K(kn,{color:"var(--privy-color-success-light)"}),/*#__PURE__*/K(z,{height:38,width:38,strokeWidth:2,stroke:"var(--privy-color-success)"})]})}),/*#__PURE__*/K(c,{title:t??`Transaction ${p?"signed":"complete"}!`,description:a??"You're all set."}),/*#__PURE__*/K(Cn,{solPrice:r,instruction:m,fees:e,transactionInfo:i,chain:f}),/*#__PURE__*/K(l,{}),/*#__PURE__*/K(xn,{loading:!1,onClick:n,children:"Close"}),/*#__PURE__*/K(d,{}),/*#__PURE__*/K(u,{})]});let xn=/*#__PURE__*/Ie(p).withConfig({displayName:"SubmitButton",componentId:"sc-3cb7ee42-0"})(["&&{margin-top:24px;}transition:color 350ms ease,background-color 350ms ease;"]);function Fn(e){return new Uint8Array(Te().decode(e).messageBytes)}async function _n(e,n){try{return await e}catch{return n}}const Pn=(...e)=>{if("undefined"==typeof Buffer)throw new se("Buffer is not defined.",void 0,oe.BUFFER_NOT_DEFINED);return Buffer.from(...e)};function Un(e){switch(e){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet"}}async function Wn({privyClient:e,chain:n,mint:t}){let a=m[n];if(!a[t]){let i=await e.getSplTokenMetadata({mintAddress:t,cluster:Un(n)});i&&(a[t]={address:t,symbol:i.symbol,decimals:i.decimals})}return a[t]}async function Mn({solanaClient:e,tx:n}){let t=_e().decode(Fn(n)),{value:a}=await e.rpc.getFeeForMessage(t).send();return a??0n}async function jn({solanaClient:e,tx:n,replaceRecentBlockhash:t}){let{value:a}=await e.rpc.simulateTransaction(_e().decode(n),{commitment:"confirmed",encoding:"base64",sigVerify:!1,replaceRecentBlockhash:t}).send();if("BlockhashNotFound"===a.err&&t)throw Error("Simulation failed: Blockhash not found");return"BlockhashNotFound"===a.err?await jn({solanaClient:e,tx:n,replaceRecentBlockhash:!0}):{logs:a.logs??[],error:a.err,hasError:!!a.err,hasFunds:a.logs?.every((e=>!/insufficient funds/gi.test(e)&&!/insufficient lamports/gi.test(e)))??!0}}async function Bn({tx:e,solanaClient:n,privyClient:t,checkFunds:a}){let i=Oe().decode(Fn(e)),r=i.staticAccounts[0]??"",s=await Mn({solanaClient:n,tx:e}),o=a?await _n(jn({solanaClient:n,tx:e})):void 0,c=o?.hasFunds??!0,l={},d=[],u=await async function({solanaClient:e,message:n}){if(!("addressTableLookups"in n)||!n.addressTableLookups)return[...n.staticAccounts];let t=n.addressTableLookups.map((e=>e.lookupTableAddress)),a=await Pe(t,e.rpc),i=t.map(((e,t)=>[...n.addressTableLookups[t]?.writableIndexes.map((n=>{let i=a[e]?.[n];if(i)return{key:i,isWritable:!0,altIdx:t}}))??[],...n.addressTableLookups[t]?.readonlyIndexes.map((n=>{let i=a[e]?.[n];if(i)return{key:i,isWritable:!1,altIdx:t}}))??[]])).flat().filter((e=>!!e)).sort(((e,n)=>e.isWritable!==n.isWritable?e.isWritable?-1:1:e.altIdx-n.altIdx)).map((({key:e})=>e));return[...n.staticAccounts,...i]}({solanaClient:n,message:i});for(let e of i.instructions){let a=i.staticAccounts[e.programAddressIndex]||"";if(a!==f&&a!==g)if(a!==h){if(a===y){let n=await _n(function(e,n,t){let[a,i,r,s]=e.accountIndices?.map((e=>n[e]))??[];return{type:"ata-creation",program:t,payer:a,ata:i,owner:r,mint:s}}(e,u,a));if(!n){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}if(d.push(n),n.ata&&n.owner&&n.mint){l[n.ata]={owner:n.owner,mint:n.mint};continue}}if(w.includes(a)){let i=await _n($n(e,u,n,t,a));if(!i){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}d.push(i)}else if(v.includes(a)){let i=await _n(Rn(e,u,n,t,a));if(!i){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}d.push(i)}else d.push({type:"unknown",program:a,discriminator:e.data?.[0]})}else{let n=await _n(Nn(e,u));if(!n){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}d.push(n)}else{let i=await _n(Ln(e,u,n,t,l,a));if(!i){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}d.push(i),"spl-transfer"===i.type&&(i.fromAta&&i.fromAccount&&i.token.address&&(l[i.fromAta]??={owner:i.fromAccount,mint:i.token.address}),i.toAta&&i.toAccount&&i.token.address&&(l[i.toAta]??={owner:i.toAccount,mint:i.token.address}))}}return{spender:r,fee:s,instructions:d,hasFunds:!!c}}function Dn(e,n=0){try{return function(e,n=0){let t=0n;for(let a=0;a<8;a++)t|=BigInt(e[n+a])<<BigInt(8*a);return t}(e,n)}catch{}try{return e.readBigInt64LE(n)}catch{}let t=Pn(e);try{return((e,n=0)=>{let t=e[n],a=e[n+7];if(!t||!a)throw Error(`Buffer offset out of range: first: ${t}, last: ${a}.`);return(BigInt(e[n+4]+256*e[n+5]+65536*e[n+6]+(a<<24))<<32n)+BigInt(t+256*e[++n]+65536*e[++n]+16777216*e[++n])})(t)}catch{}try{return t.subarray(n).readBigInt64LE()}catch{}try{return t.readBigInt64LE(n)}catch{}return 0n}async function Ln(e,n,t,a,i,r){let s=e.data?.[0],o=e.accountIndices?.map((e=>n[e]))??[];if(1===s){let[e,n,t]=o;return{type:"spl-init-account",program:r,account:e,mint:n,owner:t}}if(3===s){let n,s,[c,l,d]=o,u="",p=l?i[l]:void 0;if(p)n=p.owner,u=p.mint;else if(l){let e=await t.rpc.getAccountInfo(l,{commitment:"confirmed",encoding:"jsonParsed"}).send(),a=e.value?.data;n=a?.parsed?.info?.owner,u=a?.parsed?.info?.mint??"",s=a?.parsed?.info?.tokenAmount?.decimals}if(!u&&c){let e=await t.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send(),n=e.value?.data;u=n?.parsed?.info?.mint??""}let m=await Wn({privyClient:a,chain:t.chain,mint:u}),f=m?.symbol??"";return s??=m?.decimals??9,{type:"spl-transfer",program:r,fromAta:c,fromAccount:d,toAta:l,toAccount:n,value:Dn(e.data,1),token:{symbol:f,decimals:s,address:u}}}if(9===s){let[e,n,t]=o;return{type:"spl-close-account",program:r,source:e,destination:n,owner:t}}if(17===s)return{type:"spl-sync-native",program:r};throw Error(`Token program instruction type ${s} not supported`)}async function Nn(e,n){let t=e.data?.[0],a=e.accountIndices?.map((e=>n[e]))??[];if(0===t){let[,n]=a;return{type:"create-account",program:h,account:n?.toString(),value:Dn(e.data,4),withSeed:!1}}if(2===t){let[n,t]=a;return{type:"sol-transfer",program:h,fromAccount:n,toAccount:t,token:{symbol:"SOL",decimals:9},value:Dn(e.data,4),withSeed:!1}}if(3===t){let[,n]=a;return{type:"create-account",program:h,account:n,withSeed:!0,value:Dn(e.data.slice(e.data.length-32-8-8))}}if(11===t){let[n,t]=a;return{type:"sol-transfer",program:h,fromAccount:n,toAccount:t,value:Dn(e.data,4),token:{symbol:"SOL",decimals:9},withSeed:!0}}throw Error(`System program instruction type ${t} not supported`)}async function $n(e,n,t,a,i){let r=e.accountIndices?.map((e=>n[e]))??[],s=e.data?.[0];if(143===s){let n=r[10],s=r[11];return{type:"raydium-swap-base-input",program:i,mintIn:n,mintOut:s,tokenIn:n?await Wn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:s?await Wn({privyClient:a,chain:t.chain,mint:s}):void 0,amountIn:Dn(e.data,8),minimumAmountOut:Dn(e.data,16)}}if(55===s){let n=r[10],s=r[11];return{type:"raydium-swap-base-output",program:i,mintIn:n,mintOut:s,tokenIn:n?await Wn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:s?await Wn({privyClient:a,chain:t.chain,mint:s}):void 0,maxAmountIn:Dn(e.data,8),amountOut:Dn(e.data,16)}}throw Error(`Raydium swap program instruction type ${s} not supported`)}async function Rn(e,n,t,a,i){let r=e.data?.[0],s=e.accountIndices?.map((e=>n[e]))??[];if([208,51,239,151,123,43,237,92].includes(r)){let n=s[5],r=s[6];return{type:"jupiter-swap-exact-out-route",program:i,mintIn:n,mintOut:r,tokenIn:n?await Wn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:r?await Wn({privyClient:a,chain:t.chain,mint:r}):void 0,outAmount:Dn(e.data,e.data.length-1-2-8-8),quotedInAmount:Dn(e.data,e.data.length-1-2-8)}}if([176,209,105,168,154,125,69,62].includes(r)){let n=s[7],r=s[8];return{type:"jupiter-swap-exact-out-route",program:i,mintIn:n,mintOut:r,tokenIn:n?await Wn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:r?await Wn({privyClient:a,chain:t.chain,mint:r}):void 0,outAmount:Dn(e.data,e.data.length-1-2-8-8),quotedInAmount:Dn(e.data,e.data.length-1-2-8)}}if([193,32,155,51,65,214,156,129].includes(r)){let n=s[7],r=s[8];return{type:"jupiter-swap-shared-accounts-route",program:i,mintIn:n,mintOut:r,tokenIn:n?await Wn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:r?await Wn({privyClient:a,chain:t.chain,mint:r}):void 0,inAmount:Dn(e.data,e.data.length-1-2-8-8),quotedOutAmount:Dn(e.data,e.data.length-1-2-8)}}throw[62,198,214,193,213,159,108,210].includes(r)&&console.warn("Jupiter swap program instruction 'claim' not implemented"),[116,206,27,191,166,19,0,73].includes(r)&&console.warn("Jupiter swap program instruction 'claim_token' not implemented"),[26,74,236,151,104,64,183,249].includes(r)&&console.warn("Jupiter swap program instruction 'close_token' not implemented"),[229,194,212,172,8,10,134,147].includes(r)&&console.warn("Jupiter swap program instruction 'create_open_orders' not implemented"),[28,226,32,148,188,136,113,171].includes(r)&&console.warn("Jupiter swap program instruction 'create_program_open_orders' not implemented"),[232,242,197,253,240,143,129,52].includes(r)&&console.warn("Jupiter swap program instruction 'create_token_ledger' not implemented"),[147,241,123,100,244,132,174,118].includes(r)&&console.warn("Jupiter swap program instruction 'create_token_account' not implemented"),[229,23,203,151,122,227,173,42].includes(r)&&console.warn("Jupiter swap program instruction 'route' not implemented"),[150,86,71,116,167,93,14,104].includes(r)&&console.warn("Jupiter swap program instruction 'route_with_token_ledger' not implemented"),[228,85,185,112,78,79,77,2].includes(r)&&console.warn("Jupiter swap program instruction 'set_token_ledger' not implemented"),[230,121,143,80,119,159,106,170].includes(r)&&console.warn("Jupiter swap program instruction 'shared_accounts_route_with_token_ledger' not implemented"),Error(`Jupiter swap program instruction type ${r} not supported`)}async function Vn({rpcSubscriptions:e,signature:n,timeout:t}){let a=new AbortController,i=await e.signatureNotifications(n,{commitment:"confirmed"}).subscribe({abortSignal:a.signal}),r=await Promise.race([new Promise((e=>{setTimeout((()=>{a.abort(),e(Error("Transaction confirmation timed out"))}),t)})),new Promise((async e=>{for await(let n of i){if(a.abort(),n.value.err)return e(Error("Transaction confirmation failed"));e(void 0)}}))]);if(r instanceof Error)throw r}function Jn({rpc:e,rpcSubscriptions:n,chain:t,blockExplorerUrl:a}){let i=function({rpc:e,rpcSubscriptions:n}){return async t=>new Promise((async(a,i)=>{try{let i=await e.sendTransaction(Pn(t).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await Vn({rpcSubscriptions:n,signature:i,timeout:1e4}),a({signature:new Uint8Array(Ue().encode(i))})}catch(e){i(e)}}))}({rpc:e,rpcSubscriptions:n});return{rpc:e,rpcSubscriptions:n,chain:t,blockExplorerUrl:a,sendAndConfirmTransaction:i}}function Qn(){let e=A(),n=Z((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((n=>[n,e.solanaRpcs[n]?Jn({chain:n,rpc:e.solanaRpcs[n].rpc,rpcSubscriptions:e.solanaRpcs[n].rpcSubscriptions,blockExplorerUrl:e.solanaRpcs[n].blockExplorerUrl??`https://explorer.solana.com?cluster=${n.replace("solana:","")}`}):null])))),[e.solanaRpcs]);return X((e=>{if(!n[e])throw Error(`No RPC configuration found for chain ${e}`);return n[e]}),[n])}const qn={component:()=>{let{data:e,onUserCloseViaDialogOrKeybindRef:n,setModalData:t,navigate:a}=b(),{client:i,closePrivyModal:r,walletProxy:s,showFiatPrices:o}=ce(),c=A(),{user:l}=de(),d=Qn()(e?.standardSignAndSendTransaction?.chain??"solana:mainnet"),[u,p]=ee(e?.standardSignAndSendTransaction?.transaction),[m,f]=ee(),[g,h]=ee(),[y,w]=ee({value:0n,isLoading:!1}),[v,x]=ee(!1),[F,_]=ee({}),[P,U]=ee(),W=e?.standardSignAndSendTransaction?.account,M=!!e?.standardSignAndSendTransaction?.signOnly,j=W?.imported?ue(l).find((e=>e.address===W.address)):pe(l),{solPrice:B,isSolPriceLoading:D}=I({enabled:o}),L=Z((()=>{if(!m)return;let e=m.spender,n=T(m.fee),t=T(y.value,3,!0),a=m.instructions.filter((e=>["sol-transfer","spl-transfer","raydium-swap-base-input","raydium-swap-base-output","jupiter-swap-shared-accounts-route","jupiter-swap-exact-out-route"].includes(e.type))),i=a.at(0);if(!i||a.length>1)return{fee:n,spender:e,balance:t};if("sol-transfer"===i.type)return{fee:n,spender:e,balance:t,total:T(i.value)};if("spl-transfer"===i.type)return{fee:n,spender:e,balance:t,total:`${te({amount:i.value,decimals:i.token.decimals})} ${i.token.symbol}`};if("raydium-swap-base-input"===i.type&&i.tokenIn&&i.tokenOut){return{fee:n,spender:e,balance:t,swap:`${`${te({amount:i.amountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${te({amount:i.minimumAmountOut,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("raydium-swap-base-output"===i.type&&i.tokenIn&&i.tokenOut){return{fee:n,spender:e,balance:t,swap:`${`${te({amount:i.maxAmountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${te({amount:i.amountOut,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("jupiter-swap-shared-accounts-route"===i.type&&i.tokenIn&&i.tokenOut){return{fee:n,spender:e,balance:t,swap:`${`${te({amount:i.inAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${te({amount:i.quotedOutAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("jupiter-swap-exact-out-route"===i.type&&i.tokenIn&&i.tokenOut){return{fee:n,spender:e,balance:t,swap:`${`${te({amount:i.quotedInAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${te({amount:i.outAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}return{fee:n,spender:e,balance:t}}),[m,W?.address,y]),N=Z((()=>{let e;if(!m||!o||!B||D)return;function n(...e){return C(e.reduce(((e,n)=>e+n),0n),B??0)}W?.address===m.spender&&(e=n(m.fee));let t=n(y.value),a=m.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)).at(0);return!a||m.instructions.length>1?{fee:e,balance:t}:"sol-transfer"===a.type?{fee:e,balance:t,total:n(a.value,W?.address===m.spender?m.fee:0n)}:"spl-transfer"===a.type?{fee:e,balance:t,total:`${te({amount:a.value,decimals:a.token.decimals})} ${a.token.symbol}`}:{fee:e,balance:t}}),[m,o,B,D,W?.address,y]);if(ne((()=>{!async function(){if(u&&i)try{h(void 0);let e=await Bn({tx:u,solanaClient:d,privyClient:i,checkFunds:!M});f(e)}catch(e){console.error("Failed to prepare transaction",e),h(e)}}()}),[u,d,i,M]),ne((()=>{(async function(){if(!W)return;w({value:y.value,isLoading:!0});let{value:e}=await d.rpc.getBalance(W.address,{commitment:"confirmed"}).send();w({value:e??0n,isLoading:!1})})().catch(console.error)}),[m]),!u||!e?.standardSignAndSendTransaction||!W){let n=Error("Invalid transaction request");/*#__PURE__*/return K(S,{error:n,allowlistConfig:c.allowlistConfig,onRetry:()=>{e?.standardSignAndSendTransaction?.onFailure(n),r({shouldCallAuthOnSuccess:!1})}})}let $=()=>{if(!v)return F.signature||F.signedTransaction?e?.standardSignAndSendTransaction?.onSuccess({signature:F.signature,signedTransaction:F.signedTransaction}):e?.standardSignAndSendTransaction?.onFailure(P??g??Error("User exited the modal before submitting the transaction")),r({shouldCallAuthOnSuccess:!1})};n.current=$;let R=e.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.contractInfo?.imgUrl?/*#__PURE__*/K("img",{src:e.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgUrl,alt:e.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgAltText}):null,V=!!(e.funding&&e.funding.supportedOptions.length>0),J=!m?.hasFunds&&V;if(F.signature||F.signedTransaction){let n=m?.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)),t=1===n?.length?n?.at(0):void 0;/*#__PURE__*/return K(En,{fees:F.fees??0n,onClose:$,transactionInfo:e.standardSignAndSendTransaction?.uiOptions.transactionInfo,solPrice:B,receiptHeader:e.standardSignAndSendTransaction?.uiOptions.successHeader,receiptDescription:e.standardSignAndSendTransaction?.uiOptions.successDescription,chain:d.chain,signOnly:M,instruction:"sol-transfer"===t?.type?{to:t.toAccount,amount:t.value}:{to:t?.toAccount||t?.toAta,total:L?.total}})}return P?/*#__PURE__*/K(O,{transactionError:P,chainId:d.chain,onClose:$,chainType:"solana",onRetry:async()=>{U(void 0);let{value:e}=await d.rpc.getLatestBlockhash().send();p(function(e,n){return Se(Oe().decode(Fn(e)),(e=>ke(e)),(e=>Ce(n,e)),(e=>Ee(e)),(e=>new Uint8Array(xe().encode(e))))}(u,e))}}):/*#__PURE__*/K(k,{img:R,title:e.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.title||"Confirm transaction",subtitle:e.standardSignAndSendTransaction?.uiOptions?.description||`${c.name} wants your permission to approve the following transaction.`,cta:J?"Add funds":e.standardSignAndSendTransaction?.uiOptions?.buttonText||"Approve",instructions:m?.instructions??[],network:"solana:mainnet"==d.chain?"Solana":d.chain.replace("solana:",""),blockExplorerUrl:d.blockExplorerUrl,total:o?N?.total:L?.total,fee:o?N?.fee:L?.fee,balance:o?N?.balance:L?.balance,swap:L?.swap,transactingWalletAddress:W.address,disabled:!m?.hasFunds&&!V,isSubmitting:v,isPreparing:!m||y.isLoading,isTokenPriceLoading:o&&D,isMissingFunds:!m?.hasFunds,submitError:P??void 0,parseError:g,onClick:J?async()=>{if(W){if(!V)throw Error("Funding wallet is not enabled");t({...e,funding:{...e.funding,methodScreen:E},solanaFundingData:e?.solanaFundingData}),a(E)}}:async()=>{try{if(x(!0),v||!W||!s||!l||!j)return;let n=await e.standardSignAndSendTransaction.onConfirm(u);if("signature"in n){let e=await async function({solanaClient:e,signature:n}){let t=Fe().decode(n),a=await e.rpc.getTransaction(t,{maxSupportedTransactionVersion:0,commitment:"confirmed",encoding:"base64"}).send().catch((()=>null));return a?{fee:a.meta?.fee??0n}:null}({solanaClient:d,signature:n.signature});return void _({...n,fees:e?.fee})}_(n)}catch(e){console.warn({transaction:u,error:e}),U(e)}finally{x(!1)}},onClose:$})}};function Hn(e,n,t){let a=structuredClone(Te().decode(e)),i=We(n);return i in a.signatures&&(a.signatures[i]=t),new Uint8Array(xe().encode(a))}function Kn(){let{isHeadlessSigning:e,walletProxy:n,initializeWalletProxy:t,recoverEmbeddedWallet:a,openModal:i,privy:r,client:s}=ce(),{user:o}=ye(),{setModalData:c}=b(),{signWithUserSigner:l}=De();return{signMessage:({message:d,address:u,options:p})=>new Promise((async(m,f)=>{let g=me(o,u);if("privy"!==g?.walletClientType)return void f(new se("Wallet is not a Privy wallet",void 0,oe.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:h,entropyIdVerifier:y}=x(o,g),w=fe(g),v=Pn(d).toString("base64");if(v.length<1)return void f(new se("Message must be a non-empty string",void 0,oe.INVALID_MESSAGE));let A=async()=>{let e;if(!o)throw Error("User must be authenticated before signing with a Privy wallet");let i=await s.getAccessToken();if(!i)throw Error("User must be authenticated to use their embedded wallet.");let c=n??await t(15e3);if(!c)throw Error("Failed to initialize embedded wallet proxy.");if(!await a({address:g.address}))throw Error("Unable to connect to wallet");if(w){let n=await ae(r,l,{chain_type:"solana",method:"signMessage",params:{message:v,encoding:"base64"},wallet_id:g.id});if(!n.data||!("signature"in n.data))throw Error("Failed to sign message");e=n.data.signature}else{let{response:n}=await c.rpc({accessToken:i,entropyId:h,entropyIdVerifier:y,chainType:"solana",hdWalletIndex:g.walletIndex??0,requesterAppId:p?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:v}}});e=n.data.signature}return e};if(e({showWalletUIs:p?.uiOptions?.showWalletUIs}))try{let e=await A(),n=new Uint8Array(Pn(e,"base64"));m({signature:n})}catch(e){f(e)}else c({signMessage:{method:"solana_signMessage",data:v,confirmAndSign:A,onSuccess:e=>{m({signature:new Uint8Array(Pn(e,"base64"))})},onFailure:e=>{f(e)},uiOptions:p?.uiOptions??{}},connectWallet:{recoveryMethod:g.recoveryMethod,connectingWalletAddress:g.address,entropyId:h,entropyIdVerifier:y,isUnifiedWallet:w,onCompleteNavigateTo:F,onFailure:e=>{f(new se("Failed to connect to wallet",e,oe.UNKNOWN_CONNECT_WALLET_ERROR))}}}),i(_)}))}}function Yn(){let{isHeadlessSigning:e,openModal:n}=ce(),{setModalData:t}=b(),{signMessage:a}=Kn(),{user:i}=ye();return{signTransaction:async({transaction:r,options:s,chain:o="solana:mainnet",address:c})=>{async function l(e){let{signature:n}=await a({message:Fn(e),address:c,options:{...s,uiOptions:{...s?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:Hn(e,c,n)}}return e({showWalletUIs:s?.uiOptions?.showWalletUIs})?l(r):new Promise((async(e,a)=>{let d=me(i,c);if("privy"!==d?.walletClientType)return void a(new se("Wallet is not a Privy wallet",void 0,oe.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:u,entropyIdVerifier:p}=x(i,d),m=fe(d);function f(e){return n=>{a(n instanceof se?n:new se("Failed to connect to wallet",n,e))}}let g={account:d,transaction:r,chain:o,signOnly:!0,uiOptions:s?.uiOptions||{},onConfirm:l,onSuccess:e,onFailure:f(oe.TRANSACTION_FAILURE)};t({connectWallet:{recoveryMethod:d.recoveryMethod,connectingWalletAddress:d.address,entropyId:u,entropyIdVerifier:p,isUnifiedWallet:m,onCompleteNavigateTo:qn,onFailure:f(oe.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:g}),n(_)}))}}}let Gn=new class extends Ae{setImplementation(e){Qe(this,He)[He]=e}async signMessage(e){return Qe(this,He)[He].signMessage(e)}async signAndSendTransaction(e){return Qe(this,He)[He].signAndSendTransaction(e)}async signTransaction(e){return Qe(this,He)[He].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,He,{writable:!0,value:void 0}),Qe(this,He)[He]=e}}({signTransaction:le("signTransaction was not injected"),signAndSendTransaction:le("signAndSendTransaction was not injected"),signMessage:le("signMessage was not injected")}),zn=new class{get version(){return rn(this,ln)[ln]}get name(){return rn(this,dn)[dn]}get icon(){return rn(this,un)[un]}get chains(){return Je.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:rn(this,vn)[vn]},"standard:disconnect":{version:"1.0.0",disconnect:rn(this,An)[An]},"standard:events":{version:"1.0.0",on:rn(this,gn)[gn]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:rn(this,In)[In]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:rn(this,Tn)[Tn]},"solana:signMessage":{version:"1.0.0",signMessage:rn(this,bn)[bn]},"privy:":{privy:{signMessage:rn(this,pn)[pn].signMessage,signTransaction:rn(this,pn)[pn].signTransaction,signAndSendTransaction:rn(this,pn)[pn].signAndSendTransaction}}}}get accounts(){return rn(this,fn)[fn].slice()}get isPrivyWallet(){return rn(this,mn)[mn]}constructor({name:e,icon:n,version:t,injection:a,wallets:i}){Object.defineProperty(this,hn,{value:Sn}),Object.defineProperty(this,yn,{value:On}),Object.defineProperty(this,cn,{writable:!0,value:void 0}),Object.defineProperty(this,ln,{writable:!0,value:void 0}),Object.defineProperty(this,dn,{writable:!0,value:void 0}),Object.defineProperty(this,un,{writable:!0,value:void 0}),Object.defineProperty(this,pn,{writable:!0,value:void 0}),Object.defineProperty(this,mn,{writable:!0,value:void 0}),Object.defineProperty(this,fn,{writable:!0,value:void 0}),Object.defineProperty(this,gn,{writable:!0,value:void 0}),Object.defineProperty(this,wn,{writable:!0,value:void 0}),Object.defineProperty(this,vn,{writable:!0,value:void 0}),Object.defineProperty(this,An,{writable:!0,value:void 0}),Object.defineProperty(this,bn,{writable:!0,value:void 0}),Object.defineProperty(this,In,{writable:!0,value:void 0}),Object.defineProperty(this,Tn,{writable:!0,value:void 0}),rn(this,cn)[cn]={},rn(this,gn)[gn]=(e,n)=>(rn(this,cn)[cn][e]?.push(n)||(rn(this,cn)[cn][e]=[n]),()=>rn(this,yn)[yn](e,n)),rn(this,wn)[wn]=e=>{null!=e&&(rn(this,fn)[fn]=e.map((({address:e})=>new an({address:e,publicKey:be.decode(e)})))),rn(this,hn)[hn]("change",{accounts:this.accounts})},rn(this,vn)[vn]=async()=>(rn(this,hn)[hn]("change",{accounts:this.accounts}),{accounts:this.accounts}),rn(this,An)[An]=async()=>{rn(this,hn)[hn]("change",{accounts:this.accounts})},rn(this,bn)[bn]=async(...e)=>{let n=[];for(let{account:t,...a}of e){let{signature:e}=await rn(this,pn)[pn].signMessage({...a,address:t.address});n.push({signedMessage:a.message,signature:e})}return n},rn(this,In)[In]=async(...e)=>{let n=[];for(let{transaction:t,account:a,options:i,chain:r}of e){let{signature:e}=await rn(this,pn)[pn].signAndSendTransaction({transaction:t,address:a.address,chain:r||"solana:mainnet",options:i});n.push({signature:e})}return n},rn(this,Tn)[Tn]=async(...e)=>{let n=[];for(let{transaction:t,account:a,options:i,chain:r}of e){let{signedTransaction:e}=await rn(this,pn)[pn].signTransaction({transaction:t,address:a.address,chain:r||"solana:mainnet",options:i});n.push({signedTransaction:e})}return n},rn(this,dn)[dn]=e,rn(this,un)[un]=n,rn(this,ln)[ln]=t,rn(this,pn)[pn]=a,rn(this,fn)[fn]=[],rn(this,mn)[mn]=!0,a.on("accountChanged",rn(this,wn)[wn],this),rn(this,wn)[wn](i)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:Gn});function Zn(){let{ready:e}=P(),{user:n}=ye(),{signMessage:t}=Kn(),{signTransaction:a}=Yn(),{signAndSendTransaction:i}=function(){let e=A(),{isHeadlessSigning:n,openModal:t}=ce(),{setModalData:a}=b(),{signTransaction:i}=Yn(),r=Qn(),{user:s}=ye();return{signAndSendTransaction:async({transaction:o,address:c,chain:l="solana:mainnet",options:d})=>{async function u(e){let{signedTransaction:n}=await i({transaction:e,address:c,chain:l,options:{...d,uiOptions:{...d?.uiOptions,showWalletUIs:!1}}}),{signature:t}=await r(l).sendAndConfirmTransaction(n);return{signature:t}}return n({showWalletUIs:d?.uiOptions?.showWalletUIs})?u(o):new Promise((async(n,i)=>{let r,p,m=me(s,c);if("privy"!==m?.walletClientType)return void i(new se("Wallet is not a Privy wallet",void 0,oe.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:f,entropyIdVerifier:g}=x(s,m),h=fe(m);function y(e){return n=>{i(n instanceof se?n:new se("Failed to connect to wallet",n,e))}}let w={account:m,transaction:o,chain:l,signOnly:!1,uiOptions:d?.uiOptions||{},onConfirm:u,onSuccess:n,onFailure:y(oe.TRANSACTION_FAILURE)},v={recoveryMethod:m.recoveryMethod,connectingWalletAddress:m.address,entropyId:f,entropyIdVerifier:g,isUnifiedWallet:h,onCompleteNavigateTo:qn,onFailure:y(oe.UNKNOWN_CONNECT_WALLET_ERROR)};e.fundingConfig&&(r=we({address:c,appConfig:e,methodScreen:E,fundWalletConfig:{...d,asset:"native-currency",chain:l},externalSolanaFundingScreen:st}),p={amount:e.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:l,destinationAddress:c,afterSuccessScreen:qn,sourceWalletData:void 0}),a({connectWallet:v,standardSignAndSendTransaction:w,funding:r,solanaFundingData:p}),t(_)}))}}}(),r=Z((()=>{let e=[...ge(n).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],t=ue(n);return t.length?[...e,...t]:e}),[n]),s=Z((()=>({signMessage:async({message:e,address:n,options:a})=>await t({message:e,address:n,options:a}),signTransaction:async({transaction:e,address:n,chain:t,options:i})=>await a({transaction:e,address:n,chain:t,options:i}),async signAndSendTransaction({transaction:e,address:n,chain:t,options:a}){let{signature:r}=await i({transaction:e,address:n,chain:t,options:a});return{signature:r}}})),[t,a,i]);return ne((()=>{Gn?.setImplementation(s)}),[s]),ne((()=>{var n;!e||(n=zn.accounts).length===r.length&&n.every(((e,n)=>e.address===r[n]?.address))||Gn?.emit("accountChanged",r)}),[e,r]),{ready:e,wallet:zn}}function Xn(){let{client:e}=ce(),{ready:n,wallet:t}=Zn(),[a,i]=ee([]),[r,s]=ee([]);return ne((()=>{let e=[t,...a.filter((e=>"solana"===e.chainType&&!!e.wallet.features)).map((e=>e.wallet))];s(e);let n=e.map((n=>n.features["standard:events"]?.on("change",(()=>{s([...e])}))));return()=>{n.forEach((e=>e?.()))}}),[a]),ne((()=>{if(!n)return;i(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let t=()=>{i(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",t),()=>{e.connectors?.off("connectorInitialized",t)}}),[n,e.connectors]),{ready:n,wallets:r}}function et(){let{ready:e,wallets:n}=Xn();return{ready:e,wallets:Z((()=>n.flatMap((e=>e.accounts.map((n=>new ie({wallet:e,account:n})))))),[n])}}function nt(e){return Fe().decode(e)}function tt(e){return BigInt(Math.floor(1e9*parseFloat(e)))}function at(e){return+it.format(parseFloat(e.toString())/1e9)}let it=Intl.NumberFormat(void 0,{maximumFractionDigits:8});async function rt({tx:e,solanaClient:n,amount:t,asset:a,tokenPrice:i}){if(!e)return null;if("SOL"===a&&i){let a=tt(t),r=C(a,i),s=await Mn({solanaClient:n,tx:e});return{amountInUsd:r,feeInUsd:i?C(s,i):void 0,totalInUsd:C(a+s,i)}}if("USDC"===a&&i){let a="$"+t,r=await Mn({solanaClient:n,tx:e}),s=function(e,n){let t=parseFloat(e.toString())/W*n;return t<.01?0:t}(r,i);return{amountInUsd:a,feeInUsd:C(r,i),totalInUsd:"$"+(parseFloat(t)+s).toFixed(2)}}if("SOL"===a){let a=tt(t),i=await Mn({solanaClient:n,tx:e});return{amountInSol:t+" SOL",feeInSol:at(i)+" SOL",totalInSol:at(a+i)+" SOL"}}return{amountInUsdc:t+" USDC",feeInSol:at(await Mn({solanaClient:n,tx:e}))+" SOL"}}const st={component:function(){let e=A(),{closePrivyModal:n,createAnalyticsEvent:t}=ce(),{data:a,setModalData:i,navigate:r}=b(),{wallets:s}=et(),[o,l]=ee("preparing"),[m,g]=ee(),[h,y]=ee(),[w,v]=ee();if(!a?.solanaFundingData)throw Error("Funding config is missing");if(!a.solanaFundingData.sourceWalletData)throw Error("Funding config is missing source wallet data");let{amount:I,asset:T,chain:S,sourceWalletData:O,destinationAddress:k,afterSuccessScreen:E}=a.solanaFundingData,x=s.find((e=>e.address===O.address&&M(O.walletClientType)===M(e.standardWallet.name))),F=Qn()(S),{tokenPrice:_,isTokenPriceLoading:P}=j("solana");return ne((()=>{if("preparing"!==o||P||!x)return;let e="SOL"===T?tt(I):function(e){return BigInt(Math.floor(1e6*parseFloat(e)))}(I);y({amount:("SOL"===T&&_?C(e,_):I)??I}),("SOL"===T?async function({solanaClient:e,source:n,destination:t,amountInLamports:a}){let{value:i}=await e.rpc.getLatestBlockhash().send(),r={address:n},s=Se(Me({version:0}),(e=>je(r,e)),(e=>Ce(i,e)),(e=>Be(Le({amount:a,source:r,destination:t}),e)),(e=>Ee(e)));return new Uint8Array(xe().encode(s))}({solanaClient:F,source:x.address,destination:k,amountInLamports:e}):async function({solanaClient:e,source:n,destination:t,amountInBaseUnits:a}){let i=U(e.chain),{value:r}=await e.rpc.getLatestBlockhash().send(),s={address:n},[o]=await Ne({mint:i,owner:n,tokenProgram:f}),[c]=await Ne({mint:i,owner:t,tokenProgram:f}),[l,d]=await Promise.all([e.rpc.getAccountInfo(o,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null)),e.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null))]);if(!l?.value)throw Error(`Source token account does not exist for address: ${n}`);let u=$e({payer:s,ata:c,owner:t,mint:i}),p=Se(Me({version:0}),(e=>je(s,e)),(e=>Ce(r,e)),(e=>d?.value?e:Be(u,e)),(e=>Be(Re({source:o,destination:c,authority:s,amount:a}),e)),(e=>Ee(e)));return new Uint8Array(xe().encode(p))}({solanaClient:F,source:x.address,destination:k,amountInBaseUnits:e})).then(g).catch((e=>{l("error"),v(e)}))}),[o,I,T,S,x,k,P,_]),ne((()=>{"preparing"===o&&m&&rt({tx:m,solanaClient:F,amount:I,asset:T,tokenPrice:_}).then((e=>{l("loaded"),y({amount:e?.amountInUsd??e?.amountInUsdc??e?.amountInSol??I,fee:e?.feeInUsd??e?.feeInSol,total:e?.totalInUsd??e?.totalInSol})})).catch((e=>{l("error"),v(e)}))}),[m,I,T,o,_]),ne((()=>{"error"===o&&w&&(i({errorModalData:{error:w,previousScreen:st},solanaFundingData:a.solanaFundingData}),r(B,!1))}),[o,r]),ne((()=>{if("success"!==o)return;let e=setTimeout(E?()=>r(E):n,D);return()=>clearTimeout(e)}),[o]),/*#__PURE__*/Y(G,"success"===o?{children:[/*#__PURE__*/K(L,{}),/*#__PURE__*/K(N,{}),/*#__PURE__*/Y($,{children:[/*#__PURE__*/K(z,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/K(c,{title:"Success!",description:`You’ve successfully added ${I} ${T} to your ${e.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/K(d,{}),/*#__PURE__*/K(u,{})]}:"preparing"===o||"loaded"===o||"sending"===o?{children:[/*#__PURE__*/K(L,{}),/*#__PURE__*/K(R,{style:{marginTop:"16px"},children:/*#__PURE__*/K(V,{icon:x?.standardWallet.icon,name:x?.standardWallet.name})}),/*#__PURE__*/K(c,{style:{marginTop:"8px",marginBottom:"12px"},title:"sending"===o&&x?`Confirming with ${x.standardWallet.name}`:"Confirm transaction"}),/*#__PURE__*/K(Ve,{rows:[{label:"Source",value:re(O.address)},{label:"Destination",value:re(k)},{label:"Network",value:J(S)},{label:"Amount",value:h?.amount,isLoading:"preparing"===o},{label:"Estimated fee",value:h?.fee,isLoading:"preparing"===o},{label:"Total",value:h?.total,isLoading:"preparing"===o}]}),/*#__PURE__*/K(p,{style:{marginTop:"1rem"},loading:"preparing"===o||"sending"===o,onClick:function(){"loaded"===o&&m&&x&&(l("sending"),async function({transaction:e,chain:n,sourceWallet:t,solanaClient:a}){let{hasFunds:i}=await jn({solanaClient:a,tx:e});if(!i)throw new se(`Wallet ${re(t.address)} does not have enough funds.`,void 0,oe.INSUFFICIENT_BALANCE);let r=nt((await t.signAndSendTransaction({transaction:e,chain:n}).catch((e=>{throw new se("Transaction was rejected by the user",e,oe.TRANSACTION_FAILURE)}))).signature);return await Vn({rpcSubscriptions:a.rpcSubscriptions,signature:r,timeout:2e4}),r}({solanaClient:F,transaction:m,chain:S,sourceWallet:x}).then((e=>{l("success"),t({eventName:Q,payload:{provider:"external",status:"success",txHash:e,address:x.address,value:I,chainType:"solana",clusterName:S,token:T,destinationAddress:k,destinationValue:I,destinationChainType:"solana",destinationClusterName:S,destinationToken:T}})})).catch((e=>{l("error"),v(e)})))},children:"Confirm"}),/*#__PURE__*/K(u,{})]}:{children:[/*#__PURE__*/K(L,{}),/*#__PURE__*/K(q,{}),/*#__PURE__*/K("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/K(u,{})]})}};function ot(){let e=A(),{openModal:n}=ce(),{setModalData:t}=b();return{fundWallet:async({address:a,options:i})=>{let r=i?.amount||e.fundingConfig?.defaultRecommendedAmount||"1",s=i?.asset||e.fundingConfig?.defaultRecommendedCurrency.asset||"native-currency",o=i?.chain||"solana:mainnet";t({funding:we({address:a,appConfig:e,methodScreen:E,fundWalletConfig:{...i,amount:r,asset:s,chain:o},externalSolanaFundingScreen:st}),solanaFundingData:{amount:r,asset:"native-currency"===s?"SOL":"USDC",chain:o,destinationAddress:a,sourceWalletData:void 0}}),n(E)}}}function ct(){let{user:e,getAccessToken:n}=de(),{walletProxy:t,openModal:a,client:i}=ce(),{setModalData:r}=b(),s=A();return Z((()=>({exportWallet:o=>new Promise((async(c,l)=>{if(!e)return void l(new se("User must be authenticated before exporting their Privy wallet"));let d=o?.address?me(e,o.address):he(e);if(!d)return void l(new se("User must have an embedded wallet."));if(!ve(d))return void l(Error(`Export is not supported for ${d.chainType} wallets`));let u=fe(d),{entropyId:p,entropyIdVerifier:m}=x(e,d);await n()?t?(r({connectWallet:{recoveryMethod:d.recoveryMethod,connectingWalletAddress:d.address,isUnifiedWallet:u,entropyId:p,entropyIdVerifier:m,onCompleteNavigateTo:H,onFailure:l,shouldForceMFA:!0},keyExport:{appId:s.id,appClientId:s.appClientId,origin:i.apiUrl,address:d.address,entropyId:p,entropyIdVerifier:m,hdWalletIndex:d.walletIndex,chainType:d.chainType,walletId:d.id,isUnifiedWallet:u,imported:d.imported,onSuccess:c,onFailure:l}}),a(_)):l(new se("Wallet not ready for export")):l(new se("Must have valid access token."))}))})),[e,n,t,a,i,r,s])}export{ct as a,nt as b,et as c,Xn as d,Mn as f,Jn as g,jn as s,ot as u};