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