@privy-io/react-auth 3.6.0 → 3.7.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.
- package/dist/cjs/EmbeddedWalletConnectingScreen-JRafXI8d.js +27 -0
- package/dist/cjs/{SignRequestScreen-DBTM8mH6.js → SignRequestScreen-Dy02euV9.js} +1 -1
- package/dist/cjs/abstract-smart-wallets.js +1 -1
- package/dist/cjs/{events-context-B1SQ9SZZ.js → events-context-7-Gs8c_9.js} +1 -1
- package/dist/cjs/extended-chains.js +1 -1
- package/dist/cjs/index.js +6 -7
- package/dist/cjs/internal.js +1 -1
- package/dist/cjs/{smart-wallets-DS5H3O_R.js → smart-wallets-DaqaXBrW.js} +1 -1
- package/dist/cjs/smart-wallets.js +1 -1
- package/dist/cjs/solana.js +1 -1
- package/dist/cjs/ui.js +1 -1
- package/dist/cjs/use-export-wallet-Cz8MVlvJ.js +2 -0
- package/dist/cjs/{useActiveWallet-DSa22Ge3.js → useActiveWallet-C5D3a-je.js} +1 -1
- package/dist/cjs/{usePrivy-BRFNEdKI.js → usePrivy-BdYU4BZI.js} +1 -1
- package/dist/dts/{events-context-B1q54lAU.d.mts → events-context-CCElA92Y.d.mts} +1 -1
- package/dist/dts/{events-context-B1q54lAU.d.ts → events-context-CCElA92Y.d.ts} +1 -1
- package/dist/dts/extended-chains.d.mts +1 -1
- package/dist/dts/extended-chains.d.ts +1 -1
- package/dist/dts/farcaster.d.mts +1 -1
- package/dist/dts/farcaster.d.ts +1 -1
- package/dist/dts/index.d.mts +93 -6
- package/dist/dts/index.d.ts +93 -6
- package/dist/dts/internal.d.mts +1 -1
- package/dist/dts/internal.d.ts +1 -1
- package/dist/dts/smart-wallets.d.mts +1 -1
- package/dist/dts/smart-wallets.d.ts +1 -1
- package/dist/dts/solana.d.mts +3 -3
- package/dist/dts/solana.d.ts +3 -3
- package/dist/dts/{types-BSeKsLfK.d.mts → types-B6UNnZ2P.d.mts} +8 -1
- package/dist/dts/{types-BSeKsLfK.d.ts → types-B6UNnZ2P.d.ts} +8 -1
- package/dist/dts/ui.d.mts +1 -1
- package/dist/dts/ui.d.ts +1 -1
- package/dist/esm/EmbeddedWalletConnectingScreen-D50stmJi.mjs +25 -0
- package/dist/esm/{SignRequestScreen-B2NV0Hvv.mjs → SignRequestScreen-D9o7VhNz.mjs} +1 -1
- package/dist/esm/abstract-smart-wallets.mjs +1 -1
- package/dist/esm/{events-context-DpXp5E_5.mjs → events-context-ClaboIDc.mjs} +1 -1
- package/dist/esm/extended-chains.mjs +1 -1
- package/dist/esm/index.mjs +5 -6
- package/dist/esm/internal.mjs +1 -1
- package/dist/esm/{smart-wallets-X-vN2hVx.mjs → smart-wallets-BXT3GZwg.mjs} +1 -1
- package/dist/esm/smart-wallets.mjs +1 -1
- package/dist/esm/solana.mjs +1 -1
- package/dist/esm/ui.mjs +2 -2
- package/dist/esm/use-export-wallet-DTiEdSYz.mjs +1 -0
- package/dist/esm/{useActiveWallet-6VCN4YGN.mjs → useActiveWallet-B8DSbnuu.mjs} +1 -1
- package/dist/esm/{usePrivy-DLA1ZqHR.mjs → usePrivy-BCcRF869.mjs} +1 -1
- package/package.json +8 -6
- package/dist/cjs/EmbeddedWalletConnectingScreen-fhtSGmI2.js +0 -27
- package/dist/cjs/use-export-wallet-DPcrptkc.js +0 -2
- package/dist/esm/EmbeddedWalletConnectingScreen-DNdaS6u7.mjs +0 -25
- package/dist/esm/use-export-wallet-CPIcGGw7.mjs +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{k as e,v as n,u as t}from"./events-context-DpXp5E_5.mjs";import{jsx as a,jsxs as i,Fragment as r}from"react/jsx-runtime";import s from"@heroicons/react/24/outline/CheckCircleIcon";import{useMemo as o,useCallback as c,useState as l,useEffect as d}from"react";import u,{formatTokenAmount as p,rpc as m,ConnectedStandardSolanaWallet as g,formatWalletAddress as f}from"@privy-io/js-sdk-core";import{c3 as h,b_ as w,ch as y,ci as v,cj as A,ck as b,a2 as I,a3 as S,cl as T,cm as k,af as O,bU as C,a5 as E,cn as F,co as _,cp as x,cq as P,cr as U,cs as W,ct as M,ab as j,aa as B,be as D,aj as L,cu as N,cv as $,aL as R,cw as V,cx as J,cy as q,ao as H,bd as K,F as Q,q as G,bv as Y,f as z,_ as Z,cz as X,cA as ee,cB as ne,cC as te,$ as ae,aI as ie,cD as re,ad as se,cE as oe,cF as ce,cG as le,cH as de,cI as ue,cJ as pe,cK as me,bu as ge}from"./EmbeddedWalletConnectingScreen-DNdaS6u7.mjs";import{P as fe,h as he,aa as we,ag as ye}from"./internal-context-eGSwROSk.mjs";import{u as ve,g as Ae,i as be}from"./usePrivy-DLA1ZqHR.mjs";import Ie from"eventemitter3";import{base58 as Se}from"@scure/base";import{u as Te}from"./use-sign-with-user-signer-DaTvrd5T.mjs";import{styled as ke}from"styled-components";import{getTransactionDecoder as Oe,pipe as Ce,getCompiledTransactionMessageDecoder as Ee,decompileTransactionMessage as Fe,setTransactionMessageLifetimeUsingBlockhash as _e,compileTransaction as xe,getTransactionEncoder as Pe,getBase58Decoder as Ue,getBase64Decoder as We,fetchAddressesForLookupTables as Me,getBase58Encoder as je,address as Be,createTransactionMessage as De,setTransactionMessageFeePayerSigner as Le,appendTransactionMessageInstruction as Ne}from"@solana/kit";import{S as $e}from"./SignRequestScreen-B2NV0Hvv.mjs";import{getTransferSolInstruction as Re}from"@solana-program/system";import{findAssociatedTokenPda as Ve,getCreateAssociatedTokenIdempotentInstruction as Je,getTransferInstruction as qe}from"@solana-program/token";const He=["solana:mainnet","solana:devnet","solana:testnet"];function Ke({rows:e}){/*#__PURE__*/return a(h,{children:e.filter((e=>!!e)).map(((e,n)=>null!=e.value||e.isLoading?/*#__PURE__*/i(w,{children:[/*#__PURE__*/a(y,{children:e.label}),/*#__PURE__*/a(v,{$isLoading:e.isLoading,children:e.value})]},n):null))})}function Qe(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var Ge=0,Ye="__private_"+Ge+++"__implementation";function ze(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var Ze=0;function Xe(e){return"__private_"+Ze+++"_"+e}var en=/*#__PURE__*/Xe("_address"),nn=/*#__PURE__*/Xe("_publicKey"),tn=/*#__PURE__*/Xe("_chains"),an=/*#__PURE__*/Xe("_features"),rn=/*#__PURE__*/Xe("_label"),sn=/*#__PURE__*/Xe("_icon");class on{get address(){return ze(this,en)[en]}get publicKey(){return ze(this,nn)[nn].slice()}get chains(){return ze(this,tn)[tn].slice()}get features(){return ze(this,an)[an].slice()}get label(){return ze(this,rn)[rn]}get icon(){return ze(this,sn)[sn]}constructor({address:e,publicKey:n,label:t,icon:a}){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}),Object.defineProperty(this,an,{writable:!0,value:void 0}),Object.defineProperty(this,rn,{writable:!0,value:void 0}),Object.defineProperty(this,sn,{writable:!0,value:void 0}),ze(this,en)[en]=e,ze(this,nn)[nn]=n,ze(this,tn)[tn]=He,ze(this,rn)[rn]=t,ze(this,sn)[sn]=a,ze(this,an)[an]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===on&&Object.freeze(this)}}function cn(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var ln=0;function dn(e){return"__private_"+ln+++"_"+e}var un=/*#__PURE__*/dn("_listeners"),pn=/*#__PURE__*/dn("_version"),mn=/*#__PURE__*/dn("_name"),gn=/*#__PURE__*/dn("_icon"),fn=/*#__PURE__*/dn("_injection"),hn=/*#__PURE__*/dn("_isPrivyWallet"),wn=/*#__PURE__*/dn("_accounts"),yn=/*#__PURE__*/dn("_on"),vn=/*#__PURE__*/dn("_emit"),An=/*#__PURE__*/dn("_off"),bn=/*#__PURE__*/dn("_connected"),In=/*#__PURE__*/dn("_connect"),Sn=/*#__PURE__*/dn("_disconnect"),Tn=/*#__PURE__*/dn("_signMessage"),kn=/*#__PURE__*/dn("_signAndSendTransaction"),On=/*#__PURE__*/dn("_signTransaction");function Cn(e,...n){cn(this,un)[un][e]?.forEach((e=>e.apply(null,n)))}function En(e,n){cn(this,un)[un][e]=cn(this,un)[un][e]?.filter((e=>n!==e))}const Fn=/*#__PURE__*/ke.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)")),_n=({instruction:e,fees:n,transactionInfo:t,solPrice:r,chain:s})=>/*#__PURE__*/i(h,{children:[t?.action&&/*#__PURE__*/i(w,{children:[/*#__PURE__*/a(y,{children:"Action"}),/*#__PURE__*/a(v,{children:t.action})]}),null!=e?.total&&/*#__PURE__*/i(w,{children:[/*#__PURE__*/a(y,{children:"Total"}),/*#__PURE__*/a(v,{children:e.total})]}),!e?.total&&null!=e?.amount&&/*#__PURE__*/i(w,{children:[/*#__PURE__*/a(y,{children:"Total"}),/*#__PURE__*/a(v,{children:/*#__PURE__*/a(A,{quantities:[e.amount,n],tokenPrice:r})})]}),/*#__PURE__*/i(w,{children:[/*#__PURE__*/a(y,{children:"Fees"}),/*#__PURE__*/a(v,{children:/*#__PURE__*/a(A,{quantities:[n],tokenPrice:r})})]}),e?.to&&/*#__PURE__*/i(w,{children:[/*#__PURE__*/a(y,{children:"To"}),/*#__PURE__*/a(v,{children:/*#__PURE__*/a(b,{walletAddress:e.to,chainId:s,chainType:"solana"})})]})]}),xn=({fees:e,onClose:n,receiptHeader:t,receiptDescription:o,transactionInfo:c,solPrice:l,signOnly:d,instruction:u,chain:p})=>/*#__PURE__*/i(r,{children:[/*#__PURE__*/a(I,{onClose:n}),/*#__PURE__*/a(S,{style:{marginBottom:"16px"},children:/*#__PURE__*/i("div",{children:[/*#__PURE__*/a(Fn,{color:"var(--privy-color-success-light)"}),/*#__PURE__*/a(s,{height:38,width:38,strokeWidth:2,stroke:"var(--privy-color-success)"})]})}),/*#__PURE__*/a(T,{title:t??`Transaction ${d?"signed":"complete"}!`,description:o??"You're all set."}),/*#__PURE__*/a(_n,{solPrice:l,instruction:u,fees:e,transactionInfo:c,chain:p}),/*#__PURE__*/a(k,{}),/*#__PURE__*/a(Pn,{loading:!1,onClick:n,children:"Close"}),/*#__PURE__*/a(O,{}),/*#__PURE__*/a(C,{})]});let Pn=/*#__PURE__*/ke(E).withConfig({displayName:"SubmitButton",componentId:"sc-3cb7ee42-0"})(["&&{margin-top:24px;}transition:color 350ms ease,background-color 350ms ease;"]);function Un(e){return new Uint8Array(Oe().decode(e).messageBytes)}async function Wn(e,n){try{return await e}catch{return n}}const Mn=(...e)=>{if("undefined"==typeof Buffer)throw new fe("Buffer is not defined.",void 0,he.BUFFER_NOT_DEFINED);return Buffer.from(...e)};function jn(e){switch(e){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet"}}async function Bn({privyClient:e,chain:n,mint:t}){let a=F[n];if(!a[t]){let i=await e.getSplTokenMetadata({mintAddress:t,cluster:jn(n)});i&&(a[t]={address:t,symbol:i.symbol,decimals:i.decimals})}return a[t]}async function Dn({solanaClient:e,tx:n}){let t=We().decode(Un(n)),{value:a}=await e.rpc.getFeeForMessage(t).send();return a??0n}async function Ln({solanaClient:e,tx:n,replaceRecentBlockhash:t}){let{value:a}=await e.rpc.simulateTransaction(We().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 Ln({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 Nn({tx:e,solanaClient:n,privyClient:t,checkFunds:a}){let i=Ee().decode(Un(e)),r=i.staticAccounts[0]??"",s=await Dn({solanaClient:n,tx:e}),o=a?await Wn(Ln({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 Me(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!==_&&a!==x)if(a!==P){if(a===U){let n=await Wn(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 Wn(Jn(e,u,n,t,a));if(!i){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}d.push(i)}else if(M.includes(a)){let i=await Wn(qn(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 Wn(Vn(e,u));if(!n){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}d.push(n)}else{let i=await Wn(Rn(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 $n(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=Mn(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 Rn(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 Bn({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:n,value:$n(e.data,1),token:{symbol:g,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 Vn(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:P,account:n?.toString(),value:$n(e.data,4),withSeed:!1}}if(2===t){let[n,t]=a;return{type:"sol-transfer",program:P,fromAccount:n,toAccount:t,token:{symbol:"SOL",decimals:9},value:$n(e.data,4),withSeed:!1}}if(3===t){let[,n]=a;return{type:"create-account",program:P,account:n,withSeed:!0,value:$n(e.data.slice(e.data.length-32-8-8))}}if(11===t){let[n,t]=a;return{type:"sol-transfer",program:P,fromAccount:n,toAccount:t,value:$n(e.data,4),token:{symbol:"SOL",decimals:9},withSeed:!0}}throw Error(`System program instruction type ${t} not supported`)}async function Jn(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 Bn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:s?await Bn({privyClient:a,chain:t.chain,mint:s}):void 0,amountIn:$n(e.data,8),minimumAmountOut:$n(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 Bn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:s?await Bn({privyClient:a,chain:t.chain,mint:s}):void 0,maxAmountIn:$n(e.data,8),amountOut:$n(e.data,16)}}throw Error(`Raydium swap program instruction type ${s} not supported`)}async function qn(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 Bn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:r?await Bn({privyClient:a,chain:t.chain,mint:r}):void 0,outAmount:$n(e.data,e.data.length-1-2-8-8),quotedInAmount:$n(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 Bn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:r?await Bn({privyClient:a,chain:t.chain,mint:r}):void 0,outAmount:$n(e.data,e.data.length-1-2-8-8),quotedInAmount:$n(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 Bn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:r?await Bn({privyClient:a,chain:t.chain,mint:r}):void 0,inAmount:$n(e.data,e.data.length-1-2-8-8),quotedOutAmount:$n(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 Hn({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 Kn({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(Mn(t).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await Hn({rpcSubscriptions:n,signature:i,timeout:1e4}),a({signature:new Uint8Array(je().encode(i))})}catch(e){i(e)}}))}({rpc:e,rpcSubscriptions:n});return{rpc:e,rpcSubscriptions:n,chain:t,blockExplorerUrl:a,sendAndConfirmTransaction:i}}function Qn(){let n=e(),t=o((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((e=>[e,n.solanaRpcs[e]?Kn({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 c((e=>{if(!t[e])throw Error(`No RPC configuration found for chain ${e}`);return t[e]}),[t])}const Gn={component:()=>{let{data:n,onUserCloseViaDialogOrKeybindRef:t,setModalData:i,navigate:r}=j(),{client:s,closePrivyModal:c,walletProxy:u,showFiatPrices:m}=we(),g=e(),{user:f}=B(),h=Qn()(n?.standardSignAndSendTransaction?.chain??"solana:mainnet"),[w,y]=l(n?.standardSignAndSendTransaction?.transaction),[v,A]=l(),[b,I]=l(),[S,T]=l({value:0n,isLoading:!1}),[k,O]=l(!1),[C,E]=l({}),[F,_]=l(),x=n?.standardSignAndSendTransaction?.account,P=!!n?.standardSignAndSendTransaction?.signOnly,U=x?.imported?D(f).find((e=>e.address===x.address)):L(f),{solPrice:W,isSolPriceLoading:M}=N({enabled:m}),K=o((()=>{if(!v)return;let e=v.spender,n=$(v.fee),t=$(S.value,3,!0),a=v.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:$(i.value)};if("spl-transfer"===i.type)return{fee:n,spender:e,balance:t,total:`${p({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:`${`${p({amount:i.amountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${p({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:`${`${p({amount:i.maxAmountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${p({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:`${`${p({amount:i.inAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${p({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:`${`${p({amount:i.quotedInAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${p({amount:i.outAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}return{fee:n,spender:e,balance:t}}),[v,x?.address,S]),Q=o((()=>{let e;if(!v||!m||!W||M)return;function n(...e){return q(e.reduce(((e,n)=>e+n),0n),W??0)}x?.address===v.spender&&(e=n(v.fee));let t=n(S.value),a=v.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)).at(0);return!a||v.instructions.length>1?{fee:e,balance:t}:"sol-transfer"===a.type?{fee:e,balance:t,total:n(a.value,x?.address===v.spender?v.fee:0n)}:"spl-transfer"===a.type?{fee:e,balance:t,total:`${p({amount:a.value,decimals:a.token.decimals})} ${a.token.symbol}`}:{fee:e,balance:t}}),[v,m,W,M,x?.address,S]);if(d((()=>{!async function(){if(w&&s)try{I(void 0);let e=await Nn({tx:w,solanaClient:h,privyClient:s,checkFunds:!P});A(e)}catch(e){console.error("Failed to prepare transaction",e),I(e)}}()}),[w,h,s,P]),d((()=>{(async function(){if(!x)return;T({value:S.value,isLoading:!0});let{value:e}=await h.rpc.getBalance(x.address,{commitment:"confirmed"}).send();T({value:e??0n,isLoading:!1})})().catch(console.error)}),[v]),!w||!n?.standardSignAndSendTransaction||!x){let e=Error("Invalid transaction request");/*#__PURE__*/return a(R,{error:e,allowlistConfig:g.allowlistConfig,onRetry:()=>{n?.standardSignAndSendTransaction?.onFailure(e),c({shouldCallAuthOnSuccess:!1})}})}let G=()=>{if(!k)return C.signature||C.signedTransaction?n?.standardSignAndSendTransaction?.onSuccess({signature:C.signature,signedTransaction:C.signedTransaction}):n?.standardSignAndSendTransaction?.onFailure(F??b??Error("User exited the modal before submitting the transaction")),c({shouldCallAuthOnSuccess:!1})};t.current=G;let Y=n.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.contractInfo?.imgUrl?/*#__PURE__*/a("img",{src:n.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgUrl,alt:n.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgAltText}):null,z=!!(n.funding&&n.funding.supportedOptions.length>0),Z=!v?.hasFunds&&z;if(C.signature||C.signedTransaction){let e=v?.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)),t=1===e?.length?e?.at(0):void 0;/*#__PURE__*/return a(xn,{fees:C.fees??0n,onClose:G,transactionInfo:n.standardSignAndSendTransaction?.uiOptions.transactionInfo,solPrice:W,receiptHeader:n.standardSignAndSendTransaction?.uiOptions.successHeader,receiptDescription:n.standardSignAndSendTransaction?.uiOptions.successDescription,chain:h.chain,signOnly:P,instruction:"sol-transfer"===t?.type?{to:t.toAccount,amount:t.value}:{to:t?.toAccount||t?.toAta,total:K?.total}})}return F?/*#__PURE__*/a(V,{transactionError:F,chainId:h.chain,onClose:G,chainType:"solana",onRetry:async()=>{_(void 0);let{value:e}=await h.rpc.getLatestBlockhash().send();y(function(e,n){return Ce(Ee().decode(Un(e)),(e=>Fe(e)),(e=>_e(n,e)),(e=>xe(e)),(e=>new Uint8Array(Pe().encode(e))))}(w,e))}}):/*#__PURE__*/a(J,{img:Y,title:n.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.title||"Confirm transaction",subtitle:n.standardSignAndSendTransaction?.uiOptions?.description||`${g.name} wants your permission to approve the following transaction.`,cta:Z?"Add funds":n.standardSignAndSendTransaction?.uiOptions?.buttonText||"Approve",instructions:v?.instructions??[],network:"solana:mainnet"==h.chain?"Solana":h.chain.replace("solana:",""),blockExplorerUrl:h.blockExplorerUrl,total:m?Q?.total:K?.total,fee:m?Q?.fee:K?.fee,balance:m?Q?.balance:K?.balance,swap:K?.swap,transactingWalletAddress:x.address,disabled:!v?.hasFunds&&!z,isSubmitting:k,isPreparing:!v||S.isLoading,isTokenPriceLoading:m&&M,isMissingFunds:!v?.hasFunds,submitError:F??void 0,isSponsored:!!n.standardSignAndSendTransaction?.isSponsored,parseError:b,onClick:Z?async()=>{if(x){if(!z)throw Error("Funding wallet is not enabled");i({...n,funding:{...n.funding,methodScreen:H},solanaFundingData:n?.solanaFundingData}),r(H)}}:async()=>{try{if(O(!0),k||!x||!u||!f||!U)return;let e=await n.standardSignAndSendTransaction.onConfirm(w);if("signature"in e){let n=await async function({solanaClient:e,signature:n}){let t=Ue().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:h,signature:e.signature});return void E({...e,fees:n?.fee})}E(e)}catch(e){console.warn({transaction:w,error:e}),_(e)}finally{O(!1)}},onClose:G})}};function Yn(e,n,t){let a=structuredClone(Oe().decode(e)),i=Be(n);return i in a.signatures&&(a.signatures[i]=t),new Uint8Array(Pe().encode(a))}function zn(){let{isHeadlessSigning:e,walletProxy:n,initializeWalletProxy:t,recoverEmbeddedWallet:a,openModal:i,privy:r,client:s}=we(),{user:o}=ve(),{setModalData:c}=j(),{signWithUserSigner:l}=Te();return{signMessage:({message:d,address:u,options:p})=>new Promise((async(g,f)=>{let h=K(o,u);if("privy"!==h?.walletClientType)return void f(new fe("Wallet is not a Privy wallet",void 0,he.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:w,entropyIdVerifier:y}=Q(o,h),v=G(h),A=Mn(d).toString("base64");if(A.length<1)return void f(new fe("Message must be a non-empty string",void 0,he.INVALID_MESSAGE));let b=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:h.address}))throw Error("Unable to connect to wallet");if(v){let n=await m(r,l,{chain_type:"solana",method:"signMessage",params:{message:A,encoding:"base64"},wallet_id:h.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:w,entropyIdVerifier:y,chainType:"solana",hdWalletIndex:h.walletIndex??0,requesterAppId:p?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:A}}});e=n.data.signature}return e};if(e({showWalletUIs:p?.uiOptions?.showWalletUIs}))try{let e=await b(),n=new Uint8Array(Mn(e,"base64"));g({signature:n})}catch(e){f(e)}else c({signMessage:{method:"solana_signMessage",data:A,confirmAndSign:b,onSuccess:e=>{g({signature:new Uint8Array(Mn(e,"base64"))})},onFailure:e=>{f(e)},uiOptions:p?.uiOptions??{}},connectWallet:{recoveryMethod:h.recoveryMethod,connectingWalletAddress:h.address,entropyId:w,entropyIdVerifier:y,isUnifiedWallet:v,onCompleteNavigateTo:$e,onFailure:e=>{f(new fe("Failed to connect to wallet",e,he.UNKNOWN_CONNECT_WALLET_ERROR))}}}),i(Y)}))}}function Zn(){let{isHeadlessSigning:e,openModal:n}=we(),{setModalData:t}=j(),{signMessage:a}=zn(),{user:i}=ve();return{signTransaction:async({transaction:r,options:s,chain:o="solana:mainnet",address:c})=>{async function l(e){let{signature:n}=await a({message:Un(e),address:c,options:{...s,uiOptions:{...s?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:Yn(e,c,n)}}return e({showWalletUIs:s?.uiOptions?.showWalletUIs})?l(r):new Promise((async(e,a)=>{let d=K(i,c);if("privy"!==d?.walletClientType)return void a(new fe("Wallet is not a Privy wallet",void 0,he.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:u,entropyIdVerifier:p}=Q(i,d),m=G(d);function g(e){return n=>{a(n instanceof fe?n:new fe("Failed to connect to wallet",n,e))}}let f={account:d,transaction:r,chain:o,signOnly:!0,uiOptions:s?.uiOptions||{},onConfirm:l,onSuccess:e,onFailure:g(he.TRANSACTION_FAILURE)};t({connectWallet:{recoveryMethod:d.recoveryMethod,connectingWalletAddress:d.address,entropyId:u,entropyIdVerifier:p,isUnifiedWallet:m,onCompleteNavigateTo:Gn,onFailure:g(he.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:f}),n(Y)}))}}}let Xn=new class extends Ie{setImplementation(e){Qe(this,Ye)[Ye]=e}async signMessage(e){return Qe(this,Ye)[Ye].signMessage(e)}async signAndSendTransaction(e){return Qe(this,Ye)[Ye].signAndSendTransaction(e)}async signTransaction(e){return Qe(this,Ye)[Ye].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,Ye,{writable:!0,value:void 0}),Qe(this,Ye)[Ye]=e}}({signTransaction:ye("signTransaction was not injected"),signAndSendTransaction:ye("signAndSendTransaction was not injected"),signMessage:ye("signMessage was not injected")}),et=new class{get version(){return cn(this,pn)[pn]}get name(){return cn(this,mn)[mn]}get icon(){return cn(this,gn)[gn]}get chains(){return He.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:cn(this,In)[In]},"standard:disconnect":{version:"1.0.0",disconnect:cn(this,Sn)[Sn]},"standard:events":{version:"1.0.0",on:cn(this,yn)[yn]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:cn(this,kn)[kn]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:cn(this,On)[On]},"solana:signMessage":{version:"1.0.0",signMessage:cn(this,Tn)[Tn]},"privy:":{privy:{signMessage:cn(this,fn)[fn].signMessage,signTransaction:cn(this,fn)[fn].signTransaction,signAndSendTransaction:cn(this,fn)[fn].signAndSendTransaction}}}}get accounts(){return cn(this,wn)[wn].slice()}get isPrivyWallet(){return cn(this,hn)[hn]}constructor({name:e,icon:n,version:t,injection:a,wallets:i}){Object.defineProperty(this,vn,{value:Cn}),Object.defineProperty(this,An,{value:En}),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,gn,{writable:!0,value:void 0}),Object.defineProperty(this,fn,{writable:!0,value:void 0}),Object.defineProperty(this,hn,{writable:!0,value:void 0}),Object.defineProperty(this,wn,{writable:!0,value:void 0}),Object.defineProperty(this,yn,{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,Sn,{writable:!0,value:void 0}),Object.defineProperty(this,Tn,{writable:!0,value:void 0}),Object.defineProperty(this,kn,{writable:!0,value:void 0}),Object.defineProperty(this,On,{writable:!0,value:void 0}),cn(this,un)[un]={},cn(this,yn)[yn]=(e,n)=>(cn(this,un)[un][e]?.push(n)||(cn(this,un)[un][e]=[n]),()=>cn(this,An)[An](e,n)),cn(this,bn)[bn]=e=>{null!=e&&(cn(this,wn)[wn]=e.map((({address:e})=>new on({address:e,publicKey:Se.decode(e)})))),cn(this,vn)[vn]("change",{accounts:this.accounts})},cn(this,In)[In]=async()=>(cn(this,vn)[vn]("change",{accounts:this.accounts}),{accounts:this.accounts}),cn(this,Sn)[Sn]=async()=>{cn(this,vn)[vn]("change",{accounts:this.accounts})},cn(this,Tn)[Tn]=async(...e)=>{let n=[];for(let{account:t,...a}of e){let{signature:e}=await cn(this,fn)[fn].signMessage({...a,address:t.address});n.push({signedMessage:a.message,signature:e})}return n},cn(this,kn)[kn]=async(...e)=>{let n=[];for(let t of e){let{signature:e}=await cn(this,fn)[fn].signAndSendTransaction({...t,transaction:t.transaction,address:t.account.address,chain:t.chain||"solana:mainnet",options:t.options});n.push({signature:e})}return n},cn(this,On)[On]=async(...e)=>{let n=[];for(let{transaction:t,account:a,options:i,chain:r}of e){let{signedTransaction:e}=await cn(this,fn)[fn].signTransaction({transaction:t,address:a.address,chain:r||"solana:mainnet",options:i});n.push({signedTransaction:e})}return n},cn(this,mn)[mn]=e,cn(this,gn)[gn]=n,cn(this,pn)[pn]=t,cn(this,fn)[fn]=a,cn(this,wn)[wn]=[],cn(this,hn)[hn]=!0,a.on("accountChanged",cn(this,bn)[bn],this),cn(this,bn)[bn](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:Xn});function nt(){let{ready:n}=Z(),{user:t}=ve(),{signMessage:a}=zn(),{signTransaction:i}=Zn(),{signAndSendTransaction:r}=function(){let n=e(),{isHeadlessSigning:t,openModal:a}=we(),{setModalData:i}=j(),{signTransaction:r}=Zn(),s=Qn(),{user:o}=ve(),{signWithUserSigner:c}=Te();return{signAndSendTransaction:async({transaction:e,address:l,chain:d="solana:mainnet",options:p})=>{async function g(e){if(p?.sponsor)return await(async e=>{if(!h)throw new fe("Sponsoring transactions is only supported for wallets on the TEE stack",he.INVALID_DATA);let t=new u({appId:n.id,clientId:n.appClientId,storage:z}),a=await m(t,c,{chain_type:"solana",method:"signAndSendTransaction",sponsor:!0,params:{transaction:Buffer.from(e).toString("base64"),encoding:"base64"},caip2:`solana:${(await s(d).rpc.getGenesisHash().send()).substring(0,32)}`,wallet_id:f.id});if(a.data&&"hash"in a.data)return{signature:Se.decode(a.data.hash)};throw Error("Failed to sign and send transaction")})(e);let{signedTransaction:t}=await r({transaction:e,address:l,chain:d,options:{...p,uiOptions:{...p?.uiOptions,showWalletUIs:!1}}}),{signature:a}=await s(d).sendAndConfirmTransaction(t);return{signature:a}}if(t({showWalletUIs:p?.uiOptions?.showWalletUIs}))return g(e);let f=K(o,l);if("privy"!==f?.walletClientType)throw new fe("Wallet is not a Privy wallet",void 0,he.EMBEDDED_WALLET_NOT_FOUND);let h=G(f);return new Promise((async(t,r)=>{let s,c,{entropyId:u,entropyIdVerifier:m}=Q(o,f);function w(e){return n=>{r(n instanceof fe?n:new fe("Failed to connect to wallet",n,e))}}let y={account:f,transaction:e,chain:d,signOnly:!1,uiOptions:p?.uiOptions||{},onConfirm:g,onSuccess:t,onFailure:w(he.TRANSACTION_FAILURE),isSponsored:!!p?.sponsor},v={recoveryMethod:f.recoveryMethod,connectingWalletAddress:f.address,entropyId:u,entropyIdVerifier:m,isUnifiedWallet:h,onCompleteNavigateTo:Gn,onFailure:w(he.UNKNOWN_CONNECT_WALLET_ERROR)};n.fundingConfig&&(s=Ae({address:l,appConfig:n,methodScreen:H,fundWalletConfig:{...p,asset:"native-currency",chain:d},externalSolanaFundingScreen:lt}),c={amount:n.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:d,destinationAddress:l,afterSuccessScreen:Gn,sourceWalletData:void 0}),i({connectWallet:v,standardSignAndSendTransaction:y,funding:s,solanaFundingData:c}),a(Y)}))}}}(),s=o((()=>{let e=[...X(t).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],n=D(t);return n.length?[...e,...n]:e}),[t]),c=o((()=>({signMessage:async({message:e,address:n,options:t})=>await a({message:e,address:n,options:t}),signTransaction:async({transaction:e,address:n,chain:t,options:a})=>await i({transaction:e,address:n,chain:t,options:a}),async signAndSendTransaction({transaction:e,address:n,chain:t,options:a}){let{signature:i}=await r({transaction:e,address:n,chain:t,options:a});return{signature:i}}})),[a,i,r]);return d((()=>{Xn?.setImplementation(c)}),[c]),d((()=>{var e;!n||(e=et.accounts).length===s.length&&e.every(((e,n)=>e.address===s[n]?.address))||Xn?.emit("accountChanged",s)}),[n,s]),{ready:n,wallet:et}}function tt(){let{client:e}=we(),{ready:n,wallet:t}=nt(),[a,i]=l([]),[r,s]=l([]);return d((()=>{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]),d((()=>{i(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let n=()=>{i(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",n),()=>{e.connectors?.off("connectorInitialized",n)}}),[n,e.connectors]),{ready:n,wallets:r}}function at(){let{ready:e,wallets:n}=tt();return{ready:e,wallets:o((()=>n.flatMap((e=>e.accounts.map((n=>new g({wallet:e,account:n})))))),[n])}}function it(e){return Ue().decode(e)}function rt(e){return BigInt(Math.floor(1e9*parseFloat(e)))}function st(e){return+ot.format(parseFloat(e.toString())/1e9)}let ot=Intl.NumberFormat(void 0,{maximumFractionDigits:8});async function ct({tx:e,solanaClient:n,amount:t,asset:a,tokenPrice:i}){if(!e)return null;if("SOL"===a&&i){let a=rt(t),r=q(a,i),s=await Dn({solanaClient:n,tx:e});return{amountInUsd:r,feeInUsd:i?q(s,i):void 0,totalInUsd:q(a+s,i)}}if("USDC"===a&&i){let a="$"+t,r=await Dn({solanaClient:n,tx:e}),s=function(e,n){let t=parseFloat(e.toString())/ne*n;return t<.01?0:t}(r,i);return{amountInUsd:a,feeInUsd:q(r,i),totalInUsd:"$"+(parseFloat(t)+s).toFixed(2)}}if("SOL"===a){let a=rt(t),i=await Dn({solanaClient:n,tx:e});return{amountInSol:t+" SOL",feeInSol:st(i)+" SOL",totalInSol:st(a+i)+" SOL"}}return{amountInUsdc:t+" USDC",feeInSol:st(await Dn({solanaClient:n,tx:e}))+" SOL"}}const lt={component:function(){let t=e(),{closePrivyModal:o,createAnalyticsEvent:c}=we(),{data:u,setModalData:p,navigate:m}=j(),{wallets:g}=at(),[h,w]=l("preparing"),[y,v]=l(),[A,b]=l(),[I,S]=l();if(!u?.solanaFundingData)throw Error("Funding config is missing");if(!u.solanaFundingData.sourceWalletData)throw Error("Funding config is missing source wallet data");let{amount:k,asset:F,chain:x,sourceWalletData:P,destinationAddress:U,afterSuccessScreen:W}=u.solanaFundingData,M=g.find((e=>e.address===P.address&&te(P.walletClientType)===te(e.standardWallet.name))),B=Qn()(x),{tokenPrice:D,isTokenPriceLoading:L}=ae("solana");return d((()=>{if("preparing"!==h||L||!M)return;let e="SOL"===F?rt(k):function(e){return BigInt(Math.floor(1e6*parseFloat(e)))}(k);b({amount:("SOL"===F&&D?q(e,D):k)??k}),("SOL"===F?async function({solanaClient:e,source:n,destination:t,amountInLamports:a}){let{value:i}=await e.rpc.getLatestBlockhash().send(),r={address:n},s=Ce(De({version:0}),(e=>Le(r,e)),(e=>_e(i,e)),(e=>Ne(Re({amount:a,source:r,destination:t}),e)),(e=>xe(e)));return new Uint8Array(Pe().encode(s))}({solanaClient:B,source:M.address,destination:U,amountInLamports:e}):async function({solanaClient:e,source:n,destination:t,amountInBaseUnits:a}){let i=ee(e.chain),{value:r}=await e.rpc.getLatestBlockhash().send(),s={address:n},[o]=await Ve({mint:i,owner:n,tokenProgram:_}),[c]=await Ve({mint:i,owner:t,tokenProgram:_}),[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=Je({payer:s,ata:c,owner:t,mint:i}),p=Ce(De({version:0}),(e=>Le(s,e)),(e=>_e(r,e)),(e=>d?.value?e:Ne(u,e)),(e=>Ne(qe({source:o,destination:c,authority:s,amount:a}),e)),(e=>xe(e)));return new Uint8Array(Pe().encode(p))}({solanaClient:B,source:M.address,destination:U,amountInBaseUnits:e})).then(v).catch((e=>{w("error"),S(e)}))}),[h,k,F,x,M,U,L,D]),d((()=>{"preparing"===h&&y&&ct({tx:y,solanaClient:B,amount:k,asset:F,tokenPrice:D}).then((e=>{w("loaded"),b({amount:e?.amountInUsd??e?.amountInUsdc??e?.amountInSol??k,fee:e?.feeInUsd??e?.feeInSol,total:e?.totalInUsd??e?.totalInSol})})).catch((e=>{w("error"),S(e)}))}),[y,k,F,h,D]),d((()=>{"error"===h&&I&&(p({errorModalData:{error:I,previousScreen:lt},solanaFundingData:u.solanaFundingData}),m(ie,!1))}),[h,m]),d((()=>{if("success"!==h)return;let e=setTimeout(W?()=>m(W):o,n);return()=>clearTimeout(e)}),[h]),/*#__PURE__*/i(r,"success"===h?{children:[/*#__PURE__*/a(re,{}),/*#__PURE__*/a(se,{}),/*#__PURE__*/i(oe,{children:[/*#__PURE__*/a(s,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/a(T,{title:"Success!",description:`You’ve successfully added ${k} ${F} to your ${t.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/a(O,{}),/*#__PURE__*/a(C,{})]}:"preparing"===h||"loaded"===h||"sending"===h?{children:[/*#__PURE__*/a(re,{}),/*#__PURE__*/a(ce,{style:{marginTop:"16px"},children:/*#__PURE__*/a(le,{icon:M?.standardWallet.icon,name:M?.standardWallet.name})}),/*#__PURE__*/a(T,{style:{marginTop:"8px",marginBottom:"12px"},title:"sending"===h&&M?`Confirming with ${M.standardWallet.name}`:"Confirm transaction"}),/*#__PURE__*/a(Ke,{rows:[{label:"Source",value:f(P.address)},{label:"Destination",value:f(U)},{label:"Network",value:de(x)},{label:"Amount",value:A?.amount,isLoading:"preparing"===h},{label:"Estimated fee",value:A?.fee,isLoading:"preparing"===h},{label:"Total",value:A?.total,isLoading:"preparing"===h}]}),/*#__PURE__*/a(E,{style:{marginTop:"1rem"},loading:"preparing"===h||"sending"===h,onClick:function(){"loaded"===h&&y&&M&&(w("sending"),async function({transaction:e,chain:n,sourceWallet:t,solanaClient:a}){let{hasFunds:i}=await Ln({solanaClient:a,tx:e});if(!i)throw new fe(`Wallet ${f(t.address)} does not have enough funds.`,void 0,he.INSUFFICIENT_BALANCE);let r=it((await t.signAndSendTransaction({transaction:e,chain:n}).catch((e=>{throw new fe("Transaction was rejected by the user",e,he.TRANSACTION_FAILURE)}))).signature);return await Hn({rpcSubscriptions:a.rpcSubscriptions,signature:r,timeout:2e4}),r}({solanaClient:B,transaction:y,chain:x,sourceWallet:M}).then((e=>{w("success"),c({eventName:ue,payload:{provider:"external",status:"success",txHash:e,address:M.address,value:k,chainType:"solana",clusterName:x,token:F,destinationAddress:U,destinationValue:k,destinationChainType:"solana",destinationClusterName:x,destinationToken:F}})})).catch((e=>{w("error"),S(e)})))},children:"Confirm"}),/*#__PURE__*/a(C,{})]}:{children:[/*#__PURE__*/a(re,{}),/*#__PURE__*/a(pe,{}),/*#__PURE__*/a("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/a(C,{})]})}};function dt(n){t("fundSolanaWallet",n);let a=e(),{openModal:i}=we(),{setModalData:r}=j();return{fundWallet:async({address:e,options:n})=>{let t=n?.amount||a.fundingConfig?.defaultRecommendedAmount||"1",s=n?.asset||a.fundingConfig?.defaultRecommendedCurrency.asset||"native-currency",o=n?.chain||"solana:mainnet";r({funding:Ae({address:e,appConfig:a,methodScreen:H,fundWalletConfig:{...n,amount:t,asset:s,chain:o},externalSolanaFundingScreen:lt}),solanaFundingData:{amount:t,asset:"native-currency"===s?"SOL":"USDC",chain:o,destinationAddress:e,sourceWalletData:void 0}}),i(H)}}}function ut(){let{user:n,getAccessToken:t}=B(),{walletProxy:a,openModal:i,client:r}=we(),{setModalData:s}=j(),c=e();return o((()=>({exportWallet:e=>new Promise((async(o,l)=>{if(!n)return void l(new fe("User must be authenticated before exporting their Privy wallet"));let d=e?.address?K(n,e.address):me(n);if(!d)return void l(new fe("User must have an embedded wallet."));if(!be(d))return void l(Error(`Export is not supported for ${d.chainType} wallets`));let u=G(d),{entropyId:p,entropyIdVerifier:m}=Q(n,d);await t()?a?(s({connectWallet:{recoveryMethod:d.recoveryMethod,connectingWalletAddress:d.address,isUnifiedWallet:u,entropyId:p,entropyIdVerifier:m,onCompleteNavigateTo:ge,onFailure:l,shouldForceMFA:!0},keyExport:{appId:c.id,appClientId:c.appClientId,origin:r.apiUrl,address:d.address,entropyId:p,entropyIdVerifier:m,hdWalletIndex:d.walletIndex,chainType:d.chainType,walletId:d.id,isUnifiedWallet:u,imported:d.imported,onSuccess:o,onFailure:l}}),i(Y)):l(new fe("Wallet not ready for export")):l(new fe("Must have valid access token."))}))})),[n,t,a,i,r,s,c])}export{He as S,ut as a,Kn as b,at as c,tt as d,Dn as f,it as g,Ln as s,dt as u};
|