@privy-io/react-auth 3.4.0 → 3.4.2-beta-20251024222344

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 (39) hide show
  1. package/dist/cjs/{SignRequestScreen-BtiA_kjR.js → SignRequestScreen-CQ5Uv3Ko.js} +4 -4
  2. package/dist/cjs/abstract-smart-wallets.js +1 -1
  3. package/dist/cjs/index.js +6 -6
  4. package/dist/cjs/{smart-wallets-CT6HYICU.js → smart-wallets-5ZD9AaXx.js} +1 -1
  5. package/dist/cjs/smart-wallets.js +1 -1
  6. package/dist/cjs/solana.js +1 -1
  7. package/dist/cjs/ui.js +1 -1
  8. package/dist/cjs/{use-export-wallet-C_4yZPUM.js → use-export-wallet-D7YWhrXi.js} +2 -2
  9. package/dist/cjs/{useActiveWallet-DygS7fQB.js → useActiveWallet-BQrJpoI4.js} +1 -1
  10. package/dist/cjs/{usePrivy-8s4mCLcX.js → usePrivy-CQ4PJHWQ.js} +1 -1
  11. package/dist/dts/events-context-BWjWYSoK.d.mts +328 -0
  12. package/dist/dts/events-context-BWjWYSoK.d.ts +328 -0
  13. package/dist/dts/extended-chains.d.mts +2 -1
  14. package/dist/dts/extended-chains.d.ts +2 -1
  15. package/dist/dts/farcaster.d.mts +2 -1
  16. package/dist/dts/farcaster.d.ts +2 -1
  17. package/dist/dts/index.d.mts +21 -333
  18. package/dist/dts/index.d.ts +21 -333
  19. package/dist/dts/smart-wallets.d.mts +2 -1
  20. package/dist/dts/smart-wallets.d.ts +2 -1
  21. package/dist/dts/solana.d.mts +31 -5
  22. package/dist/dts/solana.d.ts +31 -5
  23. package/dist/dts/{types-tFJ_e9u8.d.mts → types-DnBecU1G.d.mts} +7 -1
  24. package/dist/dts/{types-tFJ_e9u8.d.ts → types-DnBecU1G.d.ts} +7 -1
  25. package/dist/dts/ui.d.mts +2 -1
  26. package/dist/dts/ui.d.ts +2 -1
  27. package/dist/esm/SignRequestScreen-CtK0tEJj.mjs +25 -0
  28. package/dist/esm/abstract-smart-wallets.mjs +1 -1
  29. package/dist/esm/index.mjs +6 -6
  30. package/dist/esm/{smart-wallets-BElFh8An.mjs → smart-wallets-1QLab7PO.mjs} +1 -1
  31. package/dist/esm/smart-wallets.mjs +1 -1
  32. package/dist/esm/solana.mjs +1 -1
  33. package/dist/esm/ui.mjs +1 -1
  34. package/dist/esm/use-export-wallet-CeffipUk.mjs +1 -0
  35. package/dist/esm/{useActiveWallet-BjD-txC9.mjs → useActiveWallet-CCF1h379.mjs} +1 -1
  36. package/dist/esm/{usePrivy-BJYprMT0.mjs → usePrivy-zBP5OUVF.mjs} +1 -1
  37. package/package.json +7 -6
  38. package/dist/esm/SignRequestScreen-Dkx-HBRI.mjs +0 -25
  39. package/dist/esm/use-export-wallet-OoiI5as_.mjs +0 -1
