@privy-io/react-auth 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/cjs/{SignRequestScreen-CvBcoZRA.js → SignRequestScreen-BtiA_kjR.js} +19 -19
  2. package/dist/cjs/abstract-smart-wallets.js +1 -1
  3. package/dist/cjs/index.js +7 -7
  4. package/dist/cjs/{smart-wallets-Cgmp6lBz.js → smart-wallets-CT6HYICU.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 +2 -0
  9. package/dist/cjs/{useActiveWallet-DAK4USsc.js → useActiveWallet-DygS7fQB.js} +1 -1
  10. package/dist/cjs/{usePrivy-BQiDRA6a.js → usePrivy-8s4mCLcX.js} +1 -1
  11. package/dist/dts/extended-chains.d.mts +1 -1
  12. package/dist/dts/extended-chains.d.ts +1 -1
  13. package/dist/dts/farcaster.d.mts +1 -1
  14. package/dist/dts/farcaster.d.ts +1 -1
  15. package/dist/dts/index.d.mts +6 -4
  16. package/dist/dts/index.d.ts +6 -4
  17. package/dist/dts/smart-wallets.d.mts +2 -2
  18. package/dist/dts/smart-wallets.d.ts +2 -2
  19. package/dist/dts/solana.d.mts +4 -5
  20. package/dist/dts/solana.d.ts +4 -5
  21. package/dist/dts/{types-C97UOzaM.d.mts → types-tFJ_e9u8.d.mts} +5 -5
  22. package/dist/dts/{types-C97UOzaM.d.ts → types-tFJ_e9u8.d.ts} +5 -5
  23. package/dist/dts/ui.d.mts +1 -1
  24. package/dist/dts/ui.d.ts +1 -1
  25. package/dist/esm/{SignRequestScreen-Dnn_x6kV.mjs → SignRequestScreen-Dkx-HBRI.mjs} +17 -17
  26. package/dist/esm/abstract-smart-wallets.mjs +1 -1
  27. package/dist/esm/extended-chains.mjs +1 -1
  28. package/dist/esm/farcaster.mjs +1 -1
  29. package/dist/esm/index.mjs +4 -4
  30. package/dist/esm/{internal-context-LlMdpfkb.mjs → internal-context-CfE_S5P-.mjs} +1 -1
  31. package/dist/esm/{privy-context-C7K3ZBW-.mjs → privy-context-DDSW3jEM.mjs} +1 -1
  32. package/dist/esm/{smart-wallets-D86YXRN5.mjs → smart-wallets-BElFh8An.mjs} +1 -1
  33. package/dist/esm/smart-wallets.mjs +1 -1
  34. package/dist/esm/solana.mjs +1 -1
  35. package/dist/esm/ui.mjs +2 -2
  36. package/dist/esm/use-export-wallet-OoiI5as_.mjs +1 -0
  37. package/dist/esm/{use-sign-with-user-signer-DwqsbciW.mjs → use-sign-with-user-signer-DVcbjNtZ.mjs} +1 -1
  38. package/dist/esm/{useActiveWallet-YrSgEFNG.mjs → useActiveWallet-BjD-txC9.mjs} +1 -1
  39. package/dist/esm/{usePrivy-CYAVrCyA.mjs → usePrivy-BJYprMT0.mjs} +1 -1
  40. package/package.json +6 -6
  41. package/dist/cjs/use-export-wallet-Crjmwv6E.js +0 -2
  42. package/dist/esm/use-export-wallet-DVZxxj2x.mjs +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@privy-io/react-auth",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "description": "React client for the Privy Auth API",
5
5
  "keywords": [
6
6
  "authentication",
@@ -152,10 +152,10 @@
152
152
  "@heroicons/react": "^2.1.1",
153
153
  "@marsidev/react-turnstile": "^0.4.1",
154
154
  "@privy-io/api-base": "1.7.1",
155
- "@privy-io/chains": "0.0.2",
155
+ "@privy-io/chains": "0.0.3",
156
156
  "@privy-io/ethereum": "0.0.2",
157
- "@privy-io/js-sdk-core": "0.56.1",
158
- "@privy-io/public-api": "2.49.0",
157
+ "@privy-io/js-sdk-core": "0.56.2",
158
+ "@privy-io/public-api": "2.50.0",
159
159
  "@privy-io/urls": "*",
160
160
  "@scure/base": "^1.2.5",
161
161
  "@simplewebauthn/browser": "^9.0.1",
@@ -191,7 +191,7 @@
191
191
  "@privy-io/build-config": "*",
192
192
  "@privy-io/eslint-config-custom": "*",
193
193
  "@privy-io/eslint-plugin-privy-rules": "*",
194
- "@privy-io/public-api": "2.49.0",
194
+ "@privy-io/public-api": "2.50.0",
195
195
  "@privy-io/testing": "*",
196
196
  "@rollup/plugin-commonjs": "^26.0.1",
197
197
  "@rollup/plugin-node-resolve": "^15.3.0",
@@ -232,7 +232,7 @@
232
232
  "glob": "^10.3.12",
233
233
  "jest": "^29.7.0",
234
234
  "jest-environment-jsdom": "^29.7.0",
235
- "rollup": "^4.28.0",
235
+ "rollup": "4.52.4",
236
236
  "rollup-plugin-copy": "^3.5.0",
237
237
  "rollup-plugin-dts": "^6.1.1",
238
238
  "storybook": "7.6.20",
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("./SignRequestScreen-CvBcoZRA.js"),t=require("react/jsx-runtime"),n=require("@heroicons/react/24/outline/CheckCircleIcon"),a=require("react"),r=require("@privy-io/js-sdk-core"),i=require("./paths-B00ZrFQm.js"),s=require("./internal-context-DNWjSiYq.js"),o=require("./privy-context-NMR-GjnL.js"),l=require("./usePrivy-BQiDRA6a.js"),c=require("eventemitter3"),d=require("@scure/base"),u=require("styled-components"),p=require("@solana/kit"),m=require("./use-sign-with-user-signer-Q0_LRVtz.js"),g=require("@solana-program/system"),f=require("@solana-program/token");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var y=/*#__PURE__*/h(n),w=/*#__PURE__*/h(c);function v({rows:n}){/*#__PURE__*/return t.jsx(e.Rows,{children:n.filter((e=>!!e)).map(((n,a)=>null!=n.value||n.isLoading?/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:n.label}),/*#__PURE__*/t.jsx(e.Value,{$isLoading:n.isLoading,children:n.value})]},a):null))})}const A=["solana:mainnet","solana:devnet","solana:testnet"];function S(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var T=0,I="__private_"+T+++"__implementation";class b extends w.default{setImplementation(e){S(this,I)[I]=e}async signMessage(e){return S(this,I)[I].signMessage(e)}async signAndSendTransaction(e){return S(this,I)[I].signAndSendTransaction(e)}async signTransaction(e){return S(this,I)[I].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,I,{writable:!0,value:void 0}),S(this,I)[I]=e}}function C(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var E=0;function P(e){return"__private_"+E+++"_"+e}var x=/*#__PURE__*/P("_address"),O=/*#__PURE__*/P("_publicKey"),k=/*#__PURE__*/P("_chains"),F=/*#__PURE__*/P("_features"),_=/*#__PURE__*/P("_label"),M=/*#__PURE__*/P("_icon");class j{get address(){return C(this,x)[x]}get publicKey(){return C(this,O)[O].slice()}get chains(){return C(this,k)[k].slice()}get features(){return C(this,F)[F].slice()}get label(){return C(this,_)[_]}get icon(){return C(this,M)[M]}constructor({address:e,publicKey:t,label:n,icon:a}){Object.defineProperty(this,x,{writable:!0,value:void 0}),Object.defineProperty(this,O,{writable:!0,value:void 0}),Object.defineProperty(this,k,{writable:!0,value:void 0}),Object.defineProperty(this,F,{writable:!0,value:void 0}),Object.defineProperty(this,_,{writable:!0,value:void 0}),Object.defineProperty(this,M,{writable:!0,value:void 0}),C(this,x)[x]=e,C(this,O)[O]=t,C(this,k)[k]=A,C(this,_)[_]=n,C(this,M)[M]=a,C(this,F)[F]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===j&&Object.freeze(this)}}function W(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var U=0;function D(e){return"__private_"+U+++"_"+e}var L=/*#__PURE__*/D("_listeners"),R=/*#__PURE__*/D("_version"),B=/*#__PURE__*/D("_name"),N=/*#__PURE__*/D("_icon"),$=/*#__PURE__*/D("_injection"),V=/*#__PURE__*/D("_isPrivyWallet"),q=/*#__PURE__*/D("_accounts"),G=/*#__PURE__*/D("_on"),J=/*#__PURE__*/D("_emit"),K=/*#__PURE__*/D("_off"),Y=/*#__PURE__*/D("_connected"),H=/*#__PURE__*/D("_connect"),Q=/*#__PURE__*/D("_disconnect"),Z=/*#__PURE__*/D("_signMessage"),z=/*#__PURE__*/D("_signAndSendTransaction"),X=/*#__PURE__*/D("_signTransaction");function ee(e,...t){W(this,L)[L][e]?.forEach((e=>e.apply(null,t)))}function te(e,t){W(this,L)[L][e]=W(this,L)[L][e]?.filter((e=>t!==e))}const ne=/*#__PURE__*/u.styled.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)")),ae=({instruction:n,fees:a,transactionInfo:r,solPrice:i,chain:s})=>/*#__PURE__*/t.jsxs(e.Rows,{children:[r?.action&&/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:"Action"}),/*#__PURE__*/t.jsx(e.Value,{children:r.action})]}),null!=n?.total&&/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:"Total"}),/*#__PURE__*/t.jsx(e.Value,{children:n.total})]}),!n?.total&&null!=n?.amount&&/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:"Total"}),/*#__PURE__*/t.jsx(e.Value,{children:/*#__PURE__*/t.jsx(e.SolanaPriceDisplay,{quantities:[n.amount,a],tokenPrice:i})})]}),/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:"Fees"}),/*#__PURE__*/t.jsx(e.Value,{children:/*#__PURE__*/t.jsx(e.SolanaPriceDisplay,{quantities:[a],tokenPrice:i})})]}),n?.to&&/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:"To"}),/*#__PURE__*/t.jsx(e.Value,{children:/*#__PURE__*/t.jsx(e.WalletLink,{walletAddress:n.to,chainId:s,chainType:"solana"})})]})]}),re=({fees:n,onClose:a,receiptHeader:r,receiptDescription:i,transactionInfo:s,solPrice:o,signOnly:l,instruction:c,chain:d})=>/*#__PURE__*/t.jsxs(t.Fragment,{children:[/*#__PURE__*/t.jsx(e.ModalHeader,{onClose:a}),/*#__PURE__*/t.jsx(e.e$2,{style:{marginBottom:"16px"},children:/*#__PURE__*/t.jsxs("div",{children:[/*#__PURE__*/t.jsx(ne,{color:"var(--privy-color-success-light)"}),/*#__PURE__*/t.jsx(y.default,{height:38,width:38,strokeWidth:2,stroke:"var(--privy-color-success)"})]})}),/*#__PURE__*/t.jsx(e.CenteredScreenHeader,{title:r??`Transaction ${l?"signed":"complete"}!`,description:i??"You're all set."}),/*#__PURE__*/t.jsx(ae,{solPrice:o,instruction:c,fees:n,transactionInfo:s,chain:d}),/*#__PURE__*/t.jsx(e.Grow,{}),/*#__PURE__*/t.jsx(ie,{loading:!1,onClick:a,children:"Close"}),/*#__PURE__*/t.jsx(e.RefactorSpacerBottom,{}),/*#__PURE__*/t.jsx(e.BlobbyFooter,{})]});let ie=/*#__PURE__*/u.styled(e.PrimaryButton).withConfig({displayName:"SubmitButton",componentId:"sc-3cb7ee42-0"})(["&&{margin-top:24px;}transition:color 350ms ease,background-color 350ms ease;"]);function se(e){return new Uint8Array(p.getTransactionDecoder().decode(e).messageBytes)}async function oe(e,t){try{return await e}catch{return t}}const le=(...e)=>{if("undefined"==typeof Buffer)throw new i.PrivyClientError("Buffer is not defined.",void 0,i.PrivyErrorCode.BUFFER_NOT_DEFINED);return Buffer.from(...e)};function ce(e){switch(e){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet"}}async function de({privyClient:t,chain:n,mint:a}){let r=e.DEFAULT_TOKENS_DATA[n];if(!r[a]){let e=await t.getSplTokenMetadata({mintAddress:a,cluster:ce(n)});e&&(r[a]={address:a,symbol:e.symbol,decimals:e.decimals})}return r[a]}async function ue({solanaClient:e,tx:t}){let n=p.getBase64Decoder().decode(se(t)),{value:a}=await e.rpc.getFeeForMessage(n).send();return a??0n}async function pe({solanaClient:e,tx:t,replaceRecentBlockhash:n}){let{value:a}=await e.rpc.simulateTransaction(p.getBase64Decoder().decode(t),{commitment:"confirmed",encoding:"base64",sigVerify:!1,replaceRecentBlockhash:n}).send();if("BlockhashNotFound"===a.err&&n)throw Error("Simulation failed: Blockhash not found");return"BlockhashNotFound"===a.err?await pe({solanaClient:e,tx:t,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 me({tx:t,solanaClient:n,privyClient:a,checkFunds:r}){let i=p.getCompiledTransactionMessageDecoder().decode(se(t)),s=i.staticAccounts[0]??"",o=await ue({solanaClient:n,tx:t}),l=r?await oe(pe({solanaClient:n,tx:t})):void 0,c=l?.hasFunds??!0,d={},u=[],m=await async function({solanaClient:e,message:t}){if(!("addressTableLookups"in t)||!t.addressTableLookups)return[...t.staticAccounts];let n=t.addressTableLookups.map((e=>e.lookupTableAddress)),a=await p.fetchAddressesForLookupTables(n,e.rpc),r=n.map(((e,n)=>[...t.addressTableLookups[n]?.writableIndexes.map((t=>{let r=a[e]?.[t];if(r)return{key:r,isWritable:!0,altIdx:n}}))??[],...t.addressTableLookups[n]?.readonlyIndexes.map((t=>{let r=a[e]?.[t];if(r)return{key:r,isWritable:!1,altIdx:n}}))??[]])).flat().filter((e=>!!e)).sort(((e,t)=>e.isWritable!==t.isWritable?e.isWritable?-1:1:e.altIdx-t.altIdx)).map((({key:e})=>e));return[...t.staticAccounts,...r]}({solanaClient:n,message:i});for(let t of i.instructions){let r=i.staticAccounts[t.programAddressIndex]||"";if(r!==e.TOKEN_PROGRAM_ID&&r!==e.TOKEN_2022_PROGRAM_ID)if(r!==e.SYSTEM_PROGRAM_ID){if(r===e.ASSOCIATED_TOKEN_PROGRAM_ID){let e=await oe(function(e,t,n){let[a,r,i,s]=e.accountIndices?.map((e=>t[e]))??[];return{type:"ata-creation",program:n,payer:a,ata:r,owner:i,mint:s}}(t,m,r));if(!e){u.push({type:"unknown",program:r,discriminator:t.data?.[0]});continue}if(u.push(e),e.ata&&e.owner&&e.mint){d[e.ata]={owner:e.owner,mint:e.mint};continue}}if(e.RAYDIUM_SWAP_PROGRAM_IDS.includes(r)){let e=await oe(ye(t,m,n,a,r));if(!e){u.push({type:"unknown",program:r,discriminator:t.data?.[0]});continue}u.push(e)}else if(e.JUPITER_SWAP_PROGRAM_IDS.includes(r)){let e=await oe(we(t,m,n,a,r));if(!e){u.push({type:"unknown",program:r,discriminator:t.data?.[0]});continue}u.push(e)}else u.push({type:"unknown",program:r,discriminator:t.data?.[0]})}else{let e=await oe(he(t,m));if(!e){u.push({type:"unknown",program:r,discriminator:t.data?.[0]});continue}u.push(e)}else{let e=await oe(fe(t,m,n,a,d,r));if(!e){u.push({type:"unknown",program:r,discriminator:t.data?.[0]});continue}u.push(e),"spl-transfer"===e.type&&(e.fromAta&&e.fromAccount&&e.token.address&&(d[e.fromAta]??={owner:e.fromAccount,mint:e.token.address}),e.toAta&&e.toAccount&&e.token.address&&(d[e.toAta]??={owner:e.toAccount,mint:e.token.address}))}}return{spender:s,fee:o,instructions:u,hasFunds:!!c}}function ge(e,t=0){try{return function(e,t=0){let n=0n;for(let a=0;a<8;a++)n|=BigInt(e[t+a])<<BigInt(8*a);return n}(e,t)}catch{}try{return e.readBigInt64LE(t)}catch{}let n=le(e);try{return((e,t=0)=>{let n=e[t],a=e[t+7];if(!n||!a)throw Error(`Buffer offset out of range: first: ${n}, last: ${a}.`);return(BigInt(e[t+4]+256*e[t+5]+65536*e[t+6]+(a<<24))<<32n)+BigInt(n+256*e[++t]+65536*e[++t]+16777216*e[++t])})(n)}catch{}try{return n.subarray(t).readBigInt64LE()}catch{}try{return n.readBigInt64LE(t)}catch{}return 0n}async function fe(e,t,n,a,r,i){let s=e.data?.[0],o=e.accountIndices?.map((e=>t[e]))??[];if(1===s){let[e,t,n]=o;return{type:"spl-init-account",program:i,account:e,mint:t,owner:n}}if(3===s){let t,s,[l,c,d]=o,u="",p=c?r[c]:void 0;if(p)t=p.owner,u=p.mint;else if(c){let e=await n.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send(),a=e.value?.data;t=a?.parsed?.info?.owner,u=a?.parsed?.info?.mint??"",s=a?.parsed?.info?.tokenAmount?.decimals}if(!u&&l){let e=await n.rpc.getAccountInfo(l,{commitment:"confirmed",encoding:"jsonParsed"}).send(),t=e.value?.data;u=t?.parsed?.info?.mint??""}let m=await de({privyClient:a,chain:n.chain,mint:u}),g=m?.symbol??"";return s??=m?.decimals??9,{type:"spl-transfer",program:i,fromAta:l,fromAccount:d,toAta:c,toAccount:t,value:ge(e.data,1),token:{symbol:g,decimals:s,address:u}}}if(9===s){let[e,t,n]=o;return{type:"spl-close-account",program:i,source:e,destination:t,owner:n}}if(17===s)return{type:"spl-sync-native",program:i};throw Error(`Token program instruction type ${s} not supported`)}async function he(t,n){let a=t.data?.[0],r=t.accountIndices?.map((e=>n[e]))??[];if(0===a){let[,n]=r;return{type:"create-account",program:e.SYSTEM_PROGRAM_ID,account:n?.toString(),value:ge(t.data,4),withSeed:!1}}if(2===a){let[n,a]=r;return{type:"sol-transfer",program:e.SYSTEM_PROGRAM_ID,fromAccount:n,toAccount:a,token:{symbol:"SOL",decimals:9},value:ge(t.data,4),withSeed:!1}}if(3===a){let[,n]=r;return{type:"create-account",program:e.SYSTEM_PROGRAM_ID,account:n,withSeed:!0,value:ge(t.data.slice(t.data.length-32-8-8))}}if(11===a){let[n,a]=r;return{type:"sol-transfer",program:e.SYSTEM_PROGRAM_ID,fromAccount:n,toAccount:a,value:ge(t.data,4),token:{symbol:"SOL",decimals:9},withSeed:!0}}throw Error(`System program instruction type ${a} not supported`)}async function ye(e,t,n,a,r){let i=e.accountIndices?.map((e=>t[e]))??[],s=e.data?.[0];if(143===s){let t=i[10],s=i[11];return{type:"raydium-swap-base-input",program:r,mintIn:t,mintOut:s,tokenIn:t?await de({privyClient:a,chain:n.chain,mint:t}):void 0,tokenOut:s?await de({privyClient:a,chain:n.chain,mint:s}):void 0,amountIn:ge(e.data,8),minimumAmountOut:ge(e.data,16)}}if(55===s){let t=i[10],s=i[11];return{type:"raydium-swap-base-output",program:r,mintIn:t,mintOut:s,tokenIn:t?await de({privyClient:a,chain:n.chain,mint:t}):void 0,tokenOut:s?await de({privyClient:a,chain:n.chain,mint:s}):void 0,maxAmountIn:ge(e.data,8),amountOut:ge(e.data,16)}}throw Error(`Raydium swap program instruction type ${s} not supported`)}async function we(e,t,n,a,r){let i=e.data?.[0],s=e.accountIndices?.map((e=>t[e]))??[];if([208,51,239,151,123,43,237,92].includes(i)){let t=s[5],i=s[6];return{type:"jupiter-swap-exact-out-route",program:r,mintIn:t,mintOut:i,tokenIn:t?await de({privyClient:a,chain:n.chain,mint:t}):void 0,tokenOut:i?await de({privyClient:a,chain:n.chain,mint:i}):void 0,outAmount:ge(e.data,e.data.length-1-2-8-8),quotedInAmount:ge(e.data,e.data.length-1-2-8)}}if([176,209,105,168,154,125,69,62].includes(i)){let t=s[7],i=s[8];return{type:"jupiter-swap-exact-out-route",program:r,mintIn:t,mintOut:i,tokenIn:t?await de({privyClient:a,chain:n.chain,mint:t}):void 0,tokenOut:i?await de({privyClient:a,chain:n.chain,mint:i}):void 0,outAmount:ge(e.data,e.data.length-1-2-8-8),quotedInAmount:ge(e.data,e.data.length-1-2-8)}}if([193,32,155,51,65,214,156,129].includes(i)){let t=s[7],i=s[8];return{type:"jupiter-swap-shared-accounts-route",program:r,mintIn:t,mintOut:i,tokenIn:t?await de({privyClient:a,chain:n.chain,mint:t}):void 0,tokenOut:i?await de({privyClient:a,chain:n.chain,mint:i}):void 0,inAmount:ge(e.data,e.data.length-1-2-8-8),quotedOutAmount:ge(e.data,e.data.length-1-2-8)}}throw[62,198,214,193,213,159,108,210].includes(i)&&console.warn("Jupiter swap program instruction 'claim' not implemented"),[116,206,27,191,166,19,0,73].includes(i)&&console.warn("Jupiter swap program instruction 'claim_token' not implemented"),[26,74,236,151,104,64,183,249].includes(i)&&console.warn("Jupiter swap program instruction 'close_token' not implemented"),[229,194,212,172,8,10,134,147].includes(i)&&console.warn("Jupiter swap program instruction 'create_open_orders' not implemented"),[28,226,32,148,188,136,113,171].includes(i)&&console.warn("Jupiter swap program instruction 'create_program_open_orders' not implemented"),[232,242,197,253,240,143,129,52].includes(i)&&console.warn("Jupiter swap program instruction 'create_token_ledger' not implemented"),[147,241,123,100,244,132,174,118].includes(i)&&console.warn("Jupiter swap program instruction 'create_token_account' not implemented"),[229,23,203,151,122,227,173,42].includes(i)&&console.warn("Jupiter swap program instruction 'route' not implemented"),[150,86,71,116,167,93,14,104].includes(i)&&console.warn("Jupiter swap program instruction 'route_with_token_ledger' not implemented"),[228,85,185,112,78,79,77,2].includes(i)&&console.warn("Jupiter swap program instruction 'set_token_ledger' not implemented"),[230,121,143,80,119,159,106,170].includes(i)&&console.warn("Jupiter swap program instruction 'shared_accounts_route_with_token_ledger' not implemented"),Error(`Jupiter swap program instruction type ${i} not supported`)}async function ve({rpcSubscriptions:e,signature:t,timeout:n}){let a=new AbortController,r=await e.signatureNotifications(t,{commitment:"confirmed"}).subscribe({abortSignal:a.signal}),i=await Promise.race([new Promise((e=>{setTimeout((()=>{a.abort(),e(Error("Transaction confirmation timed out"))}),n)})),new Promise((async e=>{for await(let t of r){if(a.abort(),t.value.err)return e(Error("Transaction confirmation failed"));e(void 0)}}))]);if(i instanceof Error)throw i}function Ae({rpc:e,rpcSubscriptions:t,chain:n,blockExplorerUrl:a}){let r=function({rpc:e,rpcSubscriptions:t}){return async n=>new Promise((async(a,r)=>{try{let r=await e.sendTransaction(le(n).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await ve({rpcSubscriptions:t,signature:r,timeout:1e4}),a({signature:new Uint8Array(p.getBase58Encoder().encode(r))})}catch(e){r(e)}}))}({rpc:e,rpcSubscriptions:t});return{rpc:e,rpcSubscriptions:t,chain:n,blockExplorerUrl:a,sendAndConfirmTransaction:r}}function Se(){let t=e.useAppConfig(),n=a.useMemo((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((e=>[e,t.solanaRpcs[e]?Ae({chain:e,rpc:t.solanaRpcs[e].rpc,rpcSubscriptions:t.solanaRpcs[e].rpcSubscriptions,blockExplorerUrl:t.solanaRpcs[e].blockExplorerUrl??`https://explorer.solana.com?cluster=${e.replace("solana:","")}`}):null])))),[t.solanaRpcs]);return a.useCallback((e=>{if(!n[e])throw Error(`No RPC configuration found for chain ${e}`);return n[e]}),[n])}const Te={component:()=>{let{data:n,onUserCloseViaDialogOrKeybindRef:i,setModalData:l,navigate:c}=e.usePrivyModal(),{client:d,closePrivyModal:u,walletProxy:m,showFiatPrices:g}=s.usePrivyInternal(),f=e.useAppConfig(),{user:h}=o.usePrivyContext(),y=Se()(n?.standardSignAndSendTransaction?.chain??"solana:mainnet"),[w,v]=a.useState(n?.standardSignAndSendTransaction?.transaction),[A,S]=a.useState(),[T,I]=a.useState(),[b,C]=a.useState({value:0n,isLoading:!1}),[E,P]=a.useState(!1),[x,O]=a.useState({}),[k,F]=a.useState(),_=n?.standardSignAndSendTransaction?.account,M=!!n?.standardSignAndSendTransaction?.signOnly,j=_?.imported?o.getImportedPrivySolanaWallets(h).find((e=>e.address===_.address)):o.getPrivyPrimaryWallet(h),{solPrice:W,isSolPriceLoading:U}=e.useGetSolPrice({enabled:g}),D=a.useMemo((()=>{if(!A)return;let t=A.spender,n=e.getNativeCurrencyFromLamports(A.fee),a=e.getNativeCurrencyFromLamports(b.value,3,!0),i=A.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))),s=i.at(0);if(!s||i.length>1)return{fee:n,spender:t,balance:a};if("sol-transfer"===s.type)return{fee:n,spender:t,balance:a,total:e.getNativeCurrencyFromLamports(s.value)};if("spl-transfer"===s.type)return{fee:n,spender:t,balance:a,total:`${r.formatTokenAmount({amount:s.value,decimals:s.token.decimals})} ${s.token.symbol}`};if("raydium-swap-base-input"===s.type&&s.tokenIn&&s.tokenOut){return{fee:n,spender:t,balance:a,swap:`${`${r.formatTokenAmount({amount:s.amountIn,decimals:s.tokenIn.decimals})} ${s.tokenIn.symbol}`} → ${`${r.formatTokenAmount({amount:s.minimumAmountOut,decimals:s.tokenOut.decimals})} ${s.tokenOut.symbol}`}`}}if("raydium-swap-base-output"===s.type&&s.tokenIn&&s.tokenOut){return{fee:n,spender:t,balance:a,swap:`${`${r.formatTokenAmount({amount:s.maxAmountIn,decimals:s.tokenIn.decimals})} ${s.tokenIn.symbol}`} → ${`${r.formatTokenAmount({amount:s.amountOut,decimals:s.tokenOut.decimals})} ${s.tokenOut.symbol}`}`}}if("jupiter-swap-shared-accounts-route"===s.type&&s.tokenIn&&s.tokenOut){return{fee:n,spender:t,balance:a,swap:`${`${r.formatTokenAmount({amount:s.inAmount,decimals:s.tokenIn.decimals})} ${s.tokenIn.symbol}`} → ${`${r.formatTokenAmount({amount:s.quotedOutAmount,decimals:s.tokenOut.decimals})} ${s.tokenOut.symbol}`}`}}if("jupiter-swap-exact-out-route"===s.type&&s.tokenIn&&s.tokenOut){return{fee:n,spender:t,balance:a,swap:`${`${r.formatTokenAmount({amount:s.quotedInAmount,decimals:s.tokenIn.decimals})} ${s.tokenIn.symbol}`} → ${`${r.formatTokenAmount({amount:s.outAmount,decimals:s.tokenOut.decimals})} ${s.tokenOut.symbol}`}`}}return{fee:n,spender:t,balance:a}}),[A,_?.address,b]),L=a.useMemo((()=>{let t;if(!A||!g||!W||U)return;function n(...t){return e.getFormattedUsdFromLamports(t.reduce(((e,t)=>e+t),0n),W??0)}_?.address===A.spender&&(t=n(A.fee));let a=n(b.value),i=A.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)).at(0);return!i||A.instructions.length>1?{fee:t,balance:a}:"sol-transfer"===i.type?{fee:t,balance:a,total:n(i.value,_?.address===A.spender?A.fee:0n)}:"spl-transfer"===i.type?{fee:t,balance:a,total:`${r.formatTokenAmount({amount:i.value,decimals:i.token.decimals})} ${i.token.symbol}`}:{fee:t,balance:a}}),[A,g,W,U,_?.address,b]);if(a.useEffect((()=>{!async function(){if(w&&d)try{I(void 0);let e=await me({tx:w,solanaClient:y,privyClient:d,checkFunds:!M});S(e)}catch(e){console.error("Failed to prepare transaction",e),I(e)}}()}),[w,y,d,M]),a.useEffect((()=>{(async function(){if(!_)return;C({value:b.value,isLoading:!0});let{value:e}=await y.rpc.getBalance(_.address,{commitment:"confirmed"}).send();C({value:e??0n,isLoading:!1})})().catch(console.error)}),[A]),!w||!n?.standardSignAndSendTransaction||!_){let a=Error("Invalid transaction request");/*#__PURE__*/return t.jsx(e.ErrorScreenView,{error:a,allowlistConfig:f.allowlistConfig,onRetry:()=>{n?.standardSignAndSendTransaction?.onFailure(a),u({shouldCallAuthOnSuccess:!1})}})}let R=()=>{if(!E)return x.signature||x.signedTransaction?n?.standardSignAndSendTransaction?.onSuccess({signature:x.signature,signedTransaction:x.signedTransaction}):n?.standardSignAndSendTransaction?.onFailure(k??T??Error("User exited the modal before submitting the transaction")),u({shouldCallAuthOnSuccess:!1})};i.current=R;let B=n.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.contractInfo?.imgUrl?/*#__PURE__*/t.jsx("img",{src:n.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgUrl,alt:n.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgAltText}):null,N=!!(n.funding&&n.funding.supportedOptions.length>0),$=!A?.hasFunds&&N;if(x.signature||x.signedTransaction){let e=A?.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)),a=1===e?.length?e?.at(0):void 0;/*#__PURE__*/return t.jsx(re,{fees:x.fees??0n,onClose:R,transactionInfo:n.standardSignAndSendTransaction?.uiOptions.transactionInfo,solPrice:W,receiptHeader:n.standardSignAndSendTransaction?.uiOptions.successHeader,receiptDescription:n.standardSignAndSendTransaction?.uiOptions.successDescription,chain:y.chain,signOnly:M,instruction:"sol-transfer"===a?.type?{to:a.toAccount,amount:a.value}:{to:a?.toAccount||a?.toAta,total:D?.total}})}return k?/*#__PURE__*/t.jsx(e.TransactionErrorView,{transactionError:k,chainId:y.chain,onClose:R,chainType:"solana",onRetry:async()=>{F(void 0);let{value:e}=await y.rpc.getLatestBlockhash().send();v(function(e,t){return p.pipe(p.getCompiledTransactionMessageDecoder().decode(se(e)),(e=>p.decompileTransactionMessage(e)),(e=>p.setTransactionMessageLifetimeUsingBlockhash(t,e)),(e=>p.compileTransaction(e)),(e=>new Uint8Array(p.getTransactionEncoder().encode(e))))}(w,e))}}):/*#__PURE__*/t.jsx(e.SendSolanaTransactionScreenView,{img:B,title:n.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.title||"Confirm transaction",subtitle:n.standardSignAndSendTransaction?.uiOptions?.description||`${f.name} wants your permission to approve the following transaction.`,cta:$?"Add funds":n.standardSignAndSendTransaction?.uiOptions?.buttonText||"Approve",instructions:A?.instructions??[],network:"solana:mainnet"==y.chain?"Solana":y.chain.replace("solana:",""),blockExplorerUrl:y.blockExplorerUrl,total:g?L?.total:D?.total,fee:g?L?.fee:D?.fee,balance:g?L?.balance:D?.balance,swap:D?.swap,transactingWalletAddress:_.address,disabled:!A?.hasFunds&&!N,isSubmitting:E,isPreparing:!A||b.isLoading,isTokenPriceLoading:g&&U,isMissingFunds:!A?.hasFunds,submitError:k??void 0,parseError:T,onClick:$?async()=>{if(_){if(!N)throw Error("Funding wallet is not enabled");l({...n,funding:{...n.funding,methodScreen:e.FundingMethodSelectionScreen},solanaFundingData:n?.solanaFundingData}),c(e.FundingMethodSelectionScreen)}}:async()=>{try{if(P(!0),E||!_||!m||!h||!j)return;let e=await n.standardSignAndSendTransaction.onConfirm(w);if("signature"in e){let t=await async function({solanaClient:e,signature:t}){let n=p.getBase58Decoder().decode(t),a=await e.rpc.getTransaction(n,{maxSupportedTransactionVersion:0,commitment:"confirmed",encoding:"base64"}).send().catch((()=>null));return a?{fee:a.meta?.fee??0n}:null}({solanaClient:y,signature:e.signature});return void O({...e,fees:t?.fee})}O(e)}catch(e){console.warn({transaction:w,error:e}),F(e)}finally{P(!1)}},onClose:R})}};function Ie(e,t,n){let a=structuredClone(p.getTransactionDecoder().decode(e)),r=p.address(t);return r in a.signatures&&(a.signatures[r]=n),new Uint8Array(p.getTransactionEncoder().encode(a))}function be(){let{isHeadlessSigning:t,walletProxy:n,initializeWalletProxy:a,recoverEmbeddedWallet:c,openModal:d,privy:u,client:p}=s.usePrivyInternal(),{user:g}=l.usePrivy(),{setModalData:f}=e.usePrivyModal(),{signWithUserSigner:h}=m.useSignWithUserSigner();return{signMessage:({message:s,address:l,options:m})=>new Promise((async(y,w)=>{let v=o.getPrivyWalletWithAddress(g,l);if("privy"!==v?.walletClientType)return void w(new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:A,entropyIdVerifier:S}=e.getEntropyDetailsForUser(g,v),T=o.getIsUnifiedWallet(v),I=le(s).toString("base64");if(I.length<1)return void w(new i.PrivyClientError("Message must be a non-empty string",void 0,i.PrivyErrorCode.INVALID_MESSAGE));let b=async()=>{let e;if(!g)throw Error("User must be authenticated before signing with a Privy wallet");let t=await p.getAccessToken();if(!t)throw Error("User must be authenticated to use their embedded wallet.");let i=n??await a(15e3);if(!i)throw Error("Failed to initialize embedded wallet proxy.");if(!await c({address:v.address}))throw Error("Unable to connect to wallet");if(T){let t=await r.rpc(u,h,{chain_type:"solana",method:"signMessage",params:{message:I,encoding:"base64"},wallet_id:v.id});if(!t.data||!("signature"in t.data))throw Error("Failed to sign message");e=t.data.signature}else{let{response:n}=await i.rpc({accessToken:t,entropyId:A,entropyIdVerifier:S,chainType:"solana",hdWalletIndex:v.walletIndex??0,requesterAppId:m?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:I}}});e=n.data.signature}return e};if(t({showWalletUIs:m?.uiOptions?.showWalletUIs}))try{let e=await b(),t=new Uint8Array(le(e,"base64"));y({signature:t})}catch(e){w(e)}else f({signMessage:{method:"solana_signMessage",data:I,confirmAndSign:b,onSuccess:e=>{y({signature:new Uint8Array(le(e,"base64"))})},onFailure:e=>{w(e)},uiOptions:m?.uiOptions??{}},connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,entropyId:A,entropyIdVerifier:S,isUnifiedWallet:T,onCompleteNavigateTo:e.SignRequestScreen,onFailure:e=>{w(new i.PrivyClientError("Failed to connect to wallet",e,i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR))}}}),d(e.EmbeddedWalletConnectingScreen)}))}}function Ce(){let{isHeadlessSigning:t,openModal:n}=s.usePrivyInternal(),{setModalData:a}=e.usePrivyModal(),{signMessage:r}=be(),{user:c}=l.usePrivy();return{signTransaction:async({transaction:s,options:l,chain:d="solana:mainnet",address:u})=>{async function p(e){let{signature:t}=await r({message:se(e),address:u,options:{...l,uiOptions:{...l?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:Ie(e,u,t)}}return t({showWalletUIs:l?.uiOptions?.showWalletUIs})?p(s):new Promise((async(t,r)=>{let m=o.getPrivyWalletWithAddress(c,u);if("privy"!==m?.walletClientType)return void r(new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:g,entropyIdVerifier:f}=e.getEntropyDetailsForUser(c,m),h=o.getIsUnifiedWallet(m);function y(e){return t=>{t instanceof i.PrivyClientError?r(t):r(new i.PrivyClientError("Failed to connect to wallet",t,e))}}let w={account:m,transaction:s,chain:d,signOnly:!0,uiOptions:l?.uiOptions||{},onConfirm:p,onSuccess:t,onFailure:y(i.PrivyErrorCode.TRANSACTION_FAILURE)};a({connectWallet:{recoveryMethod:m.recoveryMethod,connectingWalletAddress:m.address,entropyId:g,entropyIdVerifier:f,isUnifiedWallet:h,onCompleteNavigateTo:Te,onFailure:y(i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:w}),n(e.EmbeddedWalletConnectingScreen)}))}}}let Ee=new b({signTransaction:s.notImplementedWithMessage("signTransaction was not injected"),signAndSendTransaction:s.notImplementedWithMessage("signAndSendTransaction was not injected"),signMessage:s.notImplementedWithMessage("signMessage was not injected")}),Pe=new class{get version(){return W(this,R)[R]}get name(){return W(this,B)[B]}get icon(){return W(this,N)[N]}get chains(){return A.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:W(this,H)[H]},"standard:disconnect":{version:"1.0.0",disconnect:W(this,Q)[Q]},"standard:events":{version:"1.0.0",on:W(this,G)[G]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:W(this,z)[z]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:W(this,X)[X]},"solana:signMessage":{version:"1.0.0",signMessage:W(this,Z)[Z]},"privy:":{privy:{signMessage:W(this,$)[$].signMessage,signTransaction:W(this,$)[$].signTransaction,signAndSendTransaction:W(this,$)[$].signAndSendTransaction}}}}get accounts(){return W(this,q)[q].slice()}get isPrivyWallet(){return W(this,V)[V]}constructor({name:e,icon:t,version:n,injection:a,wallets:r}){Object.defineProperty(this,J,{value:ee}),Object.defineProperty(this,K,{value:te}),Object.defineProperty(this,L,{writable:!0,value:void 0}),Object.defineProperty(this,R,{writable:!0,value:void 0}),Object.defineProperty(this,B,{writable:!0,value:void 0}),Object.defineProperty(this,N,{writable:!0,value:void 0}),Object.defineProperty(this,$,{writable:!0,value:void 0}),Object.defineProperty(this,V,{writable:!0,value:void 0}),Object.defineProperty(this,q,{writable:!0,value:void 0}),Object.defineProperty(this,G,{writable:!0,value:void 0}),Object.defineProperty(this,Y,{writable:!0,value:void 0}),Object.defineProperty(this,H,{writable:!0,value:void 0}),Object.defineProperty(this,Q,{writable:!0,value:void 0}),Object.defineProperty(this,Z,{writable:!0,value:void 0}),Object.defineProperty(this,z,{writable:!0,value:void 0}),Object.defineProperty(this,X,{writable:!0,value:void 0}),W(this,L)[L]={},W(this,G)[G]=(e,t)=>(W(this,L)[L][e]?.push(t)||(W(this,L)[L][e]=[t]),()=>W(this,K)[K](e,t)),W(this,Y)[Y]=e=>{null!=e&&(W(this,q)[q]=e.map((({address:e})=>new j({address:e,publicKey:d.base58.decode(e)})))),W(this,J)[J]("change",{accounts:this.accounts})},W(this,H)[H]=async()=>(W(this,J)[J]("change",{accounts:this.accounts}),{accounts:this.accounts}),W(this,Q)[Q]=async()=>{W(this,J)[J]("change",{accounts:this.accounts})},W(this,Z)[Z]=async(...e)=>{let t=[];for(let{account:n,...a}of e){let{signature:e}=await W(this,$)[$].signMessage({...a,address:n.address});t.push({signedMessage:a.message,signature:e})}return t},W(this,z)[z]=async(...e)=>{let t=[];for(let{transaction:n,account:a,options:r,chain:i}of e){let{signature:e}=await W(this,$)[$].signAndSendTransaction({transaction:n,address:a.address,chain:i||"solana:mainnet",options:r});t.push({signature:e})}return t},W(this,X)[X]=async(...e)=>{let t=[];for(let{transaction:n,account:a,options:r,chain:i}of e){let{signedTransaction:e}=await W(this,$)[$].signTransaction({transaction:n,address:a.address,chain:i||"solana:mainnet",options:r});t.push({signedTransaction:e})}return t},W(this,B)[B]=e,W(this,N)[N]=t,W(this,R)[R]=n,W(this,$)[$]=a,W(this,q)[q]=[],W(this,V)[V]=!0,a.on("accountChanged",W(this,Y)[Y],this),W(this,Y)[Y](r)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:Ee});function xe(){let{ready:t}=e.useWallets(),{user:n}=l.usePrivy(),{signMessage:r}=be(),{signTransaction:c}=Ce(),{signAndSendTransaction:d}=function(){let t=e.useAppConfig(),{isHeadlessSigning:n,openModal:a}=s.usePrivyInternal(),{setModalData:r}=e.usePrivyModal(),{signTransaction:c}=Ce(),d=Se(),{user:u}=l.usePrivy();return{signAndSendTransaction:async({transaction:s,address:p,chain:m="solana:mainnet",options:g})=>{async function f(e){let{signedTransaction:t}=await c({transaction:e,address:p,chain:m,options:{...g,uiOptions:{...g?.uiOptions,showWalletUIs:!1}}}),{signature:n}=await d(m).sendAndConfirmTransaction(t);return{signature:n}}return n({showWalletUIs:g?.uiOptions?.showWalletUIs})?f(s):new Promise((async(n,c)=>{let d,h,y=o.getPrivyWalletWithAddress(u,p);if("privy"!==y?.walletClientType)return void c(new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:w,entropyIdVerifier:v}=e.getEntropyDetailsForUser(u,y),A=o.getIsUnifiedWallet(y);function S(e){return t=>{t instanceof i.PrivyClientError?c(t):c(new i.PrivyClientError("Failed to connect to wallet",t,e))}}let T={account:y,transaction:s,chain:m,signOnly:!1,uiOptions:g?.uiOptions||{},onConfirm:f,onSuccess:n,onFailure:S(i.PrivyErrorCode.TRANSACTION_FAILURE)},I={recoveryMethod:y.recoveryMethod,connectingWalletAddress:y.address,entropyId:w,entropyIdVerifier:v,isUnifiedWallet:A,onCompleteNavigateTo:Te,onFailure:S(i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)};t.fundingConfig&&(d=l.prepareSolanaFundingModalData({address:p,appConfig:t,methodScreen:e.FundingMethodSelectionScreen,fundWalletConfig:{...g,asset:"native-currency",chain:m},externalSolanaFundingScreen:Ue}),h={amount:t.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:m,destinationAddress:p,afterSuccessScreen:Te,sourceWalletData:void 0}),r({connectWallet:I,standardSignAndSendTransaction:T,funding:d,solanaFundingData:h}),a(e.EmbeddedWalletConnectingScreen)}))}}}(),u=a.useMemo((()=>{let e=[...o.getPrivySolanaHDWallets(n).sort(((e,t)=>(e.walletIndex??0)-(t.walletIndex??0)))],t=o.getImportedPrivySolanaWallets(n);return t.length?[...e,...t]:e}),[n]),p=a.useMemo((()=>({signMessage:async({message:e,address:t,options:n})=>await r({message:e,address:t,options:n}),signTransaction:async({transaction:e,address:t,chain:n,options:a})=>await c({transaction:e,address:t,chain:n,options:a}),async signAndSendTransaction({transaction:e,address:t,chain:n,options:a}){let{signature:r}=await d({transaction:e,address:t,chain:n,options:a});return{signature:r}}})),[r,c,d]);return a.useEffect((()=>{Ee?.setImplementation(p)}),[p]),a.useEffect((()=>{var e;!t||(e=Pe.accounts).length===u.length&&e.every(((e,t)=>e.address===u[t]?.address))||Ee?.emit("accountChanged",u)}),[t,u]),{ready:t,wallet:Pe}}function Oe(){let{client:e}=s.usePrivyInternal(),{ready:t,wallet:n}=xe(),[r,i]=a.useState([]),[o,l]=a.useState([]);return a.useEffect((()=>{let e=[n,...r.filter((e=>"solana"===e.chainType&&!!e.wallet.features)).map((e=>e.wallet))];l(e);let t=e.map((t=>t.features["standard:events"]?.on("change",(()=>{l([...e])}))));return()=>{t.forEach((e=>e?.()))}}),[r]),a.useEffect((()=>{if(!t)return;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)}}),[t,e.connectors]),{ready:t,wallets:o}}function ke(){let{ready:e,wallets:t}=Oe();return{ready:e,wallets:a.useMemo((()=>t.flatMap((e=>e.accounts.map((t=>new r.ConnectedStandardSolanaWallet({wallet:e,account:t})))))),[t])}}function Fe(e){return p.getBase58Decoder().decode(e)}function _e(e){return BigInt(Math.floor(1e9*parseFloat(e)))}function Me(e){return+je.format(parseFloat(e.toString())/1e9)}let je=Intl.NumberFormat(void 0,{maximumFractionDigits:8});async function We({tx:t,solanaClient:n,amount:a,asset:r,tokenPrice:i}){if(!t)return null;if("SOL"===r&&i){let r=_e(a),s=e.getFormattedUsdFromLamports(r,i),o=await ue({solanaClient:n,tx:t});return{amountInUsd:s,feeInUsd:i?e.getFormattedUsdFromLamports(o,i):void 0,totalInUsd:e.getFormattedUsdFromLamports(r+o,i)}}if("USDC"===r&&i){let r="$"+a,s=await ue({solanaClient:n,tx:t}),o=function(t,n){let a=parseFloat(t.toString())/e.LAMPORTS_PER_SOL*n;return a<.01?0:a}(s,i);return{amountInUsd:r,feeInUsd:e.getFormattedUsdFromLamports(s,i),totalInUsd:"$"+(parseFloat(a)+o).toFixed(2)}}if("SOL"===r){let e=_e(a),r=await ue({solanaClient:n,tx:t});return{amountInSol:a+" SOL",feeInSol:Me(r)+" SOL",totalInSol:Me(e+r)+" SOL"}}return{amountInUsdc:a+" USDC",feeInSol:Me(await ue({solanaClient:n,tx:t}))+" SOL"}}const Ue={component:function(){let n=e.useAppConfig(),{closePrivyModal:o,createAnalyticsEvent:l}=s.usePrivyInternal(),{data:c,setModalData:d,navigate:u}=e.usePrivyModal(),{wallets:m}=ke(),[h,w]=a.useState("preparing"),[A,S]=a.useState(),[T,I]=a.useState(),[b,C]=a.useState();if(!c?.solanaFundingData)throw Error("Funding config is missing");if(!c.solanaFundingData.sourceWalletData)throw Error("Funding config is missing source wallet data");let{amount:E,asset:P,chain:x,sourceWalletData:O,destinationAddress:k,afterSuccessScreen:F}=c.solanaFundingData,_=m.find((t=>t.address===O.address&&e.toSolanaWalletClientType(O.walletClientType)===e.toSolanaWalletClientType(t.standardWallet.name))),M=Se()(x),{tokenPrice:j,isTokenPriceLoading:W}=e.useGetTokenPrice("solana");return a.useEffect((()=>{if("preparing"!==h||W||!_)return;let t="SOL"===P?_e(E):function(e){return BigInt(Math.floor(1e6*parseFloat(e)))}(E);I({amount:("SOL"===P&&j?e.getFormattedUsdFromLamports(t,j):E)??E}),("SOL"===P?async function({solanaClient:e,source:t,destination:n,amountInLamports:a}){let{value:r}=await e.rpc.getLatestBlockhash().send(),i={address:t},s=p.pipe(p.createTransactionMessage({version:0}),(e=>p.setTransactionMessageFeePayerSigner(i,e)),(e=>p.setTransactionMessageLifetimeUsingBlockhash(r,e)),(e=>p.appendTransactionMessageInstruction(g.getTransferSolInstruction({amount:a,source:i,destination:n}),e)),(e=>p.compileTransaction(e)));return new Uint8Array(p.getTransactionEncoder().encode(s))}({solanaClient:M,source:_.address,destination:k,amountInLamports:t}):async function({solanaClient:t,source:n,destination:a,amountInBaseUnits:r}){let i=e.getUsdcMintAddress(t.chain),{value:s}=await t.rpc.getLatestBlockhash().send(),o={address:n},[l]=await f.findAssociatedTokenPda({mint:i,owner:n,tokenProgram:e.TOKEN_PROGRAM_ID}),[c]=await f.findAssociatedTokenPda({mint:i,owner:a,tokenProgram:e.TOKEN_PROGRAM_ID}),[d,u]=await Promise.all([t.rpc.getAccountInfo(l,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null)),t.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null))]);if(!d?.value)throw Error(`Source token account does not exist for address: ${n}`);let m=f.getCreateAssociatedTokenIdempotentInstruction({payer:o,ata:c,owner:a,mint:i}),g=p.pipe(p.createTransactionMessage({version:0}),(e=>p.setTransactionMessageFeePayerSigner(o,e)),(e=>p.setTransactionMessageLifetimeUsingBlockhash(s,e)),(e=>u?.value?e:p.appendTransactionMessageInstruction(m,e)),(e=>p.appendTransactionMessageInstruction(f.getTransferInstruction({source:l,destination:c,authority:o,amount:r}),e)),(e=>p.compileTransaction(e)));return new Uint8Array(p.getTransactionEncoder().encode(g))}({solanaClient:M,source:_.address,destination:k,amountInBaseUnits:t})).then(S).catch((e=>{w("error"),C(e)}))}),[h,E,P,x,_,k,W,j]),a.useEffect((()=>{"preparing"===h&&A&&We({tx:A,solanaClient:M,amount:E,asset:P,tokenPrice:j}).then((e=>{w("loaded"),I({amount:e?.amountInUsd??e?.amountInUsdc??e?.amountInSol??E,fee:e?.feeInUsd??e?.feeInSol,total:e?.totalInUsd??e?.totalInSol})})).catch((e=>{w("error"),C(e)}))}),[A,E,P,h,j]),a.useEffect((()=>{"error"===h&&b&&(d({errorModalData:{error:b,previousScreen:Ue},solanaFundingData:c.solanaFundingData}),u(e.ErrorScreen,!1))}),[h,u]),a.useEffect((()=>{if("success"!==h)return;let t=setTimeout(F?()=>u(F):o,e.DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS);return()=>clearTimeout(t)}),[h]),"success"===h?/*#__PURE__*/t.jsxs(t.Fragment,{children:[/*#__PURE__*/t.jsx(e.i,{}),/*#__PURE__*/t.jsx(e.RefactorSpacerTop,{}),/*#__PURE__*/t.jsxs(e.CenteredItemWithGap,{children:[/*#__PURE__*/t.jsx(y.default,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/t.jsx(e.CenteredScreenHeader,{title:"Success!",description:`You’ve successfully added ${E} ${P} to your ${n.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/t.jsx(e.RefactorSpacerBottom,{}),/*#__PURE__*/t.jsx(e.BlobbyFooter,{})]}):"preparing"===h||"loaded"===h||"sending"===h?/*#__PURE__*/t.jsxs(t.Fragment,{children:[/*#__PURE__*/t.jsx(e.i,{}),/*#__PURE__*/t.jsx(e.CenteredItem,{style:{marginTop:"16px"},children:/*#__PURE__*/t.jsx(e.InjectedWalletIcon,{icon:_?.standardWallet.icon,name:_?.standardWallet.name})}),/*#__PURE__*/t.jsx(e.CenteredScreenHeader,{style:{marginTop:"8px",marginBottom:"12px"},title:"sending"===h&&_?`Confirming with ${_.standardWallet.name}`:"Confirm transaction"}),/*#__PURE__*/t.jsx(v,{rows:[{label:"Source",value:r.formatWalletAddress(O.address)},{label:"Destination",value:r.formatWalletAddress(k)},{label:"Network",value:e.getChainName(x)},{label:"Amount",value:T?.amount,isLoading:"preparing"===h},{label:"Estimated fee",value:T?.fee,isLoading:"preparing"===h},{label:"Total",value:T?.total,isLoading:"preparing"===h}]}),/*#__PURE__*/t.jsx(e.PrimaryButton,{style:{marginTop:"1rem"},loading:"preparing"===h||"sending"===h,onClick:function(){"loaded"===h&&A&&_&&(w("sending"),async function({transaction:e,chain:t,sourceWallet:n,solanaClient:a}){let{hasFunds:s}=await pe({solanaClient:a,tx:e});if(!s)throw new i.PrivyClientError(`Wallet ${r.formatWalletAddress(n.address)} does not have enough funds.`,void 0,i.PrivyErrorCode.INSUFFICIENT_BALANCE);let o=Fe((await n.signAndSendTransaction({transaction:e,chain:t}).catch((e=>{throw new i.PrivyClientError("Transaction was rejected by the user",e,i.PrivyErrorCode.TRANSACTION_FAILURE)}))).signature);return await ve({rpcSubscriptions:a.rpcSubscriptions,signature:o,timeout:2e4}),o}({solanaClient:M,transaction:A,chain:x,sourceWallet:_}).then((t=>{w("success"),l({eventName:e.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:t,address:_.address,value:E,chainType:"solana",clusterName:x,token:P,destinationAddress:k,destinationValue:E,destinationChainType:"solana",destinationClusterName:x,destinationToken:P}})})).catch((e=>{w("error"),C(e)})))},children:"Confirm"}),/*#__PURE__*/t.jsx(e.BlobbyFooter,{})]}):
2
- /*#__PURE__*/t.jsxs(t.Fragment,{children:[/*#__PURE__*/t.jsx(e.i,{}),/*#__PURE__*/t.jsx(e.NeutralSpinner,{}),/*#__PURE__*/t.jsx("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/t.jsx(e.BlobbyFooter,{})]})}};exports.fetchTransactionEstimatedFees=ue,exports.getAddressFromBuffer=Fe,exports.getSolanaRpcClient=Ae,exports.simulateTransaction=pe,exports.useExportWallet=function(){let{user:t,getAccessToken:n}=o.usePrivyContext(),{walletProxy:r,openModal:c,client:d}=s.usePrivyInternal(),{setModalData:u}=e.usePrivyModal(),p=e.useAppConfig();return a.useMemo((()=>({exportWallet:a=>new Promise((async(s,m)=>{if(!t)return void m(new i.PrivyClientError("User must be authenticated before exporting their Privy wallet"));let g=a?.address?o.getPrivyWalletWithAddress(t,a.address):o.getPrivySolanaWallet(t);if(!g)return void m(new i.PrivyClientError("User must have an embedded wallet."));if(!l.isFirstClassChainWallet(g))return void m(Error(`Export is not supported for ${g.chainType} wallets`));let f=o.getIsUnifiedWallet(g),{entropyId:h,entropyIdVerifier:y}=e.getEntropyDetailsForUser(t,g);await n()?r?(u({connectWallet:{recoveryMethod:g.recoveryMethod,connectingWalletAddress:g.address,isUnifiedWallet:f,entropyId:h,entropyIdVerifier:y,onCompleteNavigateTo:e.EmbeddedWalletKeyExportScreen,onFailure:m,shouldForceMFA:!0},keyExport:{appId:p.id,appClientId:p.appClientId,origin:d.apiUrl,address:g.address,entropyId:h,entropyIdVerifier:y,hdWalletIndex:g.walletIndex,chainType:g.chainType,walletId:g.id,isUnifiedWallet:f,imported:g.imported,onSuccess:s,onFailure:m}}),c(e.EmbeddedWalletConnectingScreen)):m(new i.PrivyClientError("Wallet not ready for export")):m(new i.PrivyClientError("Must have valid access token."))}))})),[t,n,r,c,d,u,p])},exports.useFundWallet=function(){let t=e.useAppConfig(),{openModal:n}=s.usePrivyInternal(),{setModalData:a}=e.usePrivyModal();return{fundWallet:async({address:r,options:i})=>{let s=i?.amount||t.fundingConfig?.defaultRecommendedAmount||"1",o=i?.asset||t.fundingConfig?.defaultRecommendedCurrency.asset||"native-currency",c=i?.chain||"solana:mainnet";a({funding:l.prepareSolanaFundingModalData({address:r,appConfig:t,methodScreen:e.FundingMethodSelectionScreen,fundWalletConfig:{...i,amount:s,asset:o,chain:c},externalSolanaFundingScreen:Ue}),solanaFundingData:{amount:s,asset:"native-currency"===o?"SOL":"USDC",chain:c,destinationAddress:r,sourceWalletData:void 0}}),n(e.FundingMethodSelectionScreen)}}},exports.useSolanaStandardWallets=Oe,exports.useWallets=ke;
@@ -1 +0,0 @@
1
- import{cn as e,ci as n,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 f,cI as g,cJ as h,cK as y,cL as w,cM as v,an as A,as as b,cN as I,cO as T,b5 as S,cP as O,cQ as k,cR as C,aH as E,F,bx as x,bV as _,af as P,cS as U,cT as W,cU as M,ag as j,b2 as B,cV as D,cW as L,at as N,cX as $,cY as R,cZ as V,c_ as J,c$ as H,d0 as Q,by as q}from"./SignRequestScreen-Dnn_x6kV.mjs";import{jsx as K,jsxs as Y,Fragment as G}from"react/jsx-runtime";import Z from"@heroicons/react/24/outline/CheckCircleIcon";import{useMemo as z,useCallback as X,useState as ee,useEffect as ne}from"react";import{formatTokenAmount as te,rpc as ae,ConnectedStandardSolanaWallet as ie,formatWalletAddress as re}from"@privy-io/js-sdk-core";import{P as se,h as oe}from"./paths-B891YjWw.mjs";import{u as ce,a as le}from"./internal-context-LlMdpfkb.mjs";import{u as de,j as ue,a as pe,f as me,g as fe,k as ge,l as he}from"./privy-context-C7K3ZBW-.mjs";import{u as ye,g as we,i as ve}from"./usePrivy-CYAVrCyA.mjs";import Ae from"eventemitter3";import{base58 as be}from"@scure/base";import{styled as Ie}from"styled-components";import{getTransactionDecoder as Te,pipe as Se,getCompiledTransactionMessageDecoder as Oe,decompileTransactionMessage as ke,setTransactionMessageLifetimeUsingBlockhash as Ce,compileTransaction as Ee,getTransactionEncoder as Fe,getBase58Decoder as xe,getBase64Decoder as _e,fetchAddressesForLookupTables as Pe,getBase58Encoder as Ue,address as We,createTransactionMessage as Me,setTransactionMessageFeePayerSigner as je,appendTransactionMessageInstruction as Be}from"@solana/kit";import{u as De}from"./use-sign-with-user-signer-DwqsbciW.mjs";import{getTransferSolInstruction as Le}from"@solana-program/system";import{findAssociatedTokenPda as Ne,getCreateAssociatedTokenIdempotentInstruction as $e,getTransferInstruction as Re}from"@solana-program/token";function Ve({rows:i}){/*#__PURE__*/return K(e,{children:i.filter((e=>!!e)).map(((e,i)=>null!=e.value||e.isLoading?/*#__PURE__*/Y(n,{children:[/*#__PURE__*/K(t,{children:e.label}),/*#__PURE__*/K(a,{$isLoading:e.isLoading,children:e.value})]},i):null))})}const Je=["solana:mainnet","solana:devnet","solana:testnet"];function He(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var Qe=0,qe="__private_"+Qe+++"__implementation";function Ke(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var Ye=0;function Ge(e){return"__private_"+Ye+++"_"+e}var Ze=/*#__PURE__*/Ge("_address"),ze=/*#__PURE__*/Ge("_publicKey"),Xe=/*#__PURE__*/Ge("_chains"),en=/*#__PURE__*/Ge("_features"),nn=/*#__PURE__*/Ge("_label"),tn=/*#__PURE__*/Ge("_icon");class an{get address(){return Ke(this,Ze)[Ze]}get publicKey(){return Ke(this,ze)[ze].slice()}get chains(){return Ke(this,Xe)[Xe].slice()}get features(){return Ke(this,en)[en].slice()}get label(){return Ke(this,nn)[nn]}get icon(){return Ke(this,tn)[tn]}constructor({address:e,publicKey:n,label:t,icon:a}){Object.defineProperty(this,Ze,{writable:!0,value:void 0}),Object.defineProperty(this,ze,{writable:!0,value:void 0}),Object.defineProperty(this,Xe,{writable:!0,value:void 0}),Object.defineProperty(this,en,{writable:!0,value:void 0}),Object.defineProperty(this,nn,{writable:!0,value:void 0}),Object.defineProperty(this,tn,{writable:!0,value:void 0}),Ke(this,Ze)[Ze]=e,Ke(this,ze)[ze]=n,Ke(this,Xe)[Xe]=Je,Ke(this,nn)[nn]=t,Ke(this,tn)[tn]=a,Ke(this,en)[en]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===an&&Object.freeze(this)}}function rn(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var sn=0;function on(e){return"__private_"+sn+++"_"+e}var cn=/*#__PURE__*/on("_listeners"),ln=/*#__PURE__*/on("_version"),dn=/*#__PURE__*/on("_name"),un=/*#__PURE__*/on("_icon"),pn=/*#__PURE__*/on("_injection"),mn=/*#__PURE__*/on("_isPrivyWallet"),fn=/*#__PURE__*/on("_accounts"),gn=/*#__PURE__*/on("_on"),hn=/*#__PURE__*/on("_emit"),yn=/*#__PURE__*/on("_off"),wn=/*#__PURE__*/on("_connected"),vn=/*#__PURE__*/on("_connect"),An=/*#__PURE__*/on("_disconnect"),bn=/*#__PURE__*/on("_signMessage"),In=/*#__PURE__*/on("_signAndSendTransaction"),Tn=/*#__PURE__*/on("_signTransaction");function Sn(e,...n){rn(this,cn)[cn][e]?.forEach((e=>e.apply(null,n)))}function On(e,n){rn(this,cn)[cn][e]=rn(this,cn)[cn][e]?.filter((e=>n!==e))}const kn=/*#__PURE__*/Ie.span.withConfig({displayName:"CircleBackground",componentId:"sc-c9f33cd-0"})(["&&{width:82px;height:82px;border-width:4px;border-style:solid;border-color:",";background-color:",";border-radius:50%;display:inline-block;box-sizing:border-box;}"],(e=>e.color??"var(--privy-color-accent)"),(e=>e.color??"var(--privy-color-accent)")),Cn=({instruction:s,fees:o,transactionInfo:c,solPrice:l,chain:d})=>/*#__PURE__*/Y(e,{children:[c?.action&&/*#__PURE__*/Y(n,{children:[/*#__PURE__*/K(t,{children:"Action"}),/*#__PURE__*/K(a,{children:c.action})]}),null!=s?.total&&/*#__PURE__*/Y(n,{children:[/*#__PURE__*/K(t,{children:"Total"}),/*#__PURE__*/K(a,{children:s.total})]}),!s?.total&&null!=s?.amount&&/*#__PURE__*/Y(n,{children:[/*#__PURE__*/K(t,{children:"Total"}),/*#__PURE__*/K(a,{children:/*#__PURE__*/K(i,{quantities:[s.amount,o],tokenPrice:l})})]}),/*#__PURE__*/Y(n,{children:[/*#__PURE__*/K(t,{children:"Fees"}),/*#__PURE__*/K(a,{children:/*#__PURE__*/K(i,{quantities:[o],tokenPrice:l})})]}),s?.to&&/*#__PURE__*/Y(n,{children:[/*#__PURE__*/K(t,{children:"To"}),/*#__PURE__*/K(a,{children:/*#__PURE__*/K(r,{walletAddress:s.to,chainId:d,chainType:"solana"})})]})]}),En=({fees:e,onClose:n,receiptHeader:t,receiptDescription:a,transactionInfo:i,solPrice:r,signOnly:p,instruction:m,chain:f})=>/*#__PURE__*/Y(G,{children:[/*#__PURE__*/K(s,{onClose:n}),/*#__PURE__*/K(o,{style:{marginBottom:"16px"},children:/*#__PURE__*/Y("div",{children:[/*#__PURE__*/K(kn,{color:"var(--privy-color-success-light)"}),/*#__PURE__*/K(Z,{height:38,width:38,strokeWidth:2,stroke:"var(--privy-color-success)"})]})}),/*#__PURE__*/K(c,{title:t??`Transaction ${p?"signed":"complete"}!`,description:a??"You're all set."}),/*#__PURE__*/K(Cn,{solPrice:r,instruction:m,fees:e,transactionInfo:i,chain:f}),/*#__PURE__*/K(l,{}),/*#__PURE__*/K(Fn,{loading:!1,onClick:n,children:"Close"}),/*#__PURE__*/K(d,{}),/*#__PURE__*/K(u,{})]});let Fn=/*#__PURE__*/Ie(p).withConfig({displayName:"SubmitButton",componentId:"sc-3cb7ee42-0"})(["&&{margin-top:24px;}transition:color 350ms ease,background-color 350ms ease;"]);function xn(e){return new Uint8Array(Te().decode(e).messageBytes)}async function _n(e,n){try{return await e}catch{return n}}const Pn=(...e)=>{if("undefined"==typeof Buffer)throw new se("Buffer is not defined.",void 0,oe.BUFFER_NOT_DEFINED);return Buffer.from(...e)};function Un(e){switch(e){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet"}}async function Wn({privyClient:e,chain:n,mint:t}){let a=m[n];if(!a[t]){let i=await e.getSplTokenMetadata({mintAddress:t,cluster:Un(n)});i&&(a[t]={address:t,symbol:i.symbol,decimals:i.decimals})}return a[t]}async function Mn({solanaClient:e,tx:n}){let t=_e().decode(xn(n)),{value:a}=await e.rpc.getFeeForMessage(t).send();return a??0n}async function jn({solanaClient:e,tx:n,replaceRecentBlockhash:t}){let{value:a}=await e.rpc.simulateTransaction(_e().decode(n),{commitment:"confirmed",encoding:"base64",sigVerify:!1,replaceRecentBlockhash:t}).send();if("BlockhashNotFound"===a.err&&t)throw Error("Simulation failed: Blockhash not found");return"BlockhashNotFound"===a.err?await jn({solanaClient:e,tx:n,replaceRecentBlockhash:!0}):{logs:a.logs??[],error:a.err,hasError:!!a.err,hasFunds:a.logs?.every((e=>!/insufficient funds/gi.test(e)&&!/insufficient lamports/gi.test(e)))??!0}}async function Bn({tx:e,solanaClient:n,privyClient:t,checkFunds:a}){let i=Oe().decode(xn(e)),r=i.staticAccounts[0]??"",s=await Mn({solanaClient:n,tx:e}),o=a?await _n(jn({solanaClient:n,tx:e})):void 0,c=o?.hasFunds??!0,l={},d=[],u=await async function({solanaClient:e,message:n}){if(!("addressTableLookups"in n)||!n.addressTableLookups)return[...n.staticAccounts];let t=n.addressTableLookups.map((e=>e.lookupTableAddress)),a=await Pe(t,e.rpc),i=t.map(((e,t)=>[...n.addressTableLookups[t]?.writableIndexes.map((n=>{let i=a[e]?.[n];if(i)return{key:i,isWritable:!0,altIdx:t}}))??[],...n.addressTableLookups[t]?.readonlyIndexes.map((n=>{let i=a[e]?.[n];if(i)return{key:i,isWritable:!1,altIdx:t}}))??[]])).flat().filter((e=>!!e)).sort(((e,n)=>e.isWritable!==n.isWritable?e.isWritable?-1:1:e.altIdx-n.altIdx)).map((({key:e})=>e));return[...n.staticAccounts,...i]}({solanaClient:n,message:i});for(let e of i.instructions){let a=i.staticAccounts[e.programAddressIndex]||"";if(a!==f&&a!==g)if(a!==h){if(a===y){let n=await _n(function(e,n,t){let[a,i,r,s]=e.accountIndices?.map((e=>n[e]))??[];return{type:"ata-creation",program:t,payer:a,ata:i,owner:r,mint:s}}(e,u,a));if(!n){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}if(d.push(n),n.ata&&n.owner&&n.mint){l[n.ata]={owner:n.owner,mint:n.mint};continue}}if(w.includes(a)){let i=await _n($n(e,u,n,t,a));if(!i){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}d.push(i)}else if(v.includes(a)){let i=await _n(Rn(e,u,n,t,a));if(!i){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}d.push(i)}else d.push({type:"unknown",program:a,discriminator:e.data?.[0]})}else{let n=await _n(Nn(e,u));if(!n){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}d.push(n)}else{let i=await _n(Ln(e,u,n,t,l,a));if(!i){d.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}d.push(i),"spl-transfer"===i.type&&(i.fromAta&&i.fromAccount&&i.token.address&&(l[i.fromAta]??={owner:i.fromAccount,mint:i.token.address}),i.toAta&&i.toAccount&&i.token.address&&(l[i.toAta]??={owner:i.toAccount,mint:i.token.address}))}}return{spender:r,fee:s,instructions:d,hasFunds:!!c}}function Dn(e,n=0){try{return function(e,n=0){let t=0n;for(let a=0;a<8;a++)t|=BigInt(e[n+a])<<BigInt(8*a);return t}(e,n)}catch{}try{return e.readBigInt64LE(n)}catch{}let t=Pn(e);try{return((e,n=0)=>{let t=e[n],a=e[n+7];if(!t||!a)throw Error(`Buffer offset out of range: first: ${t}, last: ${a}.`);return(BigInt(e[n+4]+256*e[n+5]+65536*e[n+6]+(a<<24))<<32n)+BigInt(t+256*e[++n]+65536*e[++n]+16777216*e[++n])})(t)}catch{}try{return t.subarray(n).readBigInt64LE()}catch{}try{return t.readBigInt64LE(n)}catch{}return 0n}async function Ln(e,n,t,a,i,r){let s=e.data?.[0],o=e.accountIndices?.map((e=>n[e]))??[];if(1===s){let[e,n,t]=o;return{type:"spl-init-account",program:r,account:e,mint:n,owner:t}}if(3===s){let n,s,[c,l,d]=o,u="",p=l?i[l]:void 0;if(p)n=p.owner,u=p.mint;else if(l){let e=await t.rpc.getAccountInfo(l,{commitment:"confirmed",encoding:"jsonParsed"}).send(),a=e.value?.data;n=a?.parsed?.info?.owner,u=a?.parsed?.info?.mint??"",s=a?.parsed?.info?.tokenAmount?.decimals}if(!u&&c){let e=await t.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send(),n=e.value?.data;u=n?.parsed?.info?.mint??""}let m=await Wn({privyClient:a,chain:t.chain,mint:u}),f=m?.symbol??"";return s??=m?.decimals??9,{type:"spl-transfer",program:r,fromAta:c,fromAccount:d,toAta:l,toAccount:n,value:Dn(e.data,1),token:{symbol:f,decimals:s,address:u}}}if(9===s){let[e,n,t]=o;return{type:"spl-close-account",program:r,source:e,destination:n,owner:t}}if(17===s)return{type:"spl-sync-native",program:r};throw Error(`Token program instruction type ${s} not supported`)}async function Nn(e,n){let t=e.data?.[0],a=e.accountIndices?.map((e=>n[e]))??[];if(0===t){let[,n]=a;return{type:"create-account",program:h,account:n?.toString(),value:Dn(e.data,4),withSeed:!1}}if(2===t){let[n,t]=a;return{type:"sol-transfer",program:h,fromAccount:n,toAccount:t,token:{symbol:"SOL",decimals:9},value:Dn(e.data,4),withSeed:!1}}if(3===t){let[,n]=a;return{type:"create-account",program:h,account:n,withSeed:!0,value:Dn(e.data.slice(e.data.length-32-8-8))}}if(11===t){let[n,t]=a;return{type:"sol-transfer",program:h,fromAccount:n,toAccount:t,value:Dn(e.data,4),token:{symbol:"SOL",decimals:9},withSeed:!0}}throw Error(`System program instruction type ${t} not supported`)}async function $n(e,n,t,a,i){let r=e.accountIndices?.map((e=>n[e]))??[],s=e.data?.[0];if(143===s){let n=r[10],s=r[11];return{type:"raydium-swap-base-input",program:i,mintIn:n,mintOut:s,tokenIn:n?await Wn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:s?await Wn({privyClient:a,chain:t.chain,mint:s}):void 0,amountIn:Dn(e.data,8),minimumAmountOut:Dn(e.data,16)}}if(55===s){let n=r[10],s=r[11];return{type:"raydium-swap-base-output",program:i,mintIn:n,mintOut:s,tokenIn:n?await Wn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:s?await Wn({privyClient:a,chain:t.chain,mint:s}):void 0,maxAmountIn:Dn(e.data,8),amountOut:Dn(e.data,16)}}throw Error(`Raydium swap program instruction type ${s} not supported`)}async function Rn(e,n,t,a,i){let r=e.data?.[0],s=e.accountIndices?.map((e=>n[e]))??[];if([208,51,239,151,123,43,237,92].includes(r)){let n=s[5],r=s[6];return{type:"jupiter-swap-exact-out-route",program:i,mintIn:n,mintOut:r,tokenIn:n?await Wn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:r?await Wn({privyClient:a,chain:t.chain,mint:r}):void 0,outAmount:Dn(e.data,e.data.length-1-2-8-8),quotedInAmount:Dn(e.data,e.data.length-1-2-8)}}if([176,209,105,168,154,125,69,62].includes(r)){let n=s[7],r=s[8];return{type:"jupiter-swap-exact-out-route",program:i,mintIn:n,mintOut:r,tokenIn:n?await Wn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:r?await Wn({privyClient:a,chain:t.chain,mint:r}):void 0,outAmount:Dn(e.data,e.data.length-1-2-8-8),quotedInAmount:Dn(e.data,e.data.length-1-2-8)}}if([193,32,155,51,65,214,156,129].includes(r)){let n=s[7],r=s[8];return{type:"jupiter-swap-shared-accounts-route",program:i,mintIn:n,mintOut:r,tokenIn:n?await Wn({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:r?await Wn({privyClient:a,chain:t.chain,mint:r}):void 0,inAmount:Dn(e.data,e.data.length-1-2-8-8),quotedOutAmount:Dn(e.data,e.data.length-1-2-8)}}throw[62,198,214,193,213,159,108,210].includes(r)&&console.warn("Jupiter swap program instruction 'claim' not implemented"),[116,206,27,191,166,19,0,73].includes(r)&&console.warn("Jupiter swap program instruction 'claim_token' not implemented"),[26,74,236,151,104,64,183,249].includes(r)&&console.warn("Jupiter swap program instruction 'close_token' not implemented"),[229,194,212,172,8,10,134,147].includes(r)&&console.warn("Jupiter swap program instruction 'create_open_orders' not implemented"),[28,226,32,148,188,136,113,171].includes(r)&&console.warn("Jupiter swap program instruction 'create_program_open_orders' not implemented"),[232,242,197,253,240,143,129,52].includes(r)&&console.warn("Jupiter swap program instruction 'create_token_ledger' not implemented"),[147,241,123,100,244,132,174,118].includes(r)&&console.warn("Jupiter swap program instruction 'create_token_account' not implemented"),[229,23,203,151,122,227,173,42].includes(r)&&console.warn("Jupiter swap program instruction 'route' not implemented"),[150,86,71,116,167,93,14,104].includes(r)&&console.warn("Jupiter swap program instruction 'route_with_token_ledger' not implemented"),[228,85,185,112,78,79,77,2].includes(r)&&console.warn("Jupiter swap program instruction 'set_token_ledger' not implemented"),[230,121,143,80,119,159,106,170].includes(r)&&console.warn("Jupiter swap program instruction 'shared_accounts_route_with_token_ledger' not implemented"),Error(`Jupiter swap program instruction type ${r} not supported`)}async function Vn({rpcSubscriptions:e,signature:n,timeout:t}){let a=new AbortController,i=await e.signatureNotifications(n,{commitment:"confirmed"}).subscribe({abortSignal:a.signal}),r=await Promise.race([new Promise((e=>{setTimeout((()=>{a.abort(),e(Error("Transaction confirmation timed out"))}),t)})),new Promise((async e=>{for await(let n of i){if(a.abort(),n.value.err)return e(Error("Transaction confirmation failed"));e(void 0)}}))]);if(r instanceof Error)throw r}function Jn({rpc:e,rpcSubscriptions:n,chain:t,blockExplorerUrl:a}){let i=function({rpc:e,rpcSubscriptions:n}){return async t=>new Promise((async(a,i)=>{try{let i=await e.sendTransaction(Pn(t).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await Vn({rpcSubscriptions:n,signature:i,timeout:1e4}),a({signature:new Uint8Array(Ue().encode(i))})}catch(e){i(e)}}))}({rpc:e,rpcSubscriptions:n});return{rpc:e,rpcSubscriptions:n,chain:t,blockExplorerUrl:a,sendAndConfirmTransaction:i}}function Hn(){let e=A(),n=z((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((n=>[n,e.solanaRpcs[n]?Jn({chain:n,rpc:e.solanaRpcs[n].rpc,rpcSubscriptions:e.solanaRpcs[n].rpcSubscriptions,blockExplorerUrl:e.solanaRpcs[n].blockExplorerUrl??`https://explorer.solana.com?cluster=${n.replace("solana:","")}`}):null])))),[e.solanaRpcs]);return X((e=>{if(!n[e])throw Error(`No RPC configuration found for chain ${e}`);return n[e]}),[n])}const Qn={component:()=>{let{data:e,onUserCloseViaDialogOrKeybindRef:n,setModalData:t,navigate:a}=b(),{client:i,closePrivyModal:r,walletProxy:s,showFiatPrices:o}=ce(),c=A(),{user:l}=de(),d=Hn()(e?.standardSignAndSendTransaction?.chain??"solana:mainnet"),[u,p]=ee(e?.standardSignAndSendTransaction?.transaction),[m,f]=ee(),[g,h]=ee(),[y,w]=ee({value:0n,isLoading:!1}),[v,F]=ee(!1),[x,_]=ee({}),[P,U]=ee(),W=e?.standardSignAndSendTransaction?.account,M=!!e?.standardSignAndSendTransaction?.signOnly,j=W?.imported?ue(l).find((e=>e.address===W.address)):pe(l),{solPrice:B,isSolPriceLoading:D}=I({enabled:o}),L=z((()=>{if(!m)return;let e=m.spender,n=T(m.fee),t=T(y.value,3,!0),a=m.instructions.filter((e=>["sol-transfer","spl-transfer","raydium-swap-base-input","raydium-swap-base-output","jupiter-swap-shared-accounts-route","jupiter-swap-exact-out-route"].includes(e.type))),i=a.at(0);if(!i||a.length>1)return{fee:n,spender:e,balance:t};if("sol-transfer"===i.type)return{fee:n,spender:e,balance:t,total:T(i.value)};if("spl-transfer"===i.type)return{fee:n,spender:e,balance:t,total:`${te({amount:i.value,decimals:i.token.decimals})} ${i.token.symbol}`};if("raydium-swap-base-input"===i.type&&i.tokenIn&&i.tokenOut){return{fee:n,spender:e,balance:t,swap:`${`${te({amount:i.amountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${te({amount:i.minimumAmountOut,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("raydium-swap-base-output"===i.type&&i.tokenIn&&i.tokenOut){return{fee:n,spender:e,balance:t,swap:`${`${te({amount:i.maxAmountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${te({amount:i.amountOut,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("jupiter-swap-shared-accounts-route"===i.type&&i.tokenIn&&i.tokenOut){return{fee:n,spender:e,balance:t,swap:`${`${te({amount:i.inAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${te({amount:i.quotedOutAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("jupiter-swap-exact-out-route"===i.type&&i.tokenIn&&i.tokenOut){return{fee:n,spender:e,balance:t,swap:`${`${te({amount:i.quotedInAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${te({amount:i.outAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}return{fee:n,spender:e,balance:t}}),[m,W?.address,y]),N=z((()=>{let e;if(!m||!o||!B||D)return;function n(...e){return C(e.reduce(((e,n)=>e+n),0n),B??0)}W?.address===m.spender&&(e=n(m.fee));let t=n(y.value),a=m.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)).at(0);return!a||m.instructions.length>1?{fee:e,balance:t}:"sol-transfer"===a.type?{fee:e,balance:t,total:n(a.value,W?.address===m.spender?m.fee:0n)}:"spl-transfer"===a.type?{fee:e,balance:t,total:`${te({amount:a.value,decimals:a.token.decimals})} ${a.token.symbol}`}:{fee:e,balance:t}}),[m,o,B,D,W?.address,y]);if(ne((()=>{!async function(){if(u&&i)try{h(void 0);let e=await Bn({tx:u,solanaClient:d,privyClient:i,checkFunds:!M});f(e)}catch(e){console.error("Failed to prepare transaction",e),h(e)}}()}),[u,d,i,M]),ne((()=>{(async function(){if(!W)return;w({value:y.value,isLoading:!0});let{value:e}=await d.rpc.getBalance(W.address,{commitment:"confirmed"}).send();w({value:e??0n,isLoading:!1})})().catch(console.error)}),[m]),!u||!e?.standardSignAndSendTransaction||!W){let n=Error("Invalid transaction request");/*#__PURE__*/return K(S,{error:n,allowlistConfig:c.allowlistConfig,onRetry:()=>{e?.standardSignAndSendTransaction?.onFailure(n),r({shouldCallAuthOnSuccess:!1})}})}let $=()=>{if(!v)return x.signature||x.signedTransaction?e?.standardSignAndSendTransaction?.onSuccess({signature:x.signature,signedTransaction:x.signedTransaction}):e?.standardSignAndSendTransaction?.onFailure(P??g??Error("User exited the modal before submitting the transaction")),r({shouldCallAuthOnSuccess:!1})};n.current=$;let R=e.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.contractInfo?.imgUrl?/*#__PURE__*/K("img",{src:e.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgUrl,alt:e.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgAltText}):null,V=!!(e.funding&&e.funding.supportedOptions.length>0),J=!m?.hasFunds&&V;if(x.signature||x.signedTransaction){let n=m?.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)),t=1===n?.length?n?.at(0):void 0;/*#__PURE__*/return K(En,{fees:x.fees??0n,onClose:$,transactionInfo:e.standardSignAndSendTransaction?.uiOptions.transactionInfo,solPrice:B,receiptHeader:e.standardSignAndSendTransaction?.uiOptions.successHeader,receiptDescription:e.standardSignAndSendTransaction?.uiOptions.successDescription,chain:d.chain,signOnly:M,instruction:"sol-transfer"===t?.type?{to:t.toAccount,amount:t.value}:{to:t?.toAccount||t?.toAta,total:L?.total}})}return P?/*#__PURE__*/K(O,{transactionError:P,chainId:d.chain,onClose:$,chainType:"solana",onRetry:async()=>{U(void 0);let{value:e}=await d.rpc.getLatestBlockhash().send();p(function(e,n){return Se(Oe().decode(xn(e)),(e=>ke(e)),(e=>Ce(n,e)),(e=>Ee(e)),(e=>new Uint8Array(Fe().encode(e))))}(u,e))}}):/*#__PURE__*/K(k,{img:R,title:e.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.title||"Confirm transaction",subtitle:e.standardSignAndSendTransaction?.uiOptions?.description||`${c.name} wants your permission to approve the following transaction.`,cta:J?"Add funds":e.standardSignAndSendTransaction?.uiOptions?.buttonText||"Approve",instructions:m?.instructions??[],network:"solana:mainnet"==d.chain?"Solana":d.chain.replace("solana:",""),blockExplorerUrl:d.blockExplorerUrl,total:o?N?.total:L?.total,fee:o?N?.fee:L?.fee,balance:o?N?.balance:L?.balance,swap:L?.swap,transactingWalletAddress:W.address,disabled:!m?.hasFunds&&!V,isSubmitting:v,isPreparing:!m||y.isLoading,isTokenPriceLoading:o&&D,isMissingFunds:!m?.hasFunds,submitError:P??void 0,parseError:g,onClick:J?async()=>{if(W){if(!V)throw Error("Funding wallet is not enabled");t({...e,funding:{...e.funding,methodScreen:E},solanaFundingData:e?.solanaFundingData}),a(E)}}:async()=>{try{if(F(!0),v||!W||!s||!l||!j)return;let n=await e.standardSignAndSendTransaction.onConfirm(u);if("signature"in n){let e=await async function({solanaClient:e,signature:n}){let t=xe().decode(n),a=await e.rpc.getTransaction(t,{maxSupportedTransactionVersion:0,commitment:"confirmed",encoding:"base64"}).send().catch((()=>null));return a?{fee:a.meta?.fee??0n}:null}({solanaClient:d,signature:n.signature});return void _({...n,fees:e?.fee})}_(n)}catch(e){console.warn({transaction:u,error:e}),U(e)}finally{F(!1)}},onClose:$})}};function qn(e,n,t){let a=structuredClone(Te().decode(e)),i=We(n);return i in a.signatures&&(a.signatures[i]=t),new Uint8Array(Fe().encode(a))}function Kn(){let{isHeadlessSigning:e,walletProxy:n,initializeWalletProxy:t,recoverEmbeddedWallet:a,openModal:i,privy:r,client:s}=ce(),{user:o}=ye(),{setModalData:c}=b(),{signWithUserSigner:l}=De();return{signMessage:({message:d,address:u,options:p})=>new Promise((async(m,f)=>{let g=me(o,u);if("privy"!==g?.walletClientType)return void f(new se("Wallet is not a Privy wallet",void 0,oe.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:h,entropyIdVerifier:y}=F(o,g),w=fe(g),v=Pn(d).toString("base64");if(v.length<1)return void f(new se("Message must be a non-empty string",void 0,oe.INVALID_MESSAGE));let A=async()=>{let e;if(!o)throw Error("User must be authenticated before signing with a Privy wallet");let i=await s.getAccessToken();if(!i)throw Error("User must be authenticated to use their embedded wallet.");let c=n??await t(15e3);if(!c)throw Error("Failed to initialize embedded wallet proxy.");if(!await a({address:g.address}))throw Error("Unable to connect to wallet");if(w){let n=await ae(r,l,{chain_type:"solana",method:"signMessage",params:{message:v,encoding:"base64"},wallet_id:g.id});if(!n.data||!("signature"in n.data))throw Error("Failed to sign message");e=n.data.signature}else{let{response:n}=await c.rpc({accessToken:i,entropyId:h,entropyIdVerifier:y,chainType:"solana",hdWalletIndex:g.walletIndex??0,requesterAppId:p?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:v}}});e=n.data.signature}return e};if(e({showWalletUIs:p?.uiOptions?.showWalletUIs}))try{let e=await A(),n=new Uint8Array(Pn(e,"base64"));m({signature:n})}catch(e){f(e)}else c({signMessage:{method:"solana_signMessage",data:v,confirmAndSign:A,onSuccess:e=>{m({signature:new Uint8Array(Pn(e,"base64"))})},onFailure:e=>{f(e)},uiOptions:p?.uiOptions??{}},connectWallet:{recoveryMethod:g.recoveryMethod,connectingWalletAddress:g.address,entropyId:h,entropyIdVerifier:y,isUnifiedWallet:w,onCompleteNavigateTo:x,onFailure:e=>{f(new se("Failed to connect to wallet",e,oe.UNKNOWN_CONNECT_WALLET_ERROR))}}}),i(_)}))}}function Yn(){let{isHeadlessSigning:e,openModal:n}=ce(),{setModalData:t}=b(),{signMessage:a}=Kn(),{user:i}=ye();return{signTransaction:async({transaction:r,options:s,chain:o="solana:mainnet",address:c})=>{async function l(e){let{signature:n}=await a({message:xn(e),address:c,options:{...s,uiOptions:{...s?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:qn(e,c,n)}}return e({showWalletUIs:s?.uiOptions?.showWalletUIs})?l(r):new Promise((async(e,a)=>{let d=me(i,c);if("privy"!==d?.walletClientType)return void a(new se("Wallet is not a Privy wallet",void 0,oe.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:u,entropyIdVerifier:p}=F(i,d),m=fe(d);function f(e){return n=>{a(n instanceof se?n:new se("Failed to connect to wallet",n,e))}}let g={account:d,transaction:r,chain:o,signOnly:!0,uiOptions:s?.uiOptions||{},onConfirm:l,onSuccess:e,onFailure:f(oe.TRANSACTION_FAILURE)};t({connectWallet:{recoveryMethod:d.recoveryMethod,connectingWalletAddress:d.address,entropyId:u,entropyIdVerifier:p,isUnifiedWallet:m,onCompleteNavigateTo:Qn,onFailure:f(oe.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:g}),n(_)}))}}}let Gn=new class extends Ae{setImplementation(e){He(this,qe)[qe]=e}async signMessage(e){return He(this,qe)[qe].signMessage(e)}async signAndSendTransaction(e){return He(this,qe)[qe].signAndSendTransaction(e)}async signTransaction(e){return He(this,qe)[qe].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,qe,{writable:!0,value:void 0}),He(this,qe)[qe]=e}}({signTransaction:le("signTransaction was not injected"),signAndSendTransaction:le("signAndSendTransaction was not injected"),signMessage:le("signMessage was not injected")}),Zn=new class{get version(){return rn(this,ln)[ln]}get name(){return rn(this,dn)[dn]}get icon(){return rn(this,un)[un]}get chains(){return Je.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:rn(this,vn)[vn]},"standard:disconnect":{version:"1.0.0",disconnect:rn(this,An)[An]},"standard:events":{version:"1.0.0",on:rn(this,gn)[gn]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:rn(this,In)[In]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:rn(this,Tn)[Tn]},"solana:signMessage":{version:"1.0.0",signMessage:rn(this,bn)[bn]},"privy:":{privy:{signMessage:rn(this,pn)[pn].signMessage,signTransaction:rn(this,pn)[pn].signTransaction,signAndSendTransaction:rn(this,pn)[pn].signAndSendTransaction}}}}get accounts(){return rn(this,fn)[fn].slice()}get isPrivyWallet(){return rn(this,mn)[mn]}constructor({name:e,icon:n,version:t,injection:a,wallets:i}){Object.defineProperty(this,hn,{value:Sn}),Object.defineProperty(this,yn,{value:On}),Object.defineProperty(this,cn,{writable:!0,value:void 0}),Object.defineProperty(this,ln,{writable:!0,value:void 0}),Object.defineProperty(this,dn,{writable:!0,value:void 0}),Object.defineProperty(this,un,{writable:!0,value:void 0}),Object.defineProperty(this,pn,{writable:!0,value:void 0}),Object.defineProperty(this,mn,{writable:!0,value:void 0}),Object.defineProperty(this,fn,{writable:!0,value:void 0}),Object.defineProperty(this,gn,{writable:!0,value:void 0}),Object.defineProperty(this,wn,{writable:!0,value:void 0}),Object.defineProperty(this,vn,{writable:!0,value:void 0}),Object.defineProperty(this,An,{writable:!0,value:void 0}),Object.defineProperty(this,bn,{writable:!0,value:void 0}),Object.defineProperty(this,In,{writable:!0,value:void 0}),Object.defineProperty(this,Tn,{writable:!0,value:void 0}),rn(this,cn)[cn]={},rn(this,gn)[gn]=(e,n)=>(rn(this,cn)[cn][e]?.push(n)||(rn(this,cn)[cn][e]=[n]),()=>rn(this,yn)[yn](e,n)),rn(this,wn)[wn]=e=>{null!=e&&(rn(this,fn)[fn]=e.map((({address:e})=>new an({address:e,publicKey:be.decode(e)})))),rn(this,hn)[hn]("change",{accounts:this.accounts})},rn(this,vn)[vn]=async()=>(rn(this,hn)[hn]("change",{accounts:this.accounts}),{accounts:this.accounts}),rn(this,An)[An]=async()=>{rn(this,hn)[hn]("change",{accounts:this.accounts})},rn(this,bn)[bn]=async(...e)=>{let n=[];for(let{account:t,...a}of e){let{signature:e}=await rn(this,pn)[pn].signMessage({...a,address:t.address});n.push({signedMessage:a.message,signature:e})}return n},rn(this,In)[In]=async(...e)=>{let n=[];for(let{transaction:t,account:a,options:i,chain:r}of e){let{signature:e}=await rn(this,pn)[pn].signAndSendTransaction({transaction:t,address:a.address,chain:r||"solana:mainnet",options:i});n.push({signature:e})}return n},rn(this,Tn)[Tn]=async(...e)=>{let n=[];for(let{transaction:t,account:a,options:i,chain:r}of e){let{signedTransaction:e}=await rn(this,pn)[pn].signTransaction({transaction:t,address:a.address,chain:r||"solana:mainnet",options:i});n.push({signedTransaction:e})}return n},rn(this,dn)[dn]=e,rn(this,un)[un]=n,rn(this,ln)[ln]=t,rn(this,pn)[pn]=a,rn(this,fn)[fn]=[],rn(this,mn)[mn]=!0,a.on("accountChanged",rn(this,wn)[wn],this),rn(this,wn)[wn](i)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:Gn});function zn(){let{ready:e}=P(),{user:n}=ye(),{signMessage:t}=Kn(),{signTransaction:a}=Yn(),{signAndSendTransaction:i}=function(){let e=A(),{isHeadlessSigning:n,openModal:t}=ce(),{setModalData:a}=b(),{signTransaction:i}=Yn(),r=Hn(),{user:s}=ye();return{signAndSendTransaction:async({transaction:o,address:c,chain:l="solana:mainnet",options:d})=>{async function u(e){let{signedTransaction:n}=await i({transaction:e,address:c,chain:l,options:{...d,uiOptions:{...d?.uiOptions,showWalletUIs:!1}}}),{signature:t}=await r(l).sendAndConfirmTransaction(n);return{signature:t}}return n({showWalletUIs:d?.uiOptions?.showWalletUIs})?u(o):new Promise((async(n,i)=>{let r,p,m=me(s,c);if("privy"!==m?.walletClientType)return void i(new se("Wallet is not a Privy wallet",void 0,oe.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:f,entropyIdVerifier:g}=F(s,m),h=fe(m);function y(e){return n=>{i(n instanceof se?n:new se("Failed to connect to wallet",n,e))}}let w={account:m,transaction:o,chain:l,signOnly:!1,uiOptions:d?.uiOptions||{},onConfirm:u,onSuccess:n,onFailure:y(oe.TRANSACTION_FAILURE)},v={recoveryMethod:m.recoveryMethod,connectingWalletAddress:m.address,entropyId:f,entropyIdVerifier:g,isUnifiedWallet:h,onCompleteNavigateTo:Qn,onFailure:y(oe.UNKNOWN_CONNECT_WALLET_ERROR)};e.fundingConfig&&(r=we({address:c,appConfig:e,methodScreen:E,fundWalletConfig:{...d,asset:"native-currency",chain:l},externalSolanaFundingScreen:st}),p={amount:e.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:l,destinationAddress:c,afterSuccessScreen:Qn,sourceWalletData:void 0}),a({connectWallet:v,standardSignAndSendTransaction:w,funding:r,solanaFundingData:p}),t(_)}))}}}(),r=z((()=>{let e=[...ge(n).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],t=ue(n);return t.length?[...e,...t]:e}),[n]),s=z((()=>({signMessage:async({message:e,address:n,options:a})=>await t({message:e,address:n,options:a}),signTransaction:async({transaction:e,address:n,chain:t,options:i})=>await a({transaction:e,address:n,chain:t,options:i}),async signAndSendTransaction({transaction:e,address:n,chain:t,options:a}){let{signature:r}=await i({transaction:e,address:n,chain:t,options:a});return{signature:r}}})),[t,a,i]);return ne((()=>{Gn?.setImplementation(s)}),[s]),ne((()=>{var n;!e||(n=Zn.accounts).length===r.length&&n.every(((e,n)=>e.address===r[n]?.address))||Gn?.emit("accountChanged",r)}),[e,r]),{ready:e,wallet:Zn}}function Xn(){let{client:e}=ce(),{ready:n,wallet:t}=zn(),[a,i]=ee([]),[r,s]=ee([]);return ne((()=>{let e=[t,...a.filter((e=>"solana"===e.chainType&&!!e.wallet.features)).map((e=>e.wallet))];s(e);let n=e.map((n=>n.features["standard:events"]?.on("change",(()=>{s([...e])}))));return()=>{n.forEach((e=>e?.()))}}),[a]),ne((()=>{if(!n)return;i(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let t=()=>{i(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",t),()=>{e.connectors?.off("connectorInitialized",t)}}),[n,e.connectors]),{ready:n,wallets:r}}function et(){let{ready:e,wallets:n}=Xn();return{ready:e,wallets:z((()=>n.flatMap((e=>e.accounts.map((n=>new ie({wallet:e,account:n})))))),[n])}}function nt(e){return xe().decode(e)}function tt(e){return BigInt(Math.floor(1e9*parseFloat(e)))}function at(e){return+it.format(parseFloat(e.toString())/1e9)}let it=Intl.NumberFormat(void 0,{maximumFractionDigits:8});async function rt({tx:e,solanaClient:n,amount:t,asset:a,tokenPrice:i}){if(!e)return null;if("SOL"===a&&i){let a=tt(t),r=C(a,i),s=await Mn({solanaClient:n,tx:e});return{amountInUsd:r,feeInUsd:i?C(s,i):void 0,totalInUsd:C(a+s,i)}}if("USDC"===a&&i){let a="$"+t,r=await Mn({solanaClient:n,tx:e}),s=function(e,n){let t=parseFloat(e.toString())/W*n;return t<.01?0:t}(r,i);return{amountInUsd:a,feeInUsd:C(r,i),totalInUsd:"$"+(parseFloat(t)+s).toFixed(2)}}if("SOL"===a){let a=tt(t),i=await Mn({solanaClient:n,tx:e});return{amountInSol:t+" SOL",feeInSol:at(i)+" SOL",totalInSol:at(a+i)+" SOL"}}return{amountInUsdc:t+" USDC",feeInSol:at(await Mn({solanaClient:n,tx:e}))+" SOL"}}const st={component:function(){let e=A(),{closePrivyModal:n,createAnalyticsEvent:t}=ce(),{data:a,setModalData:i,navigate:r}=b(),{wallets:s}=et(),[o,l]=ee("preparing"),[m,g]=ee(),[h,y]=ee(),[w,v]=ee();if(!a?.solanaFundingData)throw Error("Funding config is missing");if(!a.solanaFundingData.sourceWalletData)throw Error("Funding config is missing source wallet data");let{amount:I,asset:T,chain:S,sourceWalletData:O,destinationAddress:k,afterSuccessScreen:E}=a.solanaFundingData,F=s.find((e=>e.address===O.address&&M(O.walletClientType)===M(e.standardWallet.name))),x=Hn()(S),{tokenPrice:_,isTokenPriceLoading:P}=j("solana");return ne((()=>{if("preparing"!==o||P||!F)return;let e="SOL"===T?tt(I):function(e){return BigInt(Math.floor(1e6*parseFloat(e)))}(I);y({amount:("SOL"===T&&_?C(e,_):I)??I}),("SOL"===T?async function({solanaClient:e,source:n,destination:t,amountInLamports:a}){let{value:i}=await e.rpc.getLatestBlockhash().send(),r={address:n},s=Se(Me({version:0}),(e=>je(r,e)),(e=>Ce(i,e)),(e=>Be(Le({amount:a,source:r,destination:t}),e)),(e=>Ee(e)));return new Uint8Array(Fe().encode(s))}({solanaClient:x,source:F.address,destination:k,amountInLamports:e}):async function({solanaClient:e,source:n,destination:t,amountInBaseUnits:a}){let i=U(e.chain),{value:r}=await e.rpc.getLatestBlockhash().send(),s={address:n},[o]=await Ne({mint:i,owner:n,tokenProgram:f}),[c]=await Ne({mint:i,owner:t,tokenProgram:f}),[l,d]=await Promise.all([e.rpc.getAccountInfo(o,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null)),e.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null))]);if(!l?.value)throw Error(`Source token account does not exist for address: ${n}`);let u=$e({payer:s,ata:c,owner:t,mint:i}),p=Se(Me({version:0}),(e=>je(s,e)),(e=>Ce(r,e)),(e=>d?.value?e:Be(u,e)),(e=>Be(Re({source:o,destination:c,authority:s,amount:a}),e)),(e=>Ee(e)));return new Uint8Array(Fe().encode(p))}({solanaClient:x,source:F.address,destination:k,amountInBaseUnits:e})).then(g).catch((e=>{l("error"),v(e)}))}),[o,I,T,S,F,k,P,_]),ne((()=>{"preparing"===o&&m&&rt({tx:m,solanaClient:x,amount:I,asset:T,tokenPrice:_}).then((e=>{l("loaded"),y({amount:e?.amountInUsd??e?.amountInUsdc??e?.amountInSol??I,fee:e?.feeInUsd??e?.feeInSol,total:e?.totalInUsd??e?.totalInSol})})).catch((e=>{l("error"),v(e)}))}),[m,I,T,o,_]),ne((()=>{"error"===o&&w&&(i({errorModalData:{error:w,previousScreen:st},solanaFundingData:a.solanaFundingData}),r(B,!1))}),[o,r]),ne((()=>{if("success"!==o)return;let e=setTimeout(E?()=>r(E):n,D);return()=>clearTimeout(e)}),[o]),/*#__PURE__*/Y(G,"success"===o?{children:[/*#__PURE__*/K(L,{}),/*#__PURE__*/K(N,{}),/*#__PURE__*/Y($,{children:[/*#__PURE__*/K(Z,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/K(c,{title:"Success!",description:`You’ve successfully added ${I} ${T} to your ${e.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/K(d,{}),/*#__PURE__*/K(u,{})]}:"preparing"===o||"loaded"===o||"sending"===o?{children:[/*#__PURE__*/K(L,{}),/*#__PURE__*/K(R,{style:{marginTop:"16px"},children:/*#__PURE__*/K(V,{icon:F?.standardWallet.icon,name:F?.standardWallet.name})}),/*#__PURE__*/K(c,{style:{marginTop:"8px",marginBottom:"12px"},title:"sending"===o&&F?`Confirming with ${F.standardWallet.name}`:"Confirm transaction"}),/*#__PURE__*/K(Ve,{rows:[{label:"Source",value:re(O.address)},{label:"Destination",value:re(k)},{label:"Network",value:J(S)},{label:"Amount",value:h?.amount,isLoading:"preparing"===o},{label:"Estimated fee",value:h?.fee,isLoading:"preparing"===o},{label:"Total",value:h?.total,isLoading:"preparing"===o}]}),/*#__PURE__*/K(p,{style:{marginTop:"1rem"},loading:"preparing"===o||"sending"===o,onClick:function(){"loaded"===o&&m&&F&&(l("sending"),async function({transaction:e,chain:n,sourceWallet:t,solanaClient:a}){let{hasFunds:i}=await jn({solanaClient:a,tx:e});if(!i)throw new se(`Wallet ${re(t.address)} does not have enough funds.`,void 0,oe.INSUFFICIENT_BALANCE);let r=nt((await t.signAndSendTransaction({transaction:e,chain:n}).catch((e=>{throw new se("Transaction was rejected by the user",e,oe.TRANSACTION_FAILURE)}))).signature);return await Vn({rpcSubscriptions:a.rpcSubscriptions,signature:r,timeout:2e4}),r}({solanaClient:x,transaction:m,chain:S,sourceWallet:F}).then((e=>{l("success"),t({eventName:H,payload:{provider:"external",status:"success",txHash:e,address:F.address,value:I,chainType:"solana",clusterName:S,token:T,destinationAddress:k,destinationValue:I,destinationChainType:"solana",destinationClusterName:S,destinationToken:T}})})).catch((e=>{l("error"),v(e)})))},children:"Confirm"}),/*#__PURE__*/K(u,{})]}:{children:[/*#__PURE__*/K(L,{}),/*#__PURE__*/K(Q,{}),/*#__PURE__*/K("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/K(u,{})]})}};function ot(){let e=A(),{openModal:n}=ce(),{setModalData:t}=b();return{fundWallet:async({address:a,options:i})=>{let r=i?.amount||e.fundingConfig?.defaultRecommendedAmount||"1",s=i?.asset||e.fundingConfig?.defaultRecommendedCurrency.asset||"native-currency",o=i?.chain||"solana:mainnet";t({funding:we({address:a,appConfig:e,methodScreen:E,fundWalletConfig:{...i,amount:r,asset:s,chain:o},externalSolanaFundingScreen:st}),solanaFundingData:{amount:r,asset:"native-currency"===s?"SOL":"USDC",chain:o,destinationAddress:a,sourceWalletData:void 0}}),n(E)}}}function ct(){let{user:e,getAccessToken:n}=de(),{walletProxy:t,openModal:a,client:i}=ce(),{setModalData:r}=b(),s=A();return z((()=>({exportWallet:o=>new Promise((async(c,l)=>{if(!e)return void l(new se("User must be authenticated before exporting their Privy wallet"));let d=o?.address?me(e,o.address):he(e);if(!d)return void l(new se("User must have an embedded wallet."));if(!ve(d))return void l(Error(`Export is not supported for ${d.chainType} wallets`));let u=fe(d),{entropyId:p,entropyIdVerifier:m}=F(e,d);await n()?t?(r({connectWallet:{recoveryMethod:d.recoveryMethod,connectingWalletAddress:d.address,isUnifiedWallet:u,entropyId:p,entropyIdVerifier:m,onCompleteNavigateTo:q,onFailure:l,shouldForceMFA:!0},keyExport:{appId:s.id,appClientId:s.appClientId,origin:i.apiUrl,address:d.address,entropyId:p,entropyIdVerifier:m,hdWalletIndex:d.walletIndex,chainType:d.chainType,walletId:d.id,isUnifiedWallet:u,imported:d.imported,onSuccess:c,onFailure:l}}),a(_)):l(new se("Wallet not ready for export")):l(new se("Must have valid access token."))}))})),[e,n,t,a,i,r,s])}export{ct as a,nt as b,et as c,Xn as d,Mn as f,Jn as g,jn as s,ot as u};