@privy-io/react-auth 3.0.0 → 3.0.2-beta-20250925222239

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 (49) hide show
  1. package/dist/cjs/SignRequestScreen-CCe20ORz.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/farcaster.js +1 -1
  5. package/dist/cjs/index.js +5 -5
  6. package/dist/cjs/{internal-context-KhEoJA7w.js → internal-context-DNWjSiYq.js} +1 -1
  7. package/dist/cjs/{privy-context-CIEj0Pa8.js → privy-context-C4y2c3Ko.js} +1 -1
  8. package/dist/cjs/{smart-wallets-B822d9Kk.js → smart-wallets-CmBEmFub.js} +1 -1
  9. package/dist/cjs/smart-wallets.js +1 -1
  10. package/dist/cjs/solana.js +1 -1
  11. package/dist/cjs/ui.js +2 -2
  12. package/dist/cjs/use-export-wallet-NzNJQIVp.js +2 -0
  13. package/dist/cjs/{use-sign-with-user-signer-ThMn4Vgi.js → use-sign-with-user-signer-Q0_LRVtz.js} +1 -1
  14. package/dist/cjs/{useActiveWallet-Cv3I_On0.js → useActiveWallet-CCF7VIo-.js} +1 -1
  15. package/dist/cjs/{usePrivy-B4cuW5Bf.js → usePrivy-75GUcthO.js} +1 -1
  16. package/dist/dts/extended-chains.d.mts +1 -1
  17. package/dist/dts/extended-chains.d.ts +1 -1
  18. package/dist/dts/farcaster.d.mts +1 -1
  19. package/dist/dts/farcaster.d.ts +1 -1
  20. package/dist/dts/index.d.mts +2 -2
  21. package/dist/dts/index.d.ts +2 -2
  22. package/dist/dts/smart-wallets.d.mts +1 -1
  23. package/dist/dts/smart-wallets.d.ts +1 -1
  24. package/dist/dts/solana.d.mts +2 -2
  25. package/dist/dts/solana.d.ts +2 -2
  26. package/dist/dts/{types-BQI70hRv.d.mts → types-D0jOlnAF.d.mts} +1 -0
  27. package/dist/dts/{types-BQI70hRv.d.ts → types-D0jOlnAF.d.ts} +1 -0
  28. package/dist/dts/ui.d.mts +1 -1
  29. package/dist/dts/ui.d.ts +1 -1
  30. package/dist/esm/SignRequestScreen-D9E9CdCn.mjs +25 -0
  31. package/dist/esm/abstract-smart-wallets.mjs +1 -1
  32. package/dist/esm/extended-chains.mjs +1 -1
  33. package/dist/esm/farcaster.mjs +1 -1
  34. package/dist/esm/index.mjs +6 -6
  35. package/dist/esm/{internal-context-B0qoKMVz.mjs → internal-context-LlMdpfkb.mjs} +1 -1
  36. package/dist/esm/{privy-context-DvKRpqkM.mjs → privy-context-V2csHgUI.mjs} +1 -1
  37. package/dist/esm/{smart-wallets-CAnrtQOj.mjs → smart-wallets-BznVpb5a.mjs} +1 -1
  38. package/dist/esm/smart-wallets.mjs +1 -1
  39. package/dist/esm/solana.mjs +1 -1
  40. package/dist/esm/ui.mjs +2 -2
  41. package/dist/esm/use-export-wallet-ffYkDJ-W.mjs +1 -0
  42. package/dist/esm/{use-sign-with-user-signer-Bwzp21df.mjs → use-sign-with-user-signer-DwqsbciW.mjs} +1 -1
  43. package/dist/esm/{useActiveWallet-CbqIRPmU.mjs → useActiveWallet-D9rQ-Mni.mjs} +1 -1
  44. package/dist/esm/{usePrivy-BVeHvDov.mjs → usePrivy-BU9ewpTg.mjs} +1 -1
  45. package/package.json +5 -5
  46. package/dist/cjs/SignRequestScreen-cKtBaDI7.js +0 -27
  47. package/dist/cjs/useFundWallet-F-byjhI0.js +0 -2
  48. package/dist/esm/SignRequestScreen-C_hOFegy.mjs +0 -25
  49. package/dist/esm/useFundWallet-CkgUMUp9.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,ai as s,aj as o,cE as c,cF as l,au as d,cc as u,al as p,cG as m,cH as g,cI as f,cJ as h,cK as w,cL as y,cM as v,ar as A,am as b,cN as I,cO as T,b5 as S,cP as O,cQ as k,cR as C,aH as E,z as _,bx as F,bV as x,ae as P,cS as U,cT as j,cU as B,af as W,b2 as L,cV as D,cW as M,as as N,cX as $,cY as R,cZ as V,c_ as J,c$ as H,d0 as Q}from"./SignRequestScreen-C_hOFegy.mjs";import{jsx as q,jsxs as K,Fragment as Y}from"react/jsx-runtime";import G from"@heroicons/react/24/outline/CheckCircleIcon";import{useMemo as Z,useCallback as z,useState as X,useEffect as nn}from"react";import{formatTokenAmount as en,rpc as tn,ConnectedStandardSolanaWallet as an,formatWalletAddress as rn}from"@privy-io/js-sdk-core";import{P as sn,h as on}from"./paths-B891YjWw.mjs";import{u as cn,a as ln}from"./internal-context-B0qoKMVz.mjs";import{u as dn,i as un,a as pn,f as mn,g as gn,k as fn}from"./privy-context-DvKRpqkM.mjs";import{u as hn,d as wn}from"./usePrivy-BVeHvDov.mjs";import yn from"eventemitter3";import{base58 as vn}from"@scure/base";import{styled as An}from"styled-components";import{getTransactionDecoder as bn,pipe as In,getCompiledTransactionMessageDecoder as Tn,decompileTransactionMessage as Sn,setTransactionMessageLifetimeUsingBlockhash as On,compileTransaction as kn,getTransactionEncoder as Cn,getBase58Decoder as En,getBase64Decoder as _n,fetchAddressesForLookupTables as Fn,getBase58Encoder as xn,address as Pn,createTransactionMessage as Un,setTransactionMessageFeePayerSigner as jn,appendTransactionMessageInstruction as Bn}from"@solana/kit";import{u as Wn}from"./use-sign-with-user-signer-Bwzp21df.mjs";import{getTransferSolInstruction as Ln}from"@solana-program/system";import{findAssociatedTokenPda as Dn,getCreateAssociatedTokenIdempotentInstruction as Mn,getTransferInstruction as Nn}from"@solana-program/token";function $n({rows:i}){/*#__PURE__*/return q(n,{children:i.filter((n=>!!n)).map(((n,i)=>null!=n.value||n.isLoading?/*#__PURE__*/K(e,{children:[/*#__PURE__*/q(t,{children:n.label}),/*#__PURE__*/q(a,{$isLoading:n.isLoading,children:n.value})]},i):null))})}const Rn=["solana:mainnet","solana:devnet","solana:testnet"];function Vn(n,e){if(!Object.prototype.hasOwnProperty.call(n,e))throw TypeError("attempted to use private field on non-instance");return n}var Jn=0,Hn="__private_"+Jn+++"__implementation";function Qn(n,e){if(!Object.prototype.hasOwnProperty.call(n,e))throw TypeError("attempted to use private field on non-instance");return n}var qn=0;function Kn(n){return"__private_"+qn+++"_"+n}var Yn=/*#__PURE__*/Kn("_address"),Gn=/*#__PURE__*/Kn("_publicKey"),Zn=/*#__PURE__*/Kn("_chains"),zn=/*#__PURE__*/Kn("_features"),Xn=/*#__PURE__*/Kn("_label"),ne=/*#__PURE__*/Kn("_icon");class ee{get address(){return Qn(this,Yn)[Yn]}get publicKey(){return Qn(this,Gn)[Gn].slice()}get chains(){return Qn(this,Zn)[Zn].slice()}get features(){return Qn(this,zn)[zn].slice()}get label(){return Qn(this,Xn)[Xn]}get icon(){return Qn(this,ne)[ne]}constructor({address:n,publicKey:e,label:t,icon:a}){Object.defineProperty(this,Yn,{writable:!0,value:void 0}),Object.defineProperty(this,Gn,{writable:!0,value:void 0}),Object.defineProperty(this,Zn,{writable:!0,value:void 0}),Object.defineProperty(this,zn,{writable:!0,value:void 0}),Object.defineProperty(this,Xn,{writable:!0,value:void 0}),Object.defineProperty(this,ne,{writable:!0,value:void 0}),Qn(this,Yn)[Yn]=n,Qn(this,Gn)[Gn]=e,Qn(this,Zn)[Zn]=Rn,Qn(this,Xn)[Xn]=t,Qn(this,ne)[ne]=a,Qn(this,zn)[zn]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===ee&&Object.freeze(this)}}function te(n,e){if(!Object.prototype.hasOwnProperty.call(n,e))throw TypeError("attempted to use private field on non-instance");return n}var ae=0;function ie(n){return"__private_"+ae+++"_"+n}var re=/*#__PURE__*/ie("_listeners"),se=/*#__PURE__*/ie("_version"),oe=/*#__PURE__*/ie("_name"),ce=/*#__PURE__*/ie("_icon"),le=/*#__PURE__*/ie("_injection"),de=/*#__PURE__*/ie("_isPrivyWallet"),ue=/*#__PURE__*/ie("_accounts"),pe=/*#__PURE__*/ie("_on"),me=/*#__PURE__*/ie("_emit"),ge=/*#__PURE__*/ie("_off"),fe=/*#__PURE__*/ie("_connected"),he=/*#__PURE__*/ie("_connect"),we=/*#__PURE__*/ie("_disconnect"),ye=/*#__PURE__*/ie("_signMessage"),ve=/*#__PURE__*/ie("_signAndSendTransaction"),Ae=/*#__PURE__*/ie("_signTransaction");function be(n,...e){te(this,re)[re][n]?.forEach((n=>n.apply(null,e)))}function Ie(n,e){te(this,re)[re][n]=te(this,re)[re][n]?.filter((n=>e!==n))}const Te=/*#__PURE__*/An.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)")),Se=({instruction:s,fees:o,transactionInfo:c,solPrice:l,chain:d})=>/*#__PURE__*/K(n,{children:[c?.action&&/*#__PURE__*/K(e,{children:[/*#__PURE__*/q(t,{children:"Action"}),/*#__PURE__*/q(a,{children:c.action})]}),null!=s?.total&&/*#__PURE__*/K(e,{children:[/*#__PURE__*/q(t,{children:"Total"}),/*#__PURE__*/q(a,{children:s.total})]}),!s?.total&&null!=s?.amount&&/*#__PURE__*/K(e,{children:[/*#__PURE__*/q(t,{children:"Total"}),/*#__PURE__*/q(a,{children:/*#__PURE__*/q(i,{quantities:[s.amount,o],tokenPrice:l})})]}),/*#__PURE__*/K(e,{children:[/*#__PURE__*/q(t,{children:"Fees"}),/*#__PURE__*/q(a,{children:/*#__PURE__*/q(i,{quantities:[o],tokenPrice:l})})]}),s?.to&&/*#__PURE__*/K(e,{children:[/*#__PURE__*/q(t,{children:"To"}),/*#__PURE__*/q(a,{children:/*#__PURE__*/q(r,{walletAddress:s.to,chainId:d,chainType:"solana"})})]})]}),Oe=({fees:n,onClose:e,receiptHeader:t,receiptDescription:a,transactionInfo:i,solPrice:r,signOnly:p,instruction:m,chain:g})=>/*#__PURE__*/K(Y,{children:[/*#__PURE__*/q(s,{onClose:e}),/*#__PURE__*/q(o,{style:{marginBottom:"16px"},children:/*#__PURE__*/K("div",{children:[/*#__PURE__*/q(Te,{color:"var(--privy-color-success-light)"}),/*#__PURE__*/q(G,{height:38,width:38,strokeWidth:2,stroke:"var(--privy-color-success)"})]})}),/*#__PURE__*/q(c,{title:t??`Transaction ${p?"signed":"complete"}!`,description:a??"You're all set."}),/*#__PURE__*/q(Se,{solPrice:r,instruction:m,fees:n,transactionInfo:i,chain:g}),/*#__PURE__*/q(l,{}),/*#__PURE__*/q(ke,{loading:!1,onClick:e,children:"Close"}),/*#__PURE__*/q(d,{}),/*#__PURE__*/q(u,{})]});let ke=/*#__PURE__*/An(p).withConfig({displayName:"SubmitButton",componentId:"sc-3cb7ee42-0"})(["&&{margin-top:24px;}transition:color 350ms ease,background-color 350ms ease;"]);function Ce(n){return new Uint8Array(bn().decode(n).messageBytes)}async function Ee(n,e){try{return await n}catch{return e}}const _e=(...n)=>{if("undefined"==typeof Buffer)throw new sn("Buffer is not defined.",void 0,on.BUFFER_NOT_DEFINED);return Buffer.from(...n)};function Fe(n){switch(n){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet"}}async function xe({privyClient:n,chain:e,mint:t}){let a=m[e];if(!a[t]){let i=await n.getSplTokenMetadata({mintAddress:t,cluster:Fe(e)});i&&(a[t]={address:t,symbol:i.symbol,decimals:i.decimals})}return a[t]}async function Pe({solanaClient:n,tx:e}){let t=_n().decode(Ce(e)),{value:a}=await n.rpc.getFeeForMessage(t).send();return a??0n}async function Ue({solanaClient:n,tx:e,replaceRecentBlockhash:t}){let{value:a}=await n.rpc.simulateTransaction(_n().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 Ue({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 je({tx:n,solanaClient:e,privyClient:t,checkFunds:a}){let i=Tn().decode(Ce(n)),r=i.staticAccounts[0]??"",s=await Pe({solanaClient:e,tx:n}),o=a?await Ee(Ue({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 Fn(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 Ee(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 Ee(De(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 Ee(Me(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 Ee(Le(n,u));if(!e){d.push({type:"unknown",program:a,discriminator:n.data?.[0]});continue}d.push(e)}else{let i=await Ee(We(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 Be(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=_e(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 We(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 xe({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:Be(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 Le(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:Be(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:Be(n.data,4),withSeed:!1}}if(3===t){let[,e]=a;return{type:"create-account",program:h,account:e,withSeed:!0,value:Be(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:Be(n.data,4),token:{symbol:"SOL",decimals:9},withSeed:!0}}throw Error(`System program instruction type ${t} not supported`)}async function De(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 xe({privyClient:a,chain:t.chain,mint:e}):void 0,tokenOut:s?await xe({privyClient:a,chain:t.chain,mint:s}):void 0,amountIn:Be(n.data,8),minimumAmountOut:Be(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 xe({privyClient:a,chain:t.chain,mint:e}):void 0,tokenOut:s?await xe({privyClient:a,chain:t.chain,mint:s}):void 0,maxAmountIn:Be(n.data,8),amountOut:Be(n.data,16)}}throw Error(`Raydium swap program instruction type ${s} not supported`)}async function Me(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 xe({privyClient:a,chain:t.chain,mint:e}):void 0,tokenOut:r?await xe({privyClient:a,chain:t.chain,mint:r}):void 0,outAmount:Be(n.data,n.data.length-1-2-8-8),quotedInAmount:Be(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 xe({privyClient:a,chain:t.chain,mint:e}):void 0,tokenOut:r?await xe({privyClient:a,chain:t.chain,mint:r}):void 0,outAmount:Be(n.data,n.data.length-1-2-8-8),quotedInAmount:Be(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 xe({privyClient:a,chain:t.chain,mint:e}):void 0,tokenOut:r?await xe({privyClient:a,chain:t.chain,mint:r}):void 0,inAmount:Be(n.data,n.data.length-1-2-8-8),quotedOutAmount:Be(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 Ne({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 $e({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(_e(t).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await Ne({rpcSubscriptions:e,signature:i,timeout:1e4}),a({signature:new Uint8Array(xn().encode(i))})}catch(n){i(n)}}))}({rpc:n,rpcSubscriptions:e});return{rpc:n,rpcSubscriptions:e,chain:t,blockExplorerUrl:a,sendAndConfirmTransaction:i}}function Re(){let n=A(),e=Z((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((e=>[e,n.solanaRpcs[e]?$e({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 z((n=>{if(!e[n])throw Error(`No RPC configuration found for chain ${n}`);return e[n]}),[e])}const Ve={component:()=>{let{data:n,onUserCloseViaDialogOrKeybindRef:e,setModalData:t,navigate:a}=b(),{client:i,closePrivyModal:r,walletProxy:s,showFiatPrices:o}=cn(),c=A(),{user:l}=dn(),d=Re()(n?.standardSignAndSendTransaction?.chain??"solana:mainnet"),[u,p]=X(n?.standardSignAndSendTransaction?.transaction),[m,g]=X(),[f,h]=X(),[w,y]=X({value:0n,isLoading:!1}),[v,_]=X(!1),[F,x]=X({}),[P,U]=X(),j=n?.standardSignAndSendTransaction?.account,B=!!n?.standardSignAndSendTransaction?.signOnly,W=j?.imported?un(l):pn(l),{solPrice:L,isSolPriceLoading:D}=I({enabled:o}),M=Z((()=>{if(!m)return;let n=m.spender,e=T(m.fee),t=T(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:T(i.value)};if("spl-transfer"===i.type)return{fee:e,spender:n,balance:t,total:`${en({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:`${`${en({amount:i.amountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${en({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:`${`${en({amount:i.maxAmountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${en({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:`${`${en({amount:i.inAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${en({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:`${`${en({amount:i.quotedInAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${en({amount:i.outAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}return{fee:e,spender:n,balance:t}}),[m,j?.address,w]),N=Z((()=>{let n;if(!m||!o||!L||D)return;function e(...n){return C(n.reduce(((n,e)=>n+e),0n),L??0)}j?.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,j?.address===m.spender?m.fee:0n)}:"spl-transfer"===a.type?{fee:n,balance:t,total:`${en({amount:a.value,decimals:a.token.decimals})} ${a.token.symbol}`}:{fee:n,balance:t}}),[m,o,L,D,j?.address,w]);if(nn((()=>{!async function(){if(u&&i)try{h(void 0);let n=await je({tx:u,solanaClient:d,privyClient:i,checkFunds:!B});g(n)}catch(n){console.error("Failed to prepare transaction",n),h(n)}}()}),[u,d,i,B]),nn((()=>{(async function(){if(!j)return;y({value:w.value,isLoading:!0});let{value:n}=await d.rpc.getBalance(j.address,{commitment:"confirmed"}).send();y({value:n??0n,isLoading:!1})})().catch(console.error)}),[m]),!u||!n?.standardSignAndSendTransaction||!j){let e=Error("Invalid transaction request");/*#__PURE__*/return q(S,{error:e,allowlistConfig:c.allowlistConfig,onRetry:()=>{n?.standardSignAndSendTransaction?.onFailure(e),r({shouldCallAuthOnSuccess:!1})}})}let $=()=>{if(!v)return F.signature||F.signedTransaction?n?.standardSignAndSendTransaction?.onSuccess({signature:F.signature,signedTransaction:F.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__*/q("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(F.signature||F.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 q(Oe,{fees:F.fees??0n,onClose:$,transactionInfo:n.standardSignAndSendTransaction?.uiOptions.transactionInfo,solPrice:L,receiptHeader:n.standardSignAndSendTransaction?.uiOptions.successHeader,receiptDescription:n.standardSignAndSendTransaction?.uiOptions.successDescription,chain:d.chain,signOnly:B,instruction:"sol-transfer"===t?.type?{to:t.toAccount,amount:t.value}:{to:t?.toAccount||t?.toAta,total:M?.total}})}return P?/*#__PURE__*/q(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 In(Tn().decode(Ce(n)),(n=>Sn(n)),(n=>On(e,n)),(n=>kn(n)),(n=>new Uint8Array(Cn().encode(n))))}(u,n))}}):/*#__PURE__*/q(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:M?.total,fee:o?N?.fee:M?.fee,balance:o?N?.balance:M?.balance,swap:M?.swap,transactingWalletAddress:j.address,disabled:!m?.hasFunds&&!V,isSubmitting:v,isPreparing:!m||w.isLoading,isTokenPriceLoading:o&&D,isMissingFunds:!m?.hasFunds,submitError:P??void 0,parseError:f,onClick:J?async()=>{if(j){if(!V)throw Error("Funding wallet is not enabled");t({...n,funding:{...n.funding,methodScreen:E},solanaFundingData:n?.solanaFundingData}),a(E)}}:async()=>{try{if(_(!0),v||!j||!s||!l||!W)return;let e=await n.standardSignAndSendTransaction.onConfirm(u);if("signature"in e){let n=await async function({solanaClient:n,signature:e}){let t=En().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{_(!1)}},onClose:$})}};function Je(n,e,t){let a=structuredClone(bn().decode(n)),i=Pn(e);return i in a.signatures&&(a.signatures[i]=t),new Uint8Array(Cn().encode(a))}function He(){let{isHeadlessSigning:n,walletProxy:e,initializeWalletProxy:t,recoverEmbeddedWallet:a,openModal:i,privy:r,client:s}=cn(),{user:o}=hn(),{setModalData:c}=b(),{signWithUserSigner:l}=Wn();return{signMessage:({message:d,address:u,options:p})=>new Promise((async(m,g)=>{let f=mn(o,u);if("privy"!==f?.walletClientType)return void g(new sn("Wallet is not a Privy wallet",void 0,on.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:h,entropyIdVerifier:w}=_(o,f),y=gn(f),v=_e(d).toString("base64");if(v.length<1)return void g(new sn("Message must be a non-empty string",void 0,on.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 tn(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(_e(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(_e(n,"base64"))})},onFailure:n=>{g(n)},uiOptions:p?.uiOptions??{}},connectWallet:{recoveryMethod:f.recoveryMethod,connectingWalletAddress:f.address,entropyId:h,entropyIdVerifier:w,isUnifiedWallet:y,onCompleteNavigateTo:F,onFailure:n=>{g(new sn("Failed to connect to wallet",n,on.UNKNOWN_CONNECT_WALLET_ERROR))}}}),i(x)}))}}function Qe(){let{isHeadlessSigning:n,openModal:e}=cn(),{setModalData:t}=b(),{signMessage:a}=He(),{user:i}=hn();return{signTransaction:async({transaction:r,options:s,chain:o="solana:mainnet",address:c})=>{async function l(n){let{signature:e}=await a({message:Ce(n),address:c,options:{...s,uiOptions:{...s?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:Je(n,c,e)}}return n({showWalletUIs:s?.uiOptions?.showWalletUIs})?l(r):new Promise((async(n,a)=>{let d=mn(i,c);if("privy"!==d?.walletClientType)return void a(new sn("Wallet is not a Privy wallet",void 0,on.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:u,entropyIdVerifier:p}=_(i,d),m=gn(d);function g(n){return e=>{a(e instanceof sn?e:new sn("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(on.TRANSACTION_FAILURE)};t({connectWallet:{recoveryMethod:d.recoveryMethod,connectingWalletAddress:d.address,entropyId:u,entropyIdVerifier:p,isUnifiedWallet:m,onCompleteNavigateTo:Ve,onFailure:g(on.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:f}),e(x)}))}}}let qe=new class extends yn{setImplementation(n){Vn(this,Hn)[Hn]=n}async signMessage(n){return Vn(this,Hn)[Hn].signMessage(n)}async signAndSendTransaction(n){return Vn(this,Hn)[Hn].signAndSendTransaction(n)}async signTransaction(n){return Vn(this,Hn)[Hn].signTransaction(n)}constructor(n){super(),Object.defineProperty(this,Hn,{writable:!0,value:void 0}),Vn(this,Hn)[Hn]=n}}({signTransaction:ln("signTransaction was not injected"),signAndSendTransaction:ln("signAndSendTransaction was not injected"),signMessage:ln("signMessage was not injected")}),Ke=new class{get version(){return te(this,se)[se]}get name(){return te(this,oe)[oe]}get icon(){return te(this,ce)[ce]}get chains(){return Rn.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:te(this,he)[he]},"standard:disconnect":{version:"1.0.0",disconnect:te(this,we)[we]},"standard:events":{version:"1.0.0",on:te(this,pe)[pe]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:te(this,ve)[ve]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:te(this,Ae)[Ae]},"solana:signMessage":{version:"1.0.0",signMessage:te(this,ye)[ye]},"privy:":{privy:{signMessage:te(this,le)[le].signMessage,signTransaction:te(this,le)[le].signTransaction,signAndSendTransaction:te(this,le)[le].signAndSendTransaction}}}}get accounts(){return te(this,ue)[ue].slice()}get isPrivyWallet(){return te(this,de)[de]}constructor({name:n,icon:e,version:t,injection:a,wallets:i}){Object.defineProperty(this,me,{value:be}),Object.defineProperty(this,ge,{value:Ie}),Object.defineProperty(this,re,{writable:!0,value:void 0}),Object.defineProperty(this,se,{writable:!0,value:void 0}),Object.defineProperty(this,oe,{writable:!0,value:void 0}),Object.defineProperty(this,ce,{writable:!0,value:void 0}),Object.defineProperty(this,le,{writable:!0,value:void 0}),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,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,ye,{writable:!0,value:void 0}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),Object.defineProperty(this,Ae,{writable:!0,value:void 0}),te(this,re)[re]={},te(this,pe)[pe]=(n,e)=>(te(this,re)[re][n]?.push(e)||(te(this,re)[re][n]=[e]),()=>te(this,ge)[ge](n,e)),te(this,fe)[fe]=n=>{null!=n&&(te(this,ue)[ue]=n.map((({address:n})=>new ee({address:n,publicKey:vn.decode(n)})))),te(this,me)[me]("change",{accounts:this.accounts})},te(this,he)[he]=async()=>(te(this,me)[me]("change",{accounts:this.accounts}),{accounts:this.accounts}),te(this,we)[we]=async()=>{te(this,me)[me]("change",{accounts:this.accounts})},te(this,ye)[ye]=async(...n)=>{let e=[];for(let{account:t,...a}of n){let{signature:n}=await te(this,le)[le].signMessage({...a,address:t.address});e.push({signedMessage:a.message,signature:n})}return e},te(this,ve)[ve]=async(...n)=>{let e=[];for(let{transaction:t,account:a,options:i,chain:r}of n){let{signature:n}=await te(this,le)[le].signAndSendTransaction({transaction:t,address:a.address,chain:r||"solana:mainnet",options:i});e.push({signature:n})}return e},te(this,Ae)[Ae]=async(...n)=>{let e=[];for(let{transaction:t,account:a,options:i,chain:r}of n){let{signedTransaction:n}=await te(this,le)[le].signTransaction({transaction:t,address:a.address,chain:r||"solana:mainnet",options:i});e.push({signedTransaction:n})}return e},te(this,oe)[oe]=n,te(this,ce)[ce]=e,te(this,se)[se]=t,te(this,le)[le]=a,te(this,ue)[ue]=[],te(this,de)[de]=!0,a.on("accountChanged",te(this,fe)[fe],this),te(this,fe)[fe](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:qe});function Ye(){let{ready:n}=P(),{user:e}=hn(),{signMessage:t}=He(),{signTransaction:a}=Qe(),{signAndSendTransaction:i}=function(){let n=A(),{isHeadlessSigning:e,openModal:t}=cn(),{setModalData:a}=b(),{signTransaction:i}=Qe(),r=Re(),{user:s}=hn();return{signAndSendTransaction:async({transaction:o,address:c,chain:l="solana:mainnet",options:d})=>{async function u(n){let{signedTransaction:e}=await i({transaction:n,address:c,chain:l,options:{...d,uiOptions:{...d?.uiOptions,showWalletUIs:!1}}}),{signature:t}=await r(l).sendAndConfirmTransaction(e);return{signature:t}}return e({showWalletUIs:d?.uiOptions?.showWalletUIs})?u(o):new Promise((async(e,i)=>{let r,p,m=mn(s,c);if("privy"!==m?.walletClientType)return void i(new sn("Wallet is not a Privy wallet",void 0,on.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:g,entropyIdVerifier:f}=_(s,m),h=gn(m);function w(n){return e=>{i(e instanceof sn?e:new sn("Failed to connect to wallet",e,n))}}let y={account:m,transaction:o,chain:l,signOnly:!1,uiOptions:d?.uiOptions||{},onConfirm:u,onSuccess:e,onFailure:w(on.TRANSACTION_FAILURE)},v={recoveryMethod:m.recoveryMethod,connectingWalletAddress:m.address,entropyId:g,entropyIdVerifier:f,isUnifiedWallet:h,onCompleteNavigateTo:Ve,onFailure:w(on.UNKNOWN_CONNECT_WALLET_ERROR)};n.fundingConfig&&(r=wn({address:c,appConfig:n,methodScreen:E,fundWalletConfig:{...d,asset:"native-currency",chain:l},externalSolanaFundingScreen:tt}),p={amount:n.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:l,destinationAddress:c,afterSuccessScreen:Ve,sourceWalletData:void 0}),a({connectWallet:v,standardSignAndSendTransaction:y,funding:r,solanaFundingData:p}),t(x)}))}}}(),r=Z((()=>{let n=[...fn(e).sort(((n,e)=>(n.walletIndex??0)-(e.walletIndex??0)))],t=un(e);return t?[...n,t]:n}),[e]),s=Z((()=>({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 nn((()=>{qe?.setImplementation(s)}),[s]),nn((()=>{var e;!n||(e=Ke.accounts).length===r.length&&e.every(((n,e)=>n.address===r[e]?.address))||qe?.emit("accountChanged",r)}),[n,r]),{ready:n,wallet:Ke}}function Ge(){let{ready:n,wallets:e}=function(){let{client:n}=cn(),{ready:e,wallet:t}=Ye(),[a,i]=X([]),[r,s]=X([]);return nn((()=>{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]),nn((()=>{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}}();return{ready:n,wallets:Z((()=>e.flatMap((n=>n.accounts.map((e=>new an({wallet:n,account:e})))))),[e])}}function Ze(n){return En().decode(n)}function ze(n){return BigInt(Math.floor(1e9*parseFloat(n)))}function Xe(n){return+nt.format(parseFloat(n.toString())/1e9)}let nt=Intl.NumberFormat(void 0,{maximumFractionDigits:8});async function et({tx:n,solanaClient:e,amount:t,asset:a,tokenPrice:i}){if(!n)return null;if("SOL"===a&&i){let a=ze(t),r=C(a,i),s=await Pe({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 Pe({solanaClient:e,tx:n}),s=function(n,e){let t=parseFloat(n.toString())/j*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=ze(t),i=await Pe({solanaClient:e,tx:n});return{amountInSol:t+" SOL",feeInSol:Xe(i)+" SOL",totalInSol:Xe(a+i)+" SOL"}}return{amountInUsdc:t+" USDC",feeInSol:Xe(await Pe({solanaClient:e,tx:n}))+" SOL"}}const tt={component:function(){let n=A(),{closePrivyModal:e,createAnalyticsEvent:t}=cn(),{data:a,setModalData:i,navigate:r}=b(),{wallets:s}=Ge(),[o,l]=X("preparing"),[m,f]=X(),[h,w]=X(),[y,v]=X();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,_=s.find((n=>n.address===O.address&&B(O.walletClientType)===B(n.standardWallet.name))),F=Re()(S),{tokenPrice:x,isTokenPriceLoading:P}=W("solana");return nn((()=>{if("preparing"!==o||P||!_)return;let n="SOL"===T?ze(I):function(n){return BigInt(Math.floor(1e6*parseFloat(n)))}(I);w({amount:("SOL"===T&&x?C(n,x):I)??I}),("SOL"===T?async function({solanaClient:n,source:e,destination:t,amountInLamports:a}){let{value:i}=await n.rpc.getLatestBlockhash().send(),r={address:e},s=In(Un({version:0}),(n=>jn(r,n)),(n=>On(i,n)),(n=>Bn(Ln({amount:a,source:r,destination:t}),n)),(n=>kn(n)));return new Uint8Array(Cn().encode(s))}({solanaClient:F,source:_.address,destination:k,amountInLamports:n}):async function({solanaClient:n,source:e,destination:t,amountInBaseUnits:a}){let i=U(n.chain),{value:r}=await n.rpc.getLatestBlockhash().send(),s={address:e},[o]=await Dn({mint:i,owner:e,tokenProgram:g}),[c]=await Dn({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=Mn({payer:s,ata:c,owner:t,mint:i}),p=In(Un({version:0}),(n=>jn(s,n)),(n=>On(r,n)),(n=>d?.value?n:Bn(u,n)),(n=>Bn(Nn({source:o,destination:c,authority:s,amount:a}),n)),(n=>kn(n)));return new Uint8Array(Cn().encode(p))}({solanaClient:F,source:_.address,destination:k,amountInBaseUnits:n})).then(f).catch((n=>{l("error"),v(n)}))}),[o,I,T,S,_,k,P,x]),nn((()=>{"preparing"===o&&m&&et({tx:m,solanaClient:F,amount:I,asset:T,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,T,o,x]),nn((()=>{"error"===o&&y&&(i({errorModalData:{error:y,previousScreen:tt},solanaFundingData:a.solanaFundingData}),r(L,!1))}),[o,r]),nn((()=>{if("success"!==o)return;let n=setTimeout(E?()=>r(E):e,D);return()=>clearTimeout(n)}),[o]),/*#__PURE__*/K(Y,"success"===o?{children:[/*#__PURE__*/q(M,{}),/*#__PURE__*/q(N,{}),/*#__PURE__*/K($,{children:[/*#__PURE__*/q(G,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/q(c,{title:"Success!",description:`You’ve successfully added ${I} ${T} to your ${n.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/q(d,{}),/*#__PURE__*/q(u,{})]}:"preparing"===o||"loaded"===o||"sending"===o?{children:[/*#__PURE__*/q(M,{}),/*#__PURE__*/q(R,{style:{marginTop:"16px"},children:/*#__PURE__*/q(V,{icon:_?.standardWallet.icon,name:_?.standardWallet.name})}),/*#__PURE__*/q(c,{style:{marginTop:"8px",marginBottom:"12px"},title:"sending"===o&&_?`Confirming with ${_.standardWallet.name}`:"Confirm transaction"}),/*#__PURE__*/q($n,{rows:[{label:"Source",value:rn(O.address)},{label:"Destination",value:rn(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__*/q(p,{style:{marginTop:"1rem"},loading:"preparing"===o||"sending"===o,onClick:function(){"loaded"===o&&m&&_&&(l("sending"),async function({transaction:n,chain:e,sourceWallet:t,solanaClient:a}){let{hasFunds:i}=await Ue({solanaClient:a,tx:n});if(!i)throw new sn(`Wallet ${rn(t.address)} does not have enough funds.`,void 0,on.INSUFFICIENT_BALANCE);let r=Ze((await t.signAndSendTransaction({transaction:n,chain:e}).catch((n=>{throw new sn("Transaction was rejected by the user",n,on.TRANSACTION_FAILURE)}))).signature);return await Ne({rpcSubscriptions:a.rpcSubscriptions,signature:r,timeout:2e4}),r}({solanaClient:F,transaction:m,chain:S,sourceWallet:_}).then((n=>{l("success"),t({eventName:H,payload:{provider:"external",status:"success",txHash:n,address:_.address,value:I,chainType:"solana",clusterName:S,token:T,destinationAddress:k,destinationValue:I,destinationChainType:"solana",destinationClusterName:S,destinationToken:T}})})).catch((n=>{l("error"),v(n)})))},children:"Confirm"}),/*#__PURE__*/q(u,{})]}:{children:[/*#__PURE__*/q(M,{}),/*#__PURE__*/q(Q,{}),/*#__PURE__*/q("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/q(u,{})]})}};function at(){let n=A(),{openModal:e}=cn(),{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:wn({address:a,appConfig:n,methodScreen:E,fundWalletConfig:{...i,amount:r,asset:s,chain:o},externalSolanaFundingScreen:tt}),solanaFundingData:{amount:r,asset:"native-currency"===s?"SOL":"USDC",chain:o,destinationAddress:a,sourceWalletData:void 0}}),e(E)}}}export{Ze as a,Ge as b,Pe as f,$e as g,Ue as s,at as u};