@@ -1 +0,0 @@
1
- import{cn as n,ci as e,cA as t,cB as a,cC as i,cD as r,aj as s,ak as o,cE as c,cF as l,av as d,cc as u,am as p,cG as m,cH as g,cI as f,cJ as h,cK as w,cL as y,cM as v,an as A,as as b,cN as I,cO as S,b5 as T,cP as O,cQ as k,cR as C,aH as E,F,bQ as _,bO as x,f as P,af as U,cS as W,cT as M,cU as B,ag as D,b2 as j,cV as L,cW as N,at as $,cX as R,cY as V,cZ as J,c_ as H,c$ as Q,d0 as q,bN as K}from"./SignRequestScreen-Dkx-HBRI.mjs";import{jsx as Y,jsxs as G,Fragment as Z}from"react/jsx-runtime";import z from"@heroicons/react/24/outline/CheckCircleIcon";import{useMemo as X,useCallback as nn,useState as en,useEffect as tn}from"react";import an,{formatTokenAmount as rn,rpc as sn,ConnectedStandardSolanaWallet as on,formatWalletAddress as cn}from"@privy-io/js-sdk-core";import{P as ln,h as dn}from"./paths-B891YjWw.mjs";import{u as un,a as pn}from"./internal-context-CfE_S5P-.mjs";import{u as mn,h as gn,a as fn,f as hn,g as wn,k as yn,l as vn}from"./privy-context-DDSW3jEM.mjs";import{u as An,g as bn,i as In}from"./usePrivy-BJYprMT0.mjs";import Sn from"eventemitter3";import{base58 as Tn}from"@scure/base";import{u as On}from"./use-sign-with-user-signer-DVcbjNtZ.mjs";import{styled as kn}from"styled-components";import{getTransactionDecoder as Cn,pipe as En,getCompiledTransactionMessageDecoder as Fn,decompileTransactionMessage as _n,setTransactionMessageLifetimeUsingBlockhash as xn,compileTransaction as Pn,getTransactionEncoder as Un,getBase58Decoder as Wn,getBase64Decoder as Mn,fetchAddressesForLookupTables as Bn,getBase58Encoder as Dn,address as jn,createTransactionMessage as Ln,setTransactionMessageFeePayerSigner as Nn,appendTransactionMessageInstruction as $n}from"@solana/kit";import{getTransferSolInstruction as Rn}from"@solana-program/system";import{findAssociatedTokenPda as Vn,getCreateAssociatedTokenIdempotentInstruction as Jn,getTransferInstruction as Hn}from"@solana-program/token";function Qn({rows:i}){/*#__PURE__*/return Y(n,{children:i.filter((n=>!!n)).map(((n,i)=>null!=n.value||n.isLoading?/*#__PURE__*/G(e,{children:[/*#__PURE__*/Y(t,{children:n.label}),/*#__PURE__*/Y(a,{$isLoading:n.isLoading,children:n.value})]},i):null))})}const qn=["solana:mainnet","solana:devnet","solana:testnet"];function Kn(n,e){if(!Object.prototype.hasOwnProperty.call(n,e))throw TypeError("attempted to use private field on non-instance");return n}var Yn=0,Gn="__private_"+Yn+++"__implementation";function Zn(n,e){if(!Object.prototype.hasOwnProperty.call(n,e))throw TypeError("attempted to use private field on non-instance");return n}var zn=0;function Xn(n){return"__private_"+zn+++"_"+n}var ne=/*#__PURE__*/Xn("_address"),ee=/*#__PURE__*/Xn("_publicKey"),te=/*#__PURE__*/Xn("_chains"),ae=/*#__PURE__*/Xn("_features"),ie=/*#__PURE__*/Xn("_label"),re=/*#__PURE__*/Xn("_icon");class se{get address(){return Zn(this,ne)[ne]}get publicKey(){return Zn(this,ee)[ee].slice()}get chains(){return Zn(this,te)[te].slice()}get features(){return Zn(this,ae)[ae].slice()}get label(){return Zn(this,ie)[ie]}get icon(){return Zn(this,re)[re]}constructor({address:n,publicKey:e,label:t,icon:a}){Object.defineProperty(this,ne,{writable:!0,value:void 0}),Object.defineProperty(this,ee,{writable:!0,value:void 0}),Object.defineProperty(this,te,{writable:!0,value:void 0}),Object.defineProperty(this,ae,{writable:!0,value:void 0}),Object.defineProperty(this,ie,{writable:!0,value:void 0}),Object.defineProperty(this,re,{writable:!0,value:void 0}),Zn(this,ne)[ne]=n,Zn(this,ee)[ee]=e,Zn(this,te)[te]=qn,Zn(this,ie)[ie]=t,Zn(this,re)[re]=a,Zn(this,ae)[ae]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===se&&Object.freeze(this)}}function oe(n,e){if(!Object.prototype.hasOwnProperty.call(n,e))throw TypeError("attempted to use private field on non-instance");return n}var ce=0;function le(n){return"__private_"+ce+++"_"+n}var de=/*#__PURE__*/le("_listeners"),ue=/*#__PURE__*/le("_version"),pe=/*#__PURE__*/le("_name"),me=/*#__PURE__*/le("_icon"),ge=/*#__PURE__*/le("_injection"),fe=/*#__PURE__*/le("_isPrivyWallet"),he=/*#__PURE__*/le("_accounts"),we=/*#__PURE__*/le("_on"),ye=/*#__PURE__*/le("_emit"),ve=/*#__PURE__*/le("_off"),Ae=/*#__PURE__*/le("_connected"),be=/*#__PURE__*/le("_connect"),Ie=/*#__PURE__*/le("_disconnect"),Se=/*#__PURE__*/le("_signMessage"),Te=/*#__PURE__*/le("_signAndSendTransaction"),Oe=/*#__PURE__*/le("_signTransaction");function ke(n,...e){oe(this,de)[de][n]?.forEach((n=>n.apply(null,e)))}function Ce(n,e){oe(this,de)[de][n]=oe(this,de)[de][n]?.filter((n=>e!==n))}const Ee=/*#__PURE__*/kn.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;}"],(n=>n.color??"var(--privy-color-accent)"),(n=>n.color??"var(--privy-color-accent)")),Fe=({instruction:s,fees:o,transactionInfo:c,solPrice:l,chain:d})=>/*#__PURE__*/G(n,{children:[c?.action&&/*#__PURE__*/G(e,{children:[/*#__PURE__*/Y(t,{children:"Action"}),/*#__PURE__*/Y(a,{children:c.action})]}),null!=s?.total&&/*#__PURE__*/G(e,{children:[/*#__PURE__*/Y(t,{children:"Total"}),/*#__PURE__*/Y(a,{children:s.total})]}),!s?.total&&null!=s?.amount&&/*#__PURE__*/G(e,{children:[/*#__PURE__*/Y(t,{children:"Total"}),/*#__PURE__*/Y(a,{children:/*#__PURE__*/Y(i,{quantities:[s.amount,o],tokenPrice:l})})]}),/*#__PURE__*/G(e,{children:[/*#__PURE__*/Y(t,{children:"Fees"}),/*#__PURE__*/Y(a,{children:/*#__PURE__*/Y(i,{quantities:[o],tokenPrice:l})})]}),s?.to&&/*#__PURE__*/G(e,{children:[/*#__PURE__*/Y(t,{children:"To"}),/*#__PURE__*/Y(a,{children:/*#__PURE__*/Y(r,{walletAddress:s.to,chainId:d,chainType:"solana"})})]})]}),_e=({fees:n,onClose:e,receiptHeader:t,receiptDescription:a,transactionInfo:i,solPrice:r,signOnly:p,instruction:m,chain:g})=>/*#__PURE__*/G(Z,{children:[/*#__PURE__*/Y(s,{onClose:e}),/*#__PURE__*/Y(o,{style:{marginBottom:"16px"},children:/*#__PURE__*/G("div",{children:[/*#__PURE__*/Y(Ee,{color:"var(--privy-color-success-light)"}),/*#__PURE__*/Y(z,{height:38,width:38,strokeWidth:2,stroke:"var(--privy-color-success)"})]})}),/*#__PURE__*/Y(c,{title:t??`Transaction ${p?"signed":"complete"}!`,description:a??"You're all set."}),/*#__PURE__*/Y(Fe,{solPrice:r,instruction:m,fees:n,transactionInfo:i,chain:g}),/*#__PURE__*/Y(l,{}),/*#__PURE__*/Y(xe,{loading:!1,onClick:e,children:"Close"}),/*#__PURE__*/Y(d,{}),/*#__PURE__*/Y(u,{})]});let xe=/*#__PURE__*/kn(p).withConfig({displayName:"SubmitButton",componentId:"sc-3cb7ee42-0"})(["&&{margin-top:24px;}transition:color 350ms ease,background-color 350ms ease;"]);function Pe(n){return new Uint8Array(Cn().decode(n).messageBytes)}async function Ue(n,e){try{return await n}catch{return e}}const We=(...n)=>{if("undefined"==typeof Buffer)throw new ln("Buffer is not defined.",void 0,dn.BUFFER_NOT_DEFINED);return Buffer.from(...n)};function Me(n){switch(n){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet"}}async function Be({privyClient:n,chain:e,mint:t}){let a=m[e];if(!a[t]){let i=await n.getSplTokenMetadata({mintAddress:t,cluster:Me(e)});i&&(a[t]={address:t,symbol:i.symbol,decimals:i.decimals})}return a[t]}async function De({solanaClient:n,tx:e}){let t=Mn().decode(Pe(e)),{value:a}=await n.rpc.getFeeForMessage(t).send();return a??0n}async function je({solanaClient:n,tx:e,replaceRecentBlockhash:t}){let{value:a}=await n.rpc.simulateTransaction(Mn().decode(e),{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 je({solanaClient:n,tx:e,replaceRecentBlockhash:!0}):{logs:a.logs??[],error:a.err,hasError:!!a.err,hasFunds:a.logs?.every((n=>!/insufficient funds/gi.test(n)&&!/insufficient lamports/gi.test(n)))??!0}}async function Le({tx:n,solanaClient:e,privyClient:t,checkFunds:a}){let i=Fn().decode(Pe(n)),r=i.staticAccounts[0]??"",s=await De({solanaClient:e,tx:n}),o=a?await Ue(je({solanaClient:e,tx:n})):void 0,c=o?.hasFunds??!0,l={},d=[],u=await async function({solanaClient:n,message:e}){if(!("addressTableLookups"in e)||!e.addressTableLookups)return[...e.staticAccounts];let t=e.addressTableLookups.map((n=>n.lookupTableAddress)),a=await Bn(t,n.rpc),i=t.map(((n,t)=>[...e.addressTableLookups[t]?.writableIndexes.map((e=>{let i=a[n]?.[e];if(i)return{key:i,isWritable:!0,altIdx:t}}))??[],...e.addressTableLookups[t]?.readonlyIndexes.map((e=>{let i=a[n]?.[e];if(i)return{key:i,isWritable:!1,altIdx:t}}))??[]])).flat().filter((n=>!!n)).sort(((n,e)=>n.isWritable!==e.isWritable?n.isWritable?-1:1:n.altIdx-e.altIdx)).map((({key:n})=>n));return[...e.staticAccounts,...i]}({solanaClient:e,message:i});for(let n of i.instructions){let a=i.staticAccounts[n.programAddressIndex]||"";if(a!==g&&a!==f)if(a!==h){if(a===w){let e=await Ue(function(n,e,t){let[a,i,r,s]=n.accountIndices?.map((n=>e[n]))??[];return{type:"ata-creation",program:t,payer:a,ata:i,owner:r,mint:s}}(n,u,a));if(!e){d.push({type:"unknown",program:a,discriminator:n.data?.[0]});continue}if(d.push(e),e.ata&&e.owner&&e.mint){l[e.ata]={owner:e.owner,mint:e.mint};continue}}if(y.includes(a)){let i=await Ue(Ve(n,u,e,t,a));if(!i){d.push({type:"unknown",program:a,discriminator:n.data?.[0]});continue}d.push(i)}else if(v.includes(a)){let i=await Ue(Je(n,u,e,t,a));if(!i){d.push({type:"unknown",program:a,discriminator:n.data?.[0]});continue}d.push(i)}else d.push({type:"unknown",program:a,discriminator:n.data?.[0]})}else{let e=await Ue(Re(n,u));if(!e){d.push({type:"unknown",program:a,discriminator:n.data?.[0]});continue}d.push(e)}else{let i=await Ue($e(n,u,e,t,l,a));if(!i){d.push({type:"unknown",program:a,discriminator:n.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 Ne(n,e=0){try{return function(n,e=0){let t=0n;for(let a=0;a<8;a++)t|=BigInt(n[e+a])<<BigInt(8*a);return t}(n,e)}catch{}try{return n.readBigInt64LE(e)}catch{}let t=We(n);try{return((n,e=0)=>{let t=n[e],a=n[e+7];if(!t||!a)throw Error(`Buffer offset out of range: first: ${t}, last: ${a}.`);return(BigInt(n[e+4]+256*n[e+5]+65536*n[e+6]+(a<<24))<<32n)+BigInt(t+256*n[++e]+65536*n[++e]+16777216*n[++e])})(t)}catch{}try{return t.subarray(e).readBigInt64LE()}catch{}try{return t.readBigInt64LE(e)}catch{}return 0n}async function $e(n,e,t,a,i,r){let s=n.data?.[0],o=n.accountIndices?.map((n=>e[n]))??[];if(1===s){let[n,e,t]=o;return{type:"spl-init-account",program:r,account:n,mint:e,owner:t}}if(3===s){let e,s,[c,l,d]=o,u="",p=l?i[l]:void 0;if(p)e=p.owner,u=p.mint;else if(l){let n=await t.rpc.getAccountInfo(l,{commitment:"confirmed",encoding:"jsonParsed"}).send(),a=n.value?.data;e=a?.parsed?.info?.owner,u=a?.parsed?.info?.mint??"",s=a?.parsed?.info?.tokenAmount?.decimals}if(!u&&c){let n=await t.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send(),e=n.value?.data;u=e?.parsed?.info?.mint??""}let m=await Be({privyClient:a,chain:t.chain,mint:u}),g=m?.symbol??"";return s??=m?.decimals??9,{type:"spl-transfer",program:r,fromAta:c,fromAccount:d,toAta:l,toAccount:e,value:Ne(n.data,1),token:{symbol:g,decimals:s,address:u}}}if(9===s){let[n,e,t]=o;return{type:"spl-close-account",program:r,source:n,destination:e,owner:t}}if(17===s)return{type:"spl-sync-native",program:r};throw Error(`Token program instruction type ${s} not supported`)}async function Re(n,e){let t=n.data?.[0],a=n.accountIndices?.map((n=>e[n]))??[];if(0===t){let[,e]=a;return{type:"create-account",program:h,account:e?.toString(),value:Ne(n.data,4),withSeed:!1}}if(2===t){let[e,t]=a;return{type:"sol-transfer",program:h,fromAccount:e,toAccount:t,token:{symbol:"SOL",decimals:9},value:Ne(n.data,4),withSeed:!1}}if(3===t){let[,e]=a;return{type:"create-account",program:h,account:e,withSeed:!0,value:Ne(n.data.slice(n.data.length-32-8-8))}}if(11===t){let[e,t]=a;return{type:"sol-transfer",program:h,fromAccount:e,toAccount:t,value:Ne(n.data,4),token:{symbol:"SOL",decimals:9},withSeed:!0}}throw Error(`System program instruction type ${t} not supported`)}async function Ve(n,e,t,a,i){let r=n.accountIndices?.map((n=>e[n]))??[],s=n.data?.[0];if(143===s){let e=r[10],s=r[11];return{type:"raydium-swap-base-input",program:i,mintIn:e,mintOut:s,tokenIn:e?await Be({privyClient:a,chain:t.chain,mint:e}):void 0,tokenOut:s?await Be({privyClient:a,chain:t.chain,mint:s}):void 0,amountIn:Ne(n.data,8),minimumAmountOut:Ne(n.data,16)}}if(55===s){let e=r[10],s=r[11];return{type:"raydium-swap-base-output",program:i,mintIn:e,mintOut:s,tokenIn:e?await Be({privyClient:a,chain:t.chain,mint:e}):void 0,tokenOut:s?await Be({privyClient:a,chain:t.chain,mint:s}):void 0,maxAmountIn:Ne(n.data,8),amountOut:Ne(n.data,16)}}throw Error(`Raydium swap program instruction type ${s} not supported`)}async function Je(n,e,t,a,i){let r=n.data?.[0],s=n.accountIndices?.map((n=>e[n]))??[];if([208,51,239,151,123,43,237,92].includes(r)){let e=s[5],r=s[6];return{type:"jupiter-swap-exact-out-route",program:i,mintIn:e,mintOut:r,tokenIn:e?await Be({privyClient:a,chain:t.chain,mint:e}):void 0,tokenOut:r?await Be({privyClient:a,chain:t.chain,mint:r}):void 0,outAmount:Ne(n.data,n.data.length-1-2-8-8),quotedInAmount:Ne(n.data,n.data.length-1-2-8)}}if([176,209,105,168,154,125,69,62].includes(r)){let e=s[7],r=s[8];return{type:"jupiter-swap-exact-out-route",program:i,mintIn:e,mintOut:r,tokenIn:e?await Be({privyClient:a,chain:t.chain,mint:e}):void 0,tokenOut:r?await Be({privyClient:a,chain:t.chain,mint:r}):void 0,outAmount:Ne(n.data,n.data.length-1-2-8-8),quotedInAmount:Ne(n.data,n.data.length-1-2-8)}}if([193,32,155,51,65,214,156,129].includes(r)){let e=s[7],r=s[8];return{type:"jupiter-swap-shared-accounts-route",program:i,mintIn:e,mintOut:r,tokenIn:e?await Be({privyClient:a,chain:t.chain,mint:e}):void 0,tokenOut:r?await Be({privyClient:a,chain:t.chain,mint:r}):void 0,inAmount:Ne(n.data,n.data.length-1-2-8-8),quotedOutAmount:Ne(n.data,n.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 He({rpcSubscriptions:n,signature:e,timeout:t}){let a=new AbortController,i=await n.signatureNotifications(e,{commitment:"confirmed"}).subscribe({abortSignal:a.signal}),r=await Promise.race([new Promise((n=>{setTimeout((()=>{a.abort(),n(Error("Transaction confirmation timed out"))}),t)})),new Promise((async n=>{for await(let e of i){if(a.abort(),e.value.err)return n(Error("Transaction confirmation failed"));n(void 0)}}))]);if(r instanceof Error)throw r}function Qe({rpc:n,rpcSubscriptions:e,chain:t,blockExplorerUrl:a}){let i=function({rpc:n,rpcSubscriptions:e}){return async t=>new Promise((async(a,i)=>{try{let i=await n.sendTransaction(We(t).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await He({rpcSubscriptions:e,signature:i,timeout:1e4}),a({signature:new Uint8Array(Dn().encode(i))})}catch(n){i(n)}}))}({rpc:n,rpcSubscriptions:e});return{rpc:n,rpcSubscriptions:e,chain:t,blockExplorerUrl:a,sendAndConfirmTransaction:i}}function qe(){let n=A(),e=X((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((e=>[e,n.solanaRpcs[e]?Qe({chain:e,rpc:n.solanaRpcs[e].rpc,rpcSubscriptions:n.solanaRpcs[e].rpcSubscriptions,blockExplorerUrl:n.solanaRpcs[e].blockExplorerUrl??`https://explorer.solana.com?cluster=${e.replace("solana:","")}`}):null])))),[n.solanaRpcs]);return nn((n=>{if(!e[n])throw Error(`No RPC configuration found for chain ${n}`);return e[n]}),[e])}const Ke={component:()=>{let{data:n,onUserCloseViaDialogOrKeybindRef:e,setModalData:t,navigate:a}=b(),{client:i,closePrivyModal:r,walletProxy:s,showFiatPrices:o}=un(),c=A(),{user:l}=mn(),d=qe()(n?.standardSignAndSendTransaction?.chain??"solana:mainnet"),[u,p]=en(n?.standardSignAndSendTransaction?.transaction),[m,g]=en(),[f,h]=en(),[w,y]=en({value:0n,isLoading:!1}),[v,F]=en(!1),[_,x]=en({}),[P,U]=en(),W=n?.standardSignAndSendTransaction?.account,M=!!n?.standardSignAndSendTransaction?.signOnly,B=W?.imported?gn(l).find((n=>n.address===W.address)):fn(l),{solPrice:D,isSolPriceLoading:j}=I({enabled:o}),L=X((()=>{if(!m)return;let n=m.spender,e=S(m.fee),t=S(w.value,3,!0),a=m.instructions.filter((n=>["sol-transfer","spl-transfer","raydium-swap-base-input","raydium-swap-base-output","jupiter-swap-shared-accounts-route","jupiter-swap-exact-out-route"].includes(n.type))),i=a.at(0);if(!i||a.length>1)return{fee:e,spender:n,balance:t};if("sol-transfer"===i.type)return{fee:e,spender:n,balance:t,total:S(i.value)};if("spl-transfer"===i.type)return{fee:e,spender:n,balance:t,total:`${rn({amount:i.value,decimals:i.token.decimals})} ${i.token.symbol}`};if("raydium-swap-base-input"===i.type&&i.tokenIn&&i.tokenOut){return{fee:e,spender:n,balance:t,swap:`${`${rn({amount:i.amountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${rn({amount:i.minimumAmountOut,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("raydium-swap-base-output"===i.type&&i.tokenIn&&i.tokenOut){return{fee:e,spender:n,balance:t,swap:`${`${rn({amount:i.maxAmountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${rn({amount:i.amountOut,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("jupiter-swap-shared-accounts-route"===i.type&&i.tokenIn&&i.tokenOut){return{fee:e,spender:n,balance:t,swap:`${`${rn({amount:i.inAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${rn({amount:i.quotedOutAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("jupiter-swap-exact-out-route"===i.type&&i.tokenIn&&i.tokenOut){return{fee:e,spender:n,balance:t,swap:`${`${rn({amount:i.quotedInAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${rn({amount:i.outAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}return{fee:e,spender:n,balance:t}}),[m,W?.address,w]),N=X((()=>{let n;if(!m||!o||!D||j)return;function e(...n){return C(n.reduce(((n,e)=>n+e),0n),D??0)}W?.address===m.spender&&(n=e(m.fee));let t=e(w.value),a=m.instructions.filter((n=>"sol-transfer"===n.type||"spl-transfer"===n.type)).at(0);return!a||m.instructions.length>1?{fee:n,balance:t}:"sol-transfer"===a.type?{fee:n,balance:t,total:e(a.value,W?.address===m.spender?m.fee:0n)}:"spl-transfer"===a.type?{fee:n,balance:t,total:`${rn({amount:a.value,decimals:a.token.decimals})} ${a.token.symbol}`}:{fee:n,balance:t}}),[m,o,D,j,W?.address,w]);if(tn((()=>{!async function(){if(u&&i)try{h(void 0);let n=await Le({tx:u,solanaClient:d,privyClient:i,checkFunds:!M});g(n)}catch(n){console.error("Failed to prepare transaction",n),h(n)}}()}),[u,d,i,M]),tn((()=>{(async function(){if(!W)return;y({value:w.value,isLoading:!0});let{value:n}=await d.rpc.getBalance(W.address,{commitment:"confirmed"}).send();y({value:n??0n,isLoading:!1})})().catch(console.error)}),[m]),!u||!n?.standardSignAndSendTransaction||!W){let e=Error("Invalid transaction request");/*#__PURE__*/return Y(T,{error:e,allowlistConfig:c.allowlistConfig,onRetry:()=>{n?.standardSignAndSendTransaction?.onFailure(e),r({shouldCallAuthOnSuccess:!1})}})}let $=()=>{if(!v)return _.signature||_.signedTransaction?n?.standardSignAndSendTransaction?.onSuccess({signature:_.signature,signedTransaction:_.signedTransaction}):n?.standardSignAndSendTransaction?.onFailure(P??f??Error("User exited the modal before submitting the transaction")),r({shouldCallAuthOnSuccess:!1})};e.current=$;let R=n.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.contractInfo?.imgUrl?/*#__PURE__*/Y("img",{src:n.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgUrl,alt:n.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgAltText}):null,V=!!(n.funding&&n.funding.supportedOptions.length>0),J=!m?.hasFunds&&V;if(_.signature||_.signedTransaction){let e=m?.instructions.filter((n=>"sol-transfer"===n.type||"spl-transfer"===n.type)),t=1===e?.length?e?.at(0):void 0;/*#__PURE__*/return Y(_e,{fees:_.fees??0n,onClose:$,transactionInfo:n.standardSignAndSendTransaction?.uiOptions.transactionInfo,solPrice:D,receiptHeader:n.standardSignAndSendTransaction?.uiOptions.successHeader,receiptDescription:n.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__*/Y(O,{transactionError:P,chainId:d.chain,onClose:$,chainType:"solana",onRetry:async()=>{U(void 0);let{value:n}=await d.rpc.getLatestBlockhash().send();p(function(n,e){return En(Fn().decode(Pe(n)),(n=>_n(n)),(n=>xn(e,n)),(n=>Pn(n)),(n=>new Uint8Array(Un().encode(n))))}(u,n))}}):/*#__PURE__*/Y(k,{img:R,title:n.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.title||"Confirm transaction",subtitle:n.standardSignAndSendTransaction?.uiOptions?.description||`${c.name} wants your permission to approve the following transaction.`,cta:J?"Add funds":n.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||w.isLoading,isTokenPriceLoading:o&&j,isMissingFunds:!m?.hasFunds,submitError:P??void 0,isSponsored:!!n.standardSignAndSendTransaction?.isSponsored,parseError:f,onClick:J?async()=>{if(W){if(!V)throw Error("Funding wallet is not enabled");t({...n,funding:{...n.funding,methodScreen:E},solanaFundingData:n?.solanaFundingData}),a(E)}}:async()=>{try{if(F(!0),v||!W||!s||!l||!B)return;let e=await n.standardSignAndSendTransaction.onConfirm(u);if("signature"in e){let n=await async function({solanaClient:n,signature:e}){let t=Wn().decode(e),a=await n.rpc.getTransaction(t,{maxSupportedTransactionVersion:0,commitment:"confirmed",encoding:"base64"}).send().catch((()=>null));return a?{fee:a.meta?.fee??0n}:null}({solanaClient:d,signature:e.signature});return void x({...e,fees:n?.fee})}x(e)}catch(n){console.warn({transaction:u,error:n}),U(n)}finally{F(!1)}},onClose:$})}};function Ye(n,e,t){let a=structuredClone(Cn().decode(n)),i=jn(e);return i in a.signatures&&(a.signatures[i]=t),new Uint8Array(Un().encode(a))}function Ge(){let{isHeadlessSigning:n,walletProxy:e,initializeWalletProxy:t,recoverEmbeddedWallet:a,openModal:i,privy:r,client:s}=un(),{user:o}=An(),{setModalData:c}=b(),{signWithUserSigner:l}=On();return{signMessage:({message:d,address:u,options:p})=>new Promise((async(m,g)=>{let f=hn(o,u);if("privy"!==f?.walletClientType)return void g(new ln("Wallet is not a Privy wallet",void 0,dn.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:h,entropyIdVerifier:w}=F(o,f),y=wn(f),v=We(d).toString("base64");if(v.length<1)return void g(new ln("Message must be a non-empty string",void 0,dn.INVALID_MESSAGE));let A=async()=>{let n;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=e??await t(15e3);if(!c)throw Error("Failed to initialize embedded wallet proxy.");if(!await a({address:f.address}))throw Error("Unable to connect to wallet");if(y){let e=await sn(r,l,{chain_type:"solana",method:"signMessage",params:{message:v,encoding:"base64"},wallet_id:f.id});if(!e.data||!("signature"in e.data))throw Error("Failed to sign message");n=e.data.signature}else{let{response:e}=await c.rpc({accessToken:i,entropyId:h,entropyIdVerifier:w,chainType:"solana",hdWalletIndex:f.walletIndex??0,requesterAppId:p?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:v}}});n=e.data.signature}return n};if(n({showWalletUIs:p?.uiOptions?.showWalletUIs}))try{let n=await A(),e=new Uint8Array(We(n,"base64"));m({signature:e})}catch(n){g(n)}else c({signMessage:{method:"solana_signMessage",data:v,confirmAndSign:A,onSuccess:n=>{m({signature:new Uint8Array(We(n,"base64"))})},onFailure:n=>{g(n)},uiOptions:p?.uiOptions??{}},connectWallet:{recoveryMethod:f.recoveryMethod,connectingWalletAddress:f.address,entropyId:h,entropyIdVerifier:w,isUnifiedWallet:y,onCompleteNavigateTo:_,onFailure:n=>{g(new ln("Failed to connect to wallet",n,dn.UNKNOWN_CONNECT_WALLET_ERROR))}}}),i(x)}))}}function Ze(){let{isHeadlessSigning:n,openModal:e}=un(),{setModalData:t}=b(),{signMessage:a}=Ge(),{user:i}=An();return{signTransaction:async({transaction:r,options:s,chain:o="solana:mainnet",address:c})=>{async function l(n){let{signature:e}=await a({message:Pe(n),address:c,options:{...s,uiOptions:{...s?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:Ye(n,c,e)}}return n({showWalletUIs:s?.uiOptions?.showWalletUIs})?l(r):new Promise((async(n,a)=>{let d=hn(i,c);if("privy"!==d?.walletClientType)return void a(new ln("Wallet is not a Privy wallet",void 0,dn.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:u,entropyIdVerifier:p}=F(i,d),m=wn(d);function g(n){return e=>{a(e instanceof ln?e:new ln("Failed to connect to wallet",e,n))}}let f={account:d,transaction:r,chain:o,signOnly:!0,uiOptions:s?.uiOptions||{},onConfirm:l,onSuccess:n,onFailure:g(dn.TRANSACTION_FAILURE)};t({connectWallet:{recoveryMethod:d.recoveryMethod,connectingWalletAddress:d.address,entropyId:u,entropyIdVerifier:p,isUnifiedWallet:m,onCompleteNavigateTo:Ke,onFailure:g(dn.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:f}),e(x)}))}}}let ze=new class extends Sn{setImplementation(n){Kn(this,Gn)[Gn]=n}async signMessage(n){return Kn(this,Gn)[Gn].signMessage(n)}async signAndSendTransaction(n){return Kn(this,Gn)[Gn].signAndSendTransaction(n)}async signTransaction(n){return Kn(this,Gn)[Gn].signTransaction(n)}constructor(n){super(),Object.defineProperty(this,Gn,{writable:!0,value:void 0}),Kn(this,Gn)[Gn]=n}}({signTransaction:pn("signTransaction was not injected"),signAndSendTransaction:pn("signAndSendTransaction was not injected"),signMessage:pn("signMessage was not injected")}),Xe=new class{get version(){return oe(this,ue)[ue]}get name(){return oe(this,pe)[pe]}get icon(){return oe(this,me)[me]}get chains(){return qn.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:oe(this,be)[be]},"standard:disconnect":{version:"1.0.0",disconnect:oe(this,Ie)[Ie]},"standard:events":{version:"1.0.0",on:oe(this,we)[we]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:oe(this,Te)[Te]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:oe(this,Oe)[Oe]},"solana:signMessage":{version:"1.0.0",signMessage:oe(this,Se)[Se]},"privy:":{privy:{signMessage:oe(this,ge)[ge].signMessage,signTransaction:oe(this,ge)[ge].signTransaction,signAndSendTransaction:oe(this,ge)[ge].signAndSendTransaction}}}}get accounts(){return oe(this,he)[he].slice()}get isPrivyWallet(){return oe(this,fe)[fe]}constructor({name:n,icon:e,version:t,injection:a,wallets:i}){Object.defineProperty(this,ye,{value:ke}),Object.defineProperty(this,ve,{value:Ce}),Object.defineProperty(this,de,{writable:!0,value:void 0}),Object.defineProperty(this,ue,{writable:!0,value:void 0}),Object.defineProperty(this,pe,{writable:!0,value:void 0}),Object.defineProperty(this,me,{writable:!0,value:void 0}),Object.defineProperty(this,ge,{writable:!0,value:void 0}),Object.defineProperty(this,fe,{writable:!0,value:void 0}),Object.defineProperty(this,he,{writable:!0,value:void 0}),Object.defineProperty(this,we,{writable:!0,value:void 0}),Object.defineProperty(this,Ae,{writable:!0,value:void 0}),Object.defineProperty(this,be,{writable:!0,value:void 0}),Object.defineProperty(this,Ie,{writable:!0,value:void 0}),Object.defineProperty(this,Se,{writable:!0,value:void 0}),Object.defineProperty(this,Te,{writable:!0,value:void 0}),Object.defineProperty(this,Oe,{writable:!0,value:void 0}),oe(this,de)[de]={},oe(this,we)[we]=(n,e)=>(oe(this,de)[de][n]?.push(e)||(oe(this,de)[de][n]=[e]),()=>oe(this,ve)[ve](n,e)),oe(this,Ae)[Ae]=n=>{null!=n&&(oe(this,he)[he]=n.map((({address:n})=>new se({address:n,publicKey:Tn.decode(n)})))),oe(this,ye)[ye]("change",{accounts:this.accounts})},oe(this,be)[be]=async()=>(oe(this,ye)[ye]("change",{accounts:this.accounts}),{accounts:this.accounts}),oe(this,Ie)[Ie]=async()=>{oe(this,ye)[ye]("change",{accounts:this.accounts})},oe(this,Se)[Se]=async(...n)=>{let e=[];for(let{account:t,...a}of n){let{signature:n}=await oe(this,ge)[ge].signMessage({...a,address:t.address});e.push({signedMessage:a.message,signature:n})}return e},oe(this,Te)[Te]=async(...n)=>{let e=[];for(let t of n){let{signature:n}=await oe(this,ge)[ge].signAndSendTransaction({...t,transaction:t.transaction,address:t.account.address,chain:t.chain||"solana:mainnet",options:t.options});e.push({signature:n})}return e},oe(this,Oe)[Oe]=async(...n)=>{let e=[];for(let{transaction:t,account:a,options:i,chain:r}of n){let{signedTransaction:n}=await oe(this,ge)[ge].signTransaction({transaction:t,address:a.address,chain:r||"solana:mainnet",options:i});e.push({signedTransaction:n})}return e},oe(this,pe)[pe]=n,oe(this,me)[me]=e,oe(this,ue)[ue]=t,oe(this,ge)[ge]=a,oe(this,he)[he]=[],oe(this,fe)[fe]=!0,a.on("accountChanged",oe(this,Ae)[Ae],this),oe(this,Ae)[Ae](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:ze});function nt(){let{ready:n}=U(),{user:e}=An(),{signMessage:t}=Ge(),{signTransaction:a}=Ze(),{signAndSendTransaction:i}=function(){let n=A(),{isHeadlessSigning:e,openModal:t}=un(),{setModalData:a}=b(),{signTransaction:i}=Ze(),r=qe(),{user:s}=An(),{signWithUserSigner:o}=On();return{signAndSendTransaction:async({transaction:c,address:l,chain:d="solana:mainnet",options:u})=>{async function p(n){if(u?.sponsor)return await f(n);let{signedTransaction:e}=await i({transaction:n,address:l,chain:d,options:{...u,uiOptions:{...u?.uiOptions,showWalletUIs:!1}}}),{signature:t}=await r(d).sendAndConfirmTransaction(e);return{signature:t}}if(e({showWalletUIs:u?.uiOptions?.showWalletUIs}))return p(c);let m=hn(s,l);if("privy"!==m?.walletClientType)throw new ln("Wallet is not a Privy wallet",void 0,dn.EMBEDDED_WALLET_NOT_FOUND);let g=wn(m),f=async e=>{if(!g)throw new ln("Sponsoring transactions is only supported for wallets on the TEE stack",dn.INVALID_DATA);let t=new an({appId:n.id,clientId:n.appClientId,storage:P}),a=await sn(t,o,{chain_type:"solana",method:"signAndSendTransaction",sponsor:!0,params:{transaction:Buffer.from(e).toString("base64"),encoding:"base64"},caip2:`solana:${(await r(d).rpc.getGenesisHash().send()).substring(0,32)}`,wallet_id:m.id});if(a.data&&"hash"in a.data)return{signature:Tn.decode(a.data.hash)};throw Error("Failed to sign and send transaction")};return new Promise((async(e,i)=>{let r,o,{entropyId:f,entropyIdVerifier:h}=F(s,m);function w(n){return e=>{i(e instanceof ln?e:new ln("Failed to connect to wallet",e,n))}}let y={account:m,transaction:c,chain:d,signOnly:!1,uiOptions:u?.uiOptions||{},onConfirm:p,onSuccess:e,onFailure:w(dn.TRANSACTION_FAILURE),isSponsored:!!u?.sponsor},v={recoveryMethod:m.recoveryMethod,connectingWalletAddress:m.address,entropyId:f,entropyIdVerifier:h,isUnifiedWallet:g,onCompleteNavigateTo:Ke,onFailure:w(dn.UNKNOWN_CONNECT_WALLET_ERROR)};n.fundingConfig&&(r=bn({address:l,appConfig:n,methodScreen:E,fundWalletConfig:{...u,asset:"native-currency",chain:d},externalSolanaFundingScreen:ct}),o={amount:n.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:d,destinationAddress:l,afterSuccessScreen:Ke,sourceWalletData:void 0}),a({connectWallet:v,standardSignAndSendTransaction:y,funding:r,solanaFundingData:o}),t(x)}))}}}(),r=X((()=>{let n=[...yn(e).sort(((n,e)=>(n.walletIndex??0)-(e.walletIndex??0)))],t=gn(e);return t.length?[...n,...t]:n}),[e]),s=X((()=>({signMessage:async({message:n,address:e,options:a})=>await t({message:n,address:e,options:a}),signTransaction:async({transaction:n,address:e,chain:t,options:i})=>await a({transaction:n,address:e,chain:t,options:i}),async signAndSendTransaction({transaction:n,address:e,chain:t,options:a}){let{signature:r}=await i({transaction:n,address:e,chain:t,options:a});return{signature:r}}})),[t,a,i]);return tn((()=>{ze?.setImplementation(s)}),[s]),tn((()=>{var e;!n||(e=Xe.accounts).length===r.length&&e.every(((n,e)=>n.address===r[e]?.address))||ze?.emit("accountChanged",r)}),[n,r]),{ready:n,wallet:Xe}}function et(){let{client:n}=un(),{ready:e,wallet:t}=nt(),[a,i]=en([]),[r,s]=en([]);return tn((()=>{let n=[t,...a.filter((n=>"solana"===n.chainType&&!!n.wallet.features)).map((n=>n.wallet))];s(n);let e=n.map((e=>e.features["standard:events"]?.on("change",(()=>{s([...n])}))));return()=>{e.forEach((n=>n?.()))}}),[a]),tn((()=>{if(!e)return;i(n.connectors?.walletConnectors.filter((n=>"solana"===n.chainType))??[]);let t=()=>{i(n.connectors?.walletConnectors.filter((n=>"solana"===n.chainType))??[])};return n.connectors?.on("connectorInitialized",t),()=>{n.connectors?.off("connectorInitialized",t)}}),[e,n.connectors]),{ready:e,wallets:r}}function tt(){let{ready:n,wallets:e}=et();return{ready:n,wallets:X((()=>e.flatMap((n=>n.accounts.map((e=>new on({wallet:n,account:e})))))),[e])}}function at(n){return Wn().decode(n)}function it(n){return BigInt(Math.floor(1e9*parseFloat(n)))}function rt(n){return+st.format(parseFloat(n.toString())/1e9)}let st=Intl.NumberFormat(void 0,{maximumFractionDigits:8});async function ot({tx:n,solanaClient:e,amount:t,asset:a,tokenPrice:i}){if(!n)return null;if("SOL"===a&&i){let a=it(t),r=C(a,i),s=await De({solanaClient:e,tx:n});return{amountInUsd:r,feeInUsd:i?C(s,i):void 0,totalInUsd:C(a+s,i)}}if("USDC"===a&&i){let a="$"+t,r=await De({solanaClient:e,tx:n}),s=function(n,e){let t=parseFloat(n.toString())/M*e;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=it(t),i=await De({solanaClient:e,tx:n});return{amountInSol:t+" SOL",feeInSol:rt(i)+" SOL",totalInSol:rt(a+i)+" SOL"}}return{amountInUsdc:t+" USDC",feeInSol:rt(await De({solanaClient:e,tx:n}))+" SOL"}}const ct={component:function(){let n=A(),{closePrivyModal:e,createAnalyticsEvent:t}=un(),{data:a,setModalData:i,navigate:r}=b(),{wallets:s}=tt(),[o,l]=en("preparing"),[m,f]=en(),[h,w]=en(),[y,v]=en();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:S,chain:T,sourceWalletData:O,destinationAddress:k,afterSuccessScreen:E}=a.solanaFundingData,F=s.find((n=>n.address===O.address&&B(O.walletClientType)===B(n.standardWallet.name))),_=qe()(T),{tokenPrice:x,isTokenPriceLoading:P}=D("solana");return tn((()=>{if("preparing"!==o||P||!F)return;let n="SOL"===S?it(I):function(n){return BigInt(Math.floor(1e6*parseFloat(n)))}(I);w({amount:("SOL"===S&&x?C(n,x):I)??I}),("SOL"===S?async function({solanaClient:n,source:e,destination:t,amountInLamports:a}){let{value:i}=await n.rpc.getLatestBlockhash().send(),r={address:e},s=En(Ln({version:0}),(n=>Nn(r,n)),(n=>xn(i,n)),(n=>$n(Rn({amount:a,source:r,destination:t}),n)),(n=>Pn(n)));return new Uint8Array(Un().encode(s))}({solanaClient:_,source:F.address,destination:k,amountInLamports:n}):async function({solanaClient:n,source:e,destination:t,amountInBaseUnits:a}){let i=W(n.chain),{value:r}=await n.rpc.getLatestBlockhash().send(),s={address:e},[o]=await Vn({mint:i,owner:e,tokenProgram:g}),[c]=await Vn({mint:i,owner:t,tokenProgram:g}),[l,d]=await Promise.all([n.rpc.getAccountInfo(o,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null)),n.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null))]);if(!l?.value)throw Error(`Source token account does not exist for address: ${e}`);let u=Jn({payer:s,ata:c,owner:t,mint:i}),p=En(Ln({version:0}),(n=>Nn(s,n)),(n=>xn(r,n)),(n=>d?.value?n:$n(u,n)),(n=>$n(Hn({source:o,destination:c,authority:s,amount:a}),n)),(n=>Pn(n)));return new Uint8Array(Un().encode(p))}({solanaClient:_,source:F.address,destination:k,amountInBaseUnits:n})).then(f).catch((n=>{l("error"),v(n)}))}),[o,I,S,T,F,k,P,x]),tn((()=>{"preparing"===o&&m&&ot({tx:m,solanaClient:_,amount:I,asset:S,tokenPrice:x}).then((n=>{l("loaded"),w({amount:n?.amountInUsd??n?.amountInUsdc??n?.amountInSol??I,fee:n?.feeInUsd??n?.feeInSol,total:n?.totalInUsd??n?.totalInSol})})).catch((n=>{l("error"),v(n)}))}),[m,I,S,o,x]),tn((()=>{"error"===o&&y&&(i({errorModalData:{error:y,previousScreen:ct},solanaFundingData:a.solanaFundingData}),r(j,!1))}),[o,r]),tn((()=>{if("success"!==o)return;let n=setTimeout(E?()=>r(E):e,L);return()=>clearTimeout(n)}),[o]),/*#__PURE__*/G(Z,"success"===o?{children:[/*#__PURE__*/Y(N,{}),/*#__PURE__*/Y($,{}),/*#__PURE__*/G(R,{children:[/*#__PURE__*/Y(z,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/Y(c,{title:"Success!",description:`You’ve successfully added ${I} ${S} to your ${n.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/Y(d,{}),/*#__PURE__*/Y(u,{})]}:"preparing"===o||"loaded"===o||"sending"===o?{children:[/*#__PURE__*/Y(N,{}),/*#__PURE__*/Y(V,{style:{marginTop:"16px"},children:/*#__PURE__*/Y(J,{icon:F?.standardWallet.icon,name:F?.standardWallet.name})}),/*#__PURE__*/Y(c,{style:{marginTop:"8px",marginBottom:"12px"},title:"sending"===o&&F?`Confirming with ${F.standardWallet.name}`:"Confirm transaction"}),/*#__PURE__*/Y(Qn,{rows:[{label:"Source",value:cn(O.address)},{label:"Destination",value:cn(k)},{label:"Network",value:H(T)},{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__*/Y(p,{style:{marginTop:"1rem"},loading:"preparing"===o||"sending"===o,onClick:function(){"loaded"===o&&m&&F&&(l("sending"),async function({transaction:n,chain:e,sourceWallet:t,solanaClient:a}){let{hasFunds:i}=await je({solanaClient:a,tx:n});if(!i)throw new ln(`Wallet ${cn(t.address)} does not have enough funds.`,void 0,dn.INSUFFICIENT_BALANCE);let r=at((await t.signAndSendTransaction({transaction:n,chain:e}).catch((n=>{throw new ln("Transaction was rejected by the user",n,dn.TRANSACTION_FAILURE)}))).signature);return await He({rpcSubscriptions:a.rpcSubscriptions,signature:r,timeout:2e4}),r}({solanaClient:_,transaction:m,chain:T,sourceWallet:F}).then((n=>{l("success"),t({eventName:Q,payload:{provider:"external",status:"success",txHash:n,address:F.address,value:I,chainType:"solana",clusterName:T,token:S,destinationAddress:k,destinationValue:I,destinationChainType:"solana",destinationClusterName:T,destinationToken:S}})})).catch((n=>{l("error"),v(n)})))},children:"Confirm"}),/*#__PURE__*/Y(u,{})]}:{children:[/*#__PURE__*/Y(N,{}),/*#__PURE__*/Y(q,{}),/*#__PURE__*/Y("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/Y(u,{})]})}};function lt(){let n=A(),{openModal:e}=un(),{setModalData:t}=b();return{fundWallet:async({address:a,options:i})=>{let r=i?.amount||n.fundingConfig?.defaultRecommendedAmount||"1",s=i?.asset||n.fundingConfig?.defaultRecommendedCurrency.asset||"native-currency",o=i?.chain||"solana:mainnet";t({funding:bn({address:a,appConfig:n,methodScreen:E,fundWalletConfig:{...i,amount:r,asset:s,chain:o},externalSolanaFundingScreen:ct}),solanaFundingData:{amount:r,asset:"native-currency"===s?"SOL":"USDC",chain:o,destinationAddress:a,sourceWalletData:void 0}}),e(E)}}}function dt(){let{user:n,getAccessToken:e}=mn(),{walletProxy:t,openModal:a,client:i}=un(),{setModalData:r}=b(),s=A();return X((()=>({exportWallet:o=>new Promise((async(c,l)=>{if(!n)return void l(new ln("User must be authenticated before exporting their Privy wallet"));let d=o?.address?hn(n,o.address):vn(n);if(!d)return void l(new ln("User must have an embedded wallet."));if(!In(d))return void l(Error(`Export is not supported for ${d.chainType} wallets`));let u=wn(d),{entropyId:p,entropyIdVerifier:m}=F(n,d);await e()?t?(r({connectWallet:{recoveryMethod:d.recoveryMethod,connectingWalletAddress:d.address,isUnifiedWallet:u,entropyId:p,entropyIdVerifier:m,onCompleteNavigateTo:K,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(x)):l(new ln("Wallet not ready for export")):l(new ln("Must have valid access token."))}))})),[n,e,t,a,i,r,s])}export{dt as a,Qe as b,tt as c,et as d,De as f,at as g,je as s,lt as u};