@privy-io/react-auth 3.5.0 → 3.5.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.
Files changed (31) hide show
  1. package/dist/cjs/{EmbeddedWalletConnectingScreen-D_YsihzO.js → EmbeddedWalletConnectingScreen-i0UDHMDq.js} +1 -1
  2. package/dist/cjs/{SignRequestScreen-MGUrxay9.js → SignRequestScreen-H5r467q6.js} +1 -1
  3. package/dist/cjs/abstract-smart-wallets.js +1 -1
  4. package/dist/cjs/{events-context-Dn0fJZ2h.js → events-context-Cgq8fGB0.js} +1 -1
  5. package/dist/cjs/extended-chains.js +1 -1
  6. package/dist/cjs/index.js +2 -2
  7. package/dist/cjs/internal.js +1 -1
  8. package/dist/cjs/{smart-wallets-5q-XiLac.js → smart-wallets-B0bTYa6G.js} +1 -1
  9. package/dist/cjs/smart-wallets.js +1 -1
  10. package/dist/cjs/solana.js +1 -1
  11. package/dist/cjs/ui.js +1 -1
  12. package/dist/cjs/{use-export-wallet-C7R1A29C.js → use-export-wallet-BhYG6ocQ.js} +1 -1
  13. package/dist/cjs/{useActiveWallet-E94x91YD.js → useActiveWallet-BoPIudwB.js} +1 -1
  14. package/dist/cjs/{usePrivy-BEZb4Uky.js → usePrivy-CLLJiDdU.js} +1 -1
  15. package/dist/dts/index.d.mts +1 -1
  16. package/dist/dts/index.d.ts +1 -1
  17. package/dist/esm/{EmbeddedWalletConnectingScreen-ilL_GaJO.mjs → EmbeddedWalletConnectingScreen-BehtOUIO.mjs} +1 -1
  18. package/dist/esm/{SignRequestScreen-B3UhThlp.mjs → SignRequestScreen-W1brL2hg.mjs} +1 -1
  19. package/dist/esm/abstract-smart-wallets.mjs +1 -1
  20. package/dist/esm/{events-context-CB7CF-OC.mjs → events-context-BKqrDYHW.mjs} +1 -1
  21. package/dist/esm/extended-chains.mjs +1 -1
  22. package/dist/esm/index.mjs +2 -2
  23. package/dist/esm/internal.mjs +1 -1
  24. package/dist/esm/{smart-wallets-DINPJbZr.mjs → smart-wallets-CZ7EzP9s.mjs} +1 -1
  25. package/dist/esm/smart-wallets.mjs +1 -1
  26. package/dist/esm/solana.mjs +1 -1
  27. package/dist/esm/ui.mjs +1 -1
  28. package/dist/esm/{use-export-wallet-CED1-6Km.mjs → use-export-wallet-CPxLgKFx.mjs} +1 -1
  29. package/dist/esm/{useActiveWallet-2NxrDpZU.mjs → useActiveWallet-Bw1ry9JQ.mjs} +1 -1
  30. package/dist/esm/{usePrivy-DhsfOIjx.mjs → usePrivy-BJ3NMQui.mjs} +1 -1
  31. package/package.json +4 -4
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./events-context-Dn0fJZ2h.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("./EmbeddedWalletConnectingScreen-D_YsihzO.js"),s=require("./internal-context-CeWKmK5u.js"),o=require("./usePrivy-BEZb4Uky.js"),l=require("eventemitter3"),c=require("@scure/base"),d=require("./use-sign-with-user-signer-BtJVKMQr.js"),u=require("styled-components"),p=require("@solana/kit"),m=require("./SignRequestScreen-MGUrxay9.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(r),v=/*#__PURE__*/h(l);const A=["solana:mainnet","solana:devnet","solana:testnet"];function S({rows:e}){/*#__PURE__*/return n.jsx(i.Rows,{children:e.filter((e=>!!e)).map(((e,t)=>null!=e.value||e.isLoading?/*#__PURE__*/n.jsxs(i.Row,{children:[/*#__PURE__*/n.jsx(i.LabelSm,{children:e.label}),/*#__PURE__*/n.jsx(i.Value,{$isLoading:e.isLoading,children:e.value})]},t):null))})}function T(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var I=0,b="__private_"+I+++"__implementation";class C extends v.default{setImplementation(e){T(this,b)[b]=e}async signMessage(e){return T(this,b)[b].signMessage(e)}async signAndSendTransaction(e){return T(this,b)[b].signAndSendTransaction(e)}async signTransaction(e){return T(this,b)[b].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,b,{writable:!0,value:void 0}),T(this,b)[b]=e}}function E(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var P=0;function x(e){return"__private_"+P+++"_"+e}var O=/*#__PURE__*/x("_address"),k=/*#__PURE__*/x("_publicKey"),F=/*#__PURE__*/x("_chains"),_=/*#__PURE__*/x("_features"),M=/*#__PURE__*/x("_label"),j=/*#__PURE__*/x("_icon");class W{get address(){return E(this,O)[O]}get publicKey(){return E(this,k)[k].slice()}get chains(){return E(this,F)[F].slice()}get features(){return E(this,_)[_].slice()}get label(){return E(this,M)[M]}get icon(){return E(this,j)[j]}constructor({address:e,publicKey:n,label:t,icon:a}){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}),Object.defineProperty(this,j,{writable:!0,value:void 0}),E(this,O)[O]=e,E(this,k)[k]=n,E(this,F)[F]=A,E(this,M)[M]=t,E(this,j)[j]=a,E(this,_)[_]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===W&&Object.freeze(this)}}function U(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 L(e){return"__private_"+D+++"_"+e}var R=/*#__PURE__*/L("_listeners"),B=/*#__PURE__*/L("_version"),N=/*#__PURE__*/L("_name"),$=/*#__PURE__*/L("_icon"),V=/*#__PURE__*/L("_injection"),q=/*#__PURE__*/L("_isPrivyWallet"),G=/*#__PURE__*/L("_accounts"),J=/*#__PURE__*/L("_on"),H=/*#__PURE__*/L("_emit"),K=/*#__PURE__*/L("_off"),Y=/*#__PURE__*/L("_connected"),Q=/*#__PURE__*/L("_connect"),Z=/*#__PURE__*/L("_disconnect"),z=/*#__PURE__*/L("_signMessage"),X=/*#__PURE__*/L("_signAndSendTransaction"),ee=/*#__PURE__*/L("_signTransaction");function ne(e,...n){U(this,R)[R][e]?.forEach((e=>e.apply(null,n)))}function te(e,n){U(this,R)[R][e]=U(this,R)[R][e]?.filter((e=>n!==e))}const ae=/*#__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)")),re=({instruction:e,fees:t,transactionInfo:a,solPrice:r,chain:s})=>/*#__PURE__*/n.jsxs(i.Rows,{children:[a?.action&&/*#__PURE__*/n.jsxs(i.Row,{children:[/*#__PURE__*/n.jsx(i.LabelSm,{children:"Action"}),/*#__PURE__*/n.jsx(i.Value,{children:a.action})]}),null!=e?.total&&/*#__PURE__*/n.jsxs(i.Row,{children:[/*#__PURE__*/n.jsx(i.LabelSm,{children:"Total"}),/*#__PURE__*/n.jsx(i.Value,{children:e.total})]}),!e?.total&&null!=e?.amount&&/*#__PURE__*/n.jsxs(i.Row,{children:[/*#__PURE__*/n.jsx(i.LabelSm,{children:"Total"}),/*#__PURE__*/n.jsx(i.Value,{children:/*#__PURE__*/n.jsx(i.SolanaPriceDisplay,{quantities:[e.amount,t],tokenPrice:r})})]}),/*#__PURE__*/n.jsxs(i.Row,{children:[/*#__PURE__*/n.jsx(i.LabelSm,{children:"Fees"}),/*#__PURE__*/n.jsx(i.Value,{children:/*#__PURE__*/n.jsx(i.SolanaPriceDisplay,{quantities:[t],tokenPrice:r})})]}),e?.to&&/*#__PURE__*/n.jsxs(i.Row,{children:[/*#__PURE__*/n.jsx(i.LabelSm,{children:"To"}),/*#__PURE__*/n.jsx(i.Value,{children:/*#__PURE__*/n.jsx(i.WalletLink,{walletAddress:e.to,chainId:s,chainType:"solana"})})]})]}),ie=({fees:e,onClose:t,receiptHeader:a,receiptDescription:r,transactionInfo:s,solPrice:o,signOnly:l,instruction:c,chain:d})=>/*#__PURE__*/n.jsxs(n.Fragment,{children:[/*#__PURE__*/n.jsx(i.ModalHeader,{onClose:t}),/*#__PURE__*/n.jsx(i.e$2,{style:{marginBottom:"16px"},children:/*#__PURE__*/n.jsxs("div",{children:[/*#__PURE__*/n.jsx(ae,{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(i.CenteredScreenHeader,{title:a??`Transaction ${l?"signed":"complete"}!`,description:r??"You're all set."}),/*#__PURE__*/n.jsx(re,{solPrice:o,instruction:c,fees:e,transactionInfo:s,chain:d}),/*#__PURE__*/n.jsx(i.Grow,{}),/*#__PURE__*/n.jsx(se,{loading:!1,onClick:t,children:"Close"}),/*#__PURE__*/n.jsx(i.RefactorSpacerBottom,{}),/*#__PURE__*/n.jsx(i.BlobbyFooter,{})]});let se=/*#__PURE__*/u.styled(i.PrimaryButton).withConfig({displayName:"SubmitButton",componentId:"sc-3cb7ee42-0"})(["&&{margin-top:24px;}transition:color 350ms ease,background-color 350ms ease;"]);function oe(e){return new Uint8Array(p.getTransactionDecoder().decode(e).messageBytes)}async function le(e,n){try{return await e}catch{return n}}const ce=(...e)=>{if("undefined"==typeof Buffer)throw new s.PrivyClientError("Buffer is not defined.",void 0,s.PrivyErrorCode.BUFFER_NOT_DEFINED);return Buffer.from(...e)};function de(e){switch(e){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet"}}async function ue({privyClient:e,chain:n,mint:t}){let a=i.DEFAULT_TOKENS_DATA[n];if(!a[t]){let r=await e.getSplTokenMetadata({mintAddress:t,cluster:de(n)});r&&(a[t]={address:t,symbol:r.symbol,decimals:r.decimals})}return a[t]}async function pe({solanaClient:e,tx:n}){let t=p.getBase64Decoder().decode(oe(n)),{value:a}=await e.rpc.getFeeForMessage(t).send();return a??0n}async function me({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 me({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 ge({tx:e,solanaClient:n,privyClient:t,checkFunds:a}){let r=p.getCompiledTransactionMessageDecoder().decode(oe(e)),s=r.staticAccounts[0]??"",o=await pe({solanaClient:n,tx:e}),l=a?await le(me({solanaClient:n,tx:e})):void 0,c=l?.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:n,message:r});for(let e of r.instructions){let a=r.staticAccounts[e.programAddressIndex]||"";if(a!==i.TOKEN_PROGRAM_ID&&a!==i.TOKEN_2022_PROGRAM_ID)if(a!==i.SYSTEM_PROGRAM_ID){if(a===i.ASSOCIATED_TOKEN_PROGRAM_ID){let n=await le(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}}(e,m,a));if(!n){u.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}if(u.push(n),n.ata&&n.owner&&n.mint){d[n.ata]={owner:n.owner,mint:n.mint};continue}}if(i.RAYDIUM_SWAP_PROGRAM_IDS.includes(a)){let r=await le(we(e,m,n,t,a));if(!r){u.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}u.push(r)}else if(i.JUPITER_SWAP_PROGRAM_IDS.includes(a)){let r=await le(ve(e,m,n,t,a));if(!r){u.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}u.push(r)}else u.push({type:"unknown",program:a,discriminator:e.data?.[0]})}else{let n=await le(ye(e,m));if(!n){u.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}u.push(n)}else{let r=await le(he(e,m,n,t,d,a));if(!r){u.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}u.push(r),"spl-transfer"===r.type&&(r.fromAta&&r.fromAccount&&r.token.address&&(d[r.fromAta]??={owner:r.fromAccount,mint:r.token.address}),r.toAta&&r.toAccount&&r.token.address&&(d[r.toAta]??={owner:r.toAccount,mint:r.token.address}))}}return{spender:s,fee:o,instructions:u,hasFunds:!!c}}function fe(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 he(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,[l,c,d]=o,u="",p=c?r[c]:void 0;if(p)n=p.owner,u=p.mint;else if(c){let e=await t.rpc.getAccountInfo(c,{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&&l){let e=await t.rpc.getAccountInfo(l,{commitment:"confirmed",encoding:"jsonParsed"}).send(),n=e.value?.data;u=n?.parsed?.info?.mint??""}let m=await ue({privyClient:a,chain:t.chain,mint:u}),g=m?.symbol??"";return s??=m?.decimals??9,{type:"spl-transfer",program:i,fromAta:l,fromAccount:d,toAta:c,toAccount:n,value:fe(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 ye(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:i.SYSTEM_PROGRAM_ID,account:n?.toString(),value:fe(e.data,4),withSeed:!1}}if(2===t){let[n,t]=a;return{type:"sol-transfer",program:i.SYSTEM_PROGRAM_ID,fromAccount:n,toAccount:t,token:{symbol:"SOL",decimals:9},value:fe(e.data,4),withSeed:!1}}if(3===t){let[,n]=a;return{type:"create-account",program:i.SYSTEM_PROGRAM_ID,account:n,withSeed:!0,value:fe(e.data.slice(e.data.length-32-8-8))}}if(11===t){let[n,t]=a;return{type:"sol-transfer",program:i.SYSTEM_PROGRAM_ID,fromAccount:n,toAccount:t,value:fe(e.data,4),token:{symbol:"SOL",decimals:9},withSeed:!0}}throw Error(`System program instruction type ${t} not supported`)}async function we(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 ue({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:s?await ue({privyClient:a,chain:t.chain,mint:s}):void 0,amountIn:fe(e.data,8),minimumAmountOut:fe(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 ue({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:s?await ue({privyClient:a,chain:t.chain,mint:s}):void 0,maxAmountIn:fe(e.data,8),amountOut:fe(e.data,16)}}throw Error(`Raydium swap program instruction type ${s} not supported`)}async function ve(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 ue({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:i?await ue({privyClient:a,chain:t.chain,mint:i}):void 0,outAmount:fe(e.data,e.data.length-1-2-8-8),quotedInAmount:fe(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 ue({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:i?await ue({privyClient:a,chain:t.chain,mint:i}):void 0,outAmount:fe(e.data,e.data.length-1-2-8-8),quotedInAmount:fe(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 ue({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:i?await ue({privyClient:a,chain:t.chain,mint:i}):void 0,inAmount:fe(e.data,e.data.length-1-2-8-8),quotedOutAmount:fe(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 Ae({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 Se({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 Ae({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 Te(){let n=e.useAppConfig(),t=a.useMemo((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((e=>[e,n.solanaRpcs[e]?Se({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 Ie={component:()=>{let{data:t,onUserCloseViaDialogOrKeybindRef:o,setModalData:l,navigate:c}=i.usePrivyModal(),{client:d,closePrivyModal:u,walletProxy:m,showFiatPrices:g}=s.usePrivyInternal(),f=e.useAppConfig(),{user:h}=i.usePrivyContext(),y=Te()(t?.standardSignAndSendTransaction?.chain??"solana:mainnet"),[w,v]=a.useState(t?.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(),_=t?.standardSignAndSendTransaction?.account,M=!!t?.standardSignAndSendTransaction?.signOnly,j=_?.imported?i.getImportedPrivySolanaWallets(h).find((e=>e.address===_.address)):i.getPrivyPrimaryWallet(h),{solPrice:W,isSolPriceLoading:U}=i.useGetSolPrice({enabled:g}),D=a.useMemo((()=>{if(!A)return;let e=A.spender,n=i.getNativeCurrencyFromLamports(A.fee),t=i.getNativeCurrencyFromLamports(b.value,3,!0),a=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=a.at(0);if(!s||a.length>1)return{fee:n,spender:e,balance:t};if("sol-transfer"===s.type)return{fee:n,spender:e,balance:t,total:i.getNativeCurrencyFromLamports(s.value)};if("spl-transfer"===s.type)return{fee:n,spender:e,balance:t,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:e,balance:t,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:e,balance:t,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:e,balance:t,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:e,balance:t,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:e,balance:t}}),[A,_?.address,b]),L=a.useMemo((()=>{let e;if(!A||!g||!W||U)return;function n(...e){return i.getFormattedUsdFromLamports(e.reduce(((e,n)=>e+n),0n),W??0)}_?.address===A.spender&&(e=n(A.fee));let t=n(b.value),a=A.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)).at(0);return!a||A.instructions.length>1?{fee:e,balance:t}:"sol-transfer"===a.type?{fee:e,balance:t,total:n(a.value,_?.address===A.spender?A.fee:0n)}:"spl-transfer"===a.type?{fee:e,balance:t,total:`${r.formatTokenAmount({amount:a.value,decimals:a.token.decimals})} ${a.token.symbol}`}:{fee:e,balance:t}}),[A,g,W,U,_?.address,b]);if(a.useEffect((()=>{!async function(){if(w&&d)try{I(void 0);let e=await ge({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||!t?.standardSignAndSendTransaction||!_){let e=Error("Invalid transaction request");/*#__PURE__*/return n.jsx(i.ErrorScreenView,{error:e,allowlistConfig:f.allowlistConfig,onRetry:()=>{t?.standardSignAndSendTransaction?.onFailure(e),u({shouldCallAuthOnSuccess:!1})}})}let R=()=>{if(!E)return x.signature||x.signedTransaction?t?.standardSignAndSendTransaction?.onSuccess({signature:x.signature,signedTransaction:x.signedTransaction}):t?.standardSignAndSendTransaction?.onFailure(k??T??Error("User exited the modal before submitting the transaction")),u({shouldCallAuthOnSuccess:!1})};o.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(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 n.jsx(ie,{fees:x.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:M,instruction:"sol-transfer"===a?.type?{to:a.toAccount,amount:a.value}:{to:a?.toAccount||a?.toAta,total:D?.total}})}return k?/*#__PURE__*/n.jsx(i.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,n){return p.pipe(p.getCompiledTransactionMessageDecoder().decode(oe(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(i.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: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,isSponsored:!!t.standardSignAndSendTransaction?.isSponsored,parseError:T,onClick:$?async()=>{if(_){if(!N)throw Error("Funding wallet is not enabled");l({...t,funding:{...t.funding,methodScreen:i.FundingMethodSelectionScreen},solanaFundingData:t?.solanaFundingData}),c(i.FundingMethodSelectionScreen)}}:async()=>{try{if(P(!0),E||!_||!m||!h||!j)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 O({...e,fees:n?.fee})}O(e)}catch(e){console.warn({transaction:w,error:e}),F(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 Ce(){let{isHeadlessSigning:e,walletProxy:n,initializeWalletProxy:t,recoverEmbeddedWallet:a,openModal:l,privy:c,client:u}=s.usePrivyInternal(),{user:p}=o.usePrivy(),{setModalData:g}=i.usePrivyModal(),{signWithUserSigner:f}=d.useSignWithUserSigner();return{signMessage:({message:o,address:d,options:h})=>new Promise((async(y,w)=>{let v=i.getPrivyWalletWithAddress(p,d);if("privy"!==v?.walletClientType)return void w(new s.PrivyClientError("Wallet is not a Privy wallet",void 0,s.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:A,entropyIdVerifier:S}=i.getEntropyDetailsForUser(p,v),T=i.getIsUnifiedWallet(v),I=ce(o).toString("base64");if(I.length<1)return void w(new s.PrivyClientError("Message must be a non-empty string",void 0,s.PrivyErrorCode.INVALID_MESSAGE));let b=async()=>{let e;if(!p)throw Error("User must be authenticated before signing with a Privy wallet");let i=await u.getAccessToken();if(!i)throw Error("User must be authenticated to use their embedded wallet.");let s=n??await t(15e3);if(!s)throw Error("Failed to initialize embedded wallet proxy.");if(!await a({address:v.address}))throw Error("Unable to connect to wallet");if(T){let n=await r.rpc(c,f,{chain_type:"solana",method:"signMessage",params:{message:I,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:n}=await s.rpc({accessToken:i,entropyId:A,entropyIdVerifier:S,chainType:"solana",hdWalletIndex:v.walletIndex??0,requesterAppId:h?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:I}}});e=n.data.signature}return e};if(e({showWalletUIs:h?.uiOptions?.showWalletUIs}))try{let e=await b(),n=new Uint8Array(ce(e,"base64"));y({signature:n})}catch(e){w(e)}else g({signMessage:{method:"solana_signMessage",data:I,confirmAndSign:b,onSuccess:e=>{y({signature:new Uint8Array(ce(e,"base64"))})},onFailure:e=>{w(e)},uiOptions:h?.uiOptions??{}},connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,entropyId:A,entropyIdVerifier:S,isUnifiedWallet:T,onCompleteNavigateTo:m.SignRequestScreen,onFailure:e=>{w(new s.PrivyClientError("Failed to connect to wallet",e,s.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR))}}}),l(i.EmbeddedWalletConnectingScreen)}))}}function Ee(){let{isHeadlessSigning:e,openModal:n}=s.usePrivyInternal(),{setModalData:t}=i.usePrivyModal(),{signMessage:a}=Ce(),{user:r}=o.usePrivy();return{signTransaction:async({transaction:o,options:l,chain:c="solana:mainnet",address:d})=>{async function u(e){let{signature:n}=await a({message:oe(e),address:d,options:{...l,uiOptions:{...l?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:be(e,d,n)}}return e({showWalletUIs:l?.uiOptions?.showWalletUIs})?u(o):new Promise((async(e,a)=>{let p=i.getPrivyWalletWithAddress(r,d);if("privy"!==p?.walletClientType)return void a(new s.PrivyClientError("Wallet is not a Privy wallet",void 0,s.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:m,entropyIdVerifier:g}=i.getEntropyDetailsForUser(r,p),f=i.getIsUnifiedWallet(p);function h(e){return n=>{n instanceof s.PrivyClientError?a(n):a(new s.PrivyClientError("Failed to connect to wallet",n,e))}}let y={account:p,transaction:o,chain:c,signOnly:!0,uiOptions:l?.uiOptions||{},onConfirm:u,onSuccess:e,onFailure:h(s.PrivyErrorCode.TRANSACTION_FAILURE)};t({connectWallet:{recoveryMethod:p.recoveryMethod,connectingWalletAddress:p.address,entropyId:m,entropyIdVerifier:g,isUnifiedWallet:f,onCompleteNavigateTo:Ie,onFailure:h(s.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:y}),n(i.EmbeddedWalletConnectingScreen)}))}}}let Pe=new C({signTransaction:s.notImplementedWithMessage("signTransaction was not injected"),signAndSendTransaction:s.notImplementedWithMessage("signAndSendTransaction was not injected"),signMessage:s.notImplementedWithMessage("signMessage was not injected")}),xe=new class{get version(){return U(this,B)[B]}get name(){return U(this,N)[N]}get icon(){return U(this,$)[$]}get chains(){return A.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:U(this,Q)[Q]},"standard:disconnect":{version:"1.0.0",disconnect:U(this,Z)[Z]},"standard:events":{version:"1.0.0",on:U(this,J)[J]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:U(this,X)[X]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:U(this,ee)[ee]},"solana:signMessage":{version:"1.0.0",signMessage:U(this,z)[z]},"privy:":{privy:{signMessage:U(this,V)[V].signMessage,signTransaction:U(this,V)[V].signTransaction,signAndSendTransaction:U(this,V)[V].signAndSendTransaction}}}}get accounts(){return U(this,G)[G].slice()}get isPrivyWallet(){return U(this,q)[q]}constructor({name:e,icon:n,version:t,injection:a,wallets:r}){Object.defineProperty(this,H,{value:ne}),Object.defineProperty(this,K,{value:te}),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,J,{writable:!0,value:void 0}),Object.defineProperty(this,Y,{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}),Object.defineProperty(this,ee,{writable:!0,value:void 0}),U(this,R)[R]={},U(this,J)[J]=(e,n)=>(U(this,R)[R][e]?.push(n)||(U(this,R)[R][e]=[n]),()=>U(this,K)[K](e,n)),U(this,Y)[Y]=e=>{null!=e&&(U(this,G)[G]=e.map((({address:e})=>new W({address:e,publicKey:c.base58.decode(e)})))),U(this,H)[H]("change",{accounts:this.accounts})},U(this,Q)[Q]=async()=>(U(this,H)[H]("change",{accounts:this.accounts}),{accounts:this.accounts}),U(this,Z)[Z]=async()=>{U(this,H)[H]("change",{accounts:this.accounts})},U(this,z)[z]=async(...e)=>{let n=[];for(let{account:t,...a}of e){let{signature:e}=await U(this,V)[V].signMessage({...a,address:t.address});n.push({signedMessage:a.message,signature:e})}return n},U(this,X)[X]=async(...e)=>{let n=[];for(let t of e){let{signature:e}=await U(this,V)[V].signAndSendTransaction({...t,transaction:t.transaction,address:t.account.address,chain:t.chain||"solana:mainnet",options:t.options});n.push({signature:e})}return n},U(this,ee)[ee]=async(...e)=>{let n=[];for(let{transaction:t,account:a,options:r,chain:i}of e){let{signedTransaction:e}=await U(this,V)[V].signTransaction({transaction:t,address:a.address,chain:i||"solana:mainnet",options:r});n.push({signedTransaction:e})}return n},U(this,N)[N]=e,U(this,$)[$]=n,U(this,B)[B]=t,U(this,V)[V]=a,U(this,G)[G]=[],U(this,q)[q]=!0,a.on("accountChanged",U(this,Y)[Y],this),U(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:Pe});function Oe(){let{ready:n}=i.useWallets(),{user:t}=o.usePrivy(),{signMessage:l}=Ce(),{signTransaction:u}=Ee(),{signAndSendTransaction:p}=function(){let n=e.useAppConfig(),{isHeadlessSigning:t,openModal:a}=s.usePrivyInternal(),{setModalData:l}=i.usePrivyModal(),{signTransaction:u}=Ee(),p=Te(),{user:m}=o.usePrivy(),{signWithUserSigner:g}=d.useSignWithUserSigner();return{signAndSendTransaction:async({transaction:e,address:d,chain:f="solana:mainnet",options:h})=>{async function y(e){if(h?.sponsor)return await S(e);let{signedTransaction:n}=await u({transaction:e,address:d,chain:f,options:{...h,uiOptions:{...h?.uiOptions,showWalletUIs:!1}}}),{signature:t}=await p(f).sendAndConfirmTransaction(n);return{signature:t}}if(t({showWalletUIs:h?.uiOptions?.showWalletUIs}))return y(e);let v=i.getPrivyWalletWithAddress(m,d);if("privy"!==v?.walletClientType)throw new s.PrivyClientError("Wallet is not a Privy wallet",void 0,s.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND);let A=i.getIsUnifiedWallet(v),S=async e=>{if(!A)throw new s.PrivyClientError("Sponsoring transactions is only supported for wallets on the TEE stack",s.PrivyErrorCode.INVALID_DATA);let t=new w.default({appId:n.id,clientId:n.appClientId,storage:i.f}),a=await r.rpc(t,g,{chain_type:"solana",method:"signAndSendTransaction",sponsor:!0,params:{transaction:Buffer.from(e).toString("base64"),encoding:"base64"},caip2:`solana:${(await p(f).rpc.getGenesisHash().send()).substring(0,32)}`,wallet_id:v.id});if(a.data&&"hash"in a.data)return{signature:c.base58.decode(a.data.hash)};throw Error("Failed to sign and send transaction")};return new Promise((async(t,r)=>{let c,u,{entropyId:p,entropyIdVerifier:g}=i.getEntropyDetailsForUser(m,v);function w(e){return n=>{n instanceof s.PrivyClientError?r(n):r(new s.PrivyClientError("Failed to connect to wallet",n,e))}}let S={account:v,transaction:e,chain:f,signOnly:!1,uiOptions:h?.uiOptions||{},onConfirm:y,onSuccess:t,onFailure:w(s.PrivyErrorCode.TRANSACTION_FAILURE),isSponsored:!!h?.sponsor},T={recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,entropyId:p,entropyIdVerifier:g,isUnifiedWallet:A,onCompleteNavigateTo:Ie,onFailure:w(s.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)};n.fundingConfig&&(c=o.prepareSolanaFundingModalData({address:d,appConfig:n,methodScreen:i.FundingMethodSelectionScreen,fundWalletConfig:{...h,asset:"native-currency",chain:f},externalSolanaFundingScreen:De}),u={amount:n.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:f,destinationAddress:d,afterSuccessScreen:Ie,sourceWalletData:void 0}),l({connectWallet:T,standardSignAndSendTransaction:S,funding:c,solanaFundingData:u}),a(i.EmbeddedWalletConnectingScreen)}))}}}(),m=a.useMemo((()=>{let e=[...i.getPrivySolanaHDWallets(t).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],n=i.getImportedPrivySolanaWallets(t);return n.length?[...e,...n]:e}),[t]),g=a.useMemo((()=>({signMessage:async({message:e,address:n,options:t})=>await l({message:e,address:n,options:t}),signTransaction:async({transaction:e,address:n,chain:t,options:a})=>await u({transaction:e,address:n,chain:t,options:a}),async signAndSendTransaction({transaction:e,address:n,chain:t,options:a}){let{signature:r}=await p({transaction:e,address:n,chain:t,options:a});return{signature:r}}})),[l,u,p]);return a.useEffect((()=>{Pe?.setImplementation(g)}),[g]),a.useEffect((()=>{var e;!n||(e=xe.accounts).length===m.length&&e.every(((e,n)=>e.address===m[n]?.address))||Pe?.emit("accountChanged",m)}),[n,m]),{ready:n,wallet:xe}}function ke(){let{client:e}=s.usePrivyInternal(),{ready:n,wallet:t}=Oe(),[r,i]=a.useState([]),[o,l]=a.useState([]);return a.useEffect((()=>{let e=[t,...r.filter((e=>"solana"===e.chainType&&!!e.wallet.features)).map((e=>e.wallet))];l(e);let n=e.map((n=>n.features["standard:events"]?.on("change",(()=>{l([...e])}))));return()=>{n.forEach((e=>e?.()))}}),[r]),a.useEffect((()=>{i(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let n=()=>{i(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",n),()=>{e.connectors?.off("connectorInitialized",n)}}),[n,e.connectors]),{ready:n,wallets:o}}function Fe(){let{ready:e,wallets:n}=ke();return{ready:e,wallets:a.useMemo((()=>n.flatMap((e=>e.accounts.map((n=>new r.ConnectedStandardSolanaWallet({wallet:e,account:n})))))),[n])}}function _e(e){return p.getBase58Decoder().decode(e)}function Me(e){return BigInt(Math.floor(1e9*parseFloat(e)))}function je(e){return+We.format(parseFloat(e.toString())/1e9)}let We=Intl.NumberFormat(void 0,{maximumFractionDigits:8});async function Ue({tx:e,solanaClient:n,amount:t,asset:a,tokenPrice:r}){if(!e)return null;if("SOL"===a&&r){let a=Me(t),s=i.getFormattedUsdFromLamports(a,r),o=await pe({solanaClient:n,tx:e});return{amountInUsd:s,feeInUsd:r?i.getFormattedUsdFromLamports(o,r):void 0,totalInUsd:i.getFormattedUsdFromLamports(a+o,r)}}if("USDC"===a&&r){let a="$"+t,s=await pe({solanaClient:n,tx:e}),o=function(e,n){let t=parseFloat(e.toString())/i.LAMPORTS_PER_SOL*n;return t<.01?0:t}(s,r);return{amountInUsd:a,feeInUsd:i.getFormattedUsdFromLamports(s,r),totalInUsd:"$"+(parseFloat(t)+o).toFixed(2)}}if("SOL"===a){let a=Me(t),r=await pe({solanaClient:n,tx:e});return{amountInSol:t+" SOL",feeInSol:je(r)+" SOL",totalInSol:je(a+r)+" SOL"}}return{amountInUsdc:t+" USDC",feeInSol:je(await pe({solanaClient:n,tx:e}))+" SOL"}}const De={component:function(){let t=e.useAppConfig(),{closePrivyModal:o,createAnalyticsEvent:l}=s.usePrivyInternal(),{data:c,setModalData:d,navigate:u}=i.usePrivyModal(),{wallets:m}=Fe(),[h,w]=a.useState("preparing"),[v,A]=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((e=>e.address===O.address&&i.toSolanaWalletClientType(O.walletClientType)===i.toSolanaWalletClientType(e.standardWallet.name))),M=Te()(x),{tokenPrice:j,isTokenPriceLoading:W}=i.useGetTokenPrice("solana");return a.useEffect((()=>{if("preparing"!==h||W||!_)return;let e="SOL"===P?Me(E):function(e){return BigInt(Math.floor(1e6*parseFloat(e)))}(E);I({amount:("SOL"===P&&j?i.getFormattedUsdFromLamports(e,j):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:M,source:_.address,destination:k,amountInLamports:e}):async function({solanaClient:e,source:n,destination:t,amountInBaseUnits:a}){let r=i.getUsdcMintAddress(e.chain),{value:s}=await e.rpc.getLatestBlockhash().send(),o={address:n},[l]=await f.findAssociatedTokenPda({mint:r,owner:n,tokenProgram:i.TOKEN_PROGRAM_ID}),[c]=await f.findAssociatedTokenPda({mint:r,owner:t,tokenProgram:i.TOKEN_PROGRAM_ID}),[d,u]=await Promise.all([e.rpc.getAccountInfo(l,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null)),e.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:t,mint:r}),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:a}),e)),(e=>p.compileTransaction(e)));return new Uint8Array(p.getTransactionEncoder().encode(g))}({solanaClient:M,source:_.address,destination:k,amountInBaseUnits:e})).then(A).catch((e=>{w("error"),C(e)}))}),[h,E,P,x,_,k,W,j]),a.useEffect((()=>{"preparing"===h&&v&&Ue({tx:v,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)}))}),[v,E,P,h,j]),a.useEffect((()=>{"error"===h&&b&&(d({errorModalData:{error:b,previousScreen:De},solanaFundingData:c.solanaFundingData}),u(i.ErrorScreen,!1))}),[h,u]),a.useEffect((()=>{if("success"!==h)return;let n=setTimeout(F?()=>u(F):o,e.DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS);return()=>clearTimeout(n)}),[h]),"success"===h?/*#__PURE__*/n.jsxs(n.Fragment,{children:[/*#__PURE__*/n.jsx(i.i,{}),/*#__PURE__*/n.jsx(i.RefactorSpacerTop,{}),/*#__PURE__*/n.jsxs(i.CenteredItemWithGap,{children:[/*#__PURE__*/n.jsx(y.default,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/n.jsx(i.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(i.RefactorSpacerBottom,{}),/*#__PURE__*/n.jsx(i.BlobbyFooter,{})]}):"preparing"===h||"loaded"===h||"sending"===h?/*#__PURE__*/n.jsxs(n.Fragment,{children:[/*#__PURE__*/n.jsx(i.i,{}),/*#__PURE__*/n.jsx(i.CenteredItem,{style:{marginTop:"16px"},children:/*#__PURE__*/n.jsx(i.InjectedWalletIcon,{icon:_?.standardWallet.icon,name:_?.standardWallet.name})}),/*#__PURE__*/n.jsx(i.CenteredScreenHeader,{style:{marginTop:"8px",marginBottom:"12px"},title:"sending"===h&&_?`Confirming with ${_.standardWallet.name}`:"Confirm transaction"}),/*#__PURE__*/n.jsx(S,{rows:[{label:"Source",value:r.formatWalletAddress(O.address)},{label:"Destination",value:r.formatWalletAddress(k)},{label:"Network",value:i.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__*/n.jsx(i.PrimaryButton,{style:{marginTop:"1rem"},loading:"preparing"===h||"sending"===h,onClick:function(){"loaded"===h&&v&&_&&(w("sending"),async function({transaction:e,chain:n,sourceWallet:t,solanaClient:a}){let{hasFunds:i}=await me({solanaClient:a,tx:e});if(!i)throw new s.PrivyClientError(`Wallet ${r.formatWalletAddress(t.address)} does not have enough funds.`,void 0,s.PrivyErrorCode.INSUFFICIENT_BALANCE);let o=_e((await t.signAndSendTransaction({transaction:e,chain:n}).catch((e=>{throw new s.PrivyClientError("Transaction was rejected by the user",e,s.PrivyErrorCode.TRANSACTION_FAILURE)}))).signature);return await Ae({rpcSubscriptions:a.rpcSubscriptions,signature:o,timeout:2e4}),o}({solanaClient:M,transaction:v,chain:x,sourceWallet:_}).then((e=>{w("success"),l({eventName:i.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:e,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__*/n.jsx(i.BlobbyFooter,{})]}):
1
+ "use strict";var e=require("./events-context-Cgq8fGB0.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("./EmbeddedWalletConnectingScreen-i0UDHMDq.js"),s=require("./internal-context-CeWKmK5u.js"),o=require("./usePrivy-CLLJiDdU.js"),l=require("eventemitter3"),c=require("@scure/base"),d=require("./use-sign-with-user-signer-BtJVKMQr.js"),u=require("styled-components"),p=require("@solana/kit"),m=require("./SignRequestScreen-H5r467q6.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(r),v=/*#__PURE__*/h(l);const A=["solana:mainnet","solana:devnet","solana:testnet"];function S({rows:e}){/*#__PURE__*/return n.jsx(i.Rows,{children:e.filter((e=>!!e)).map(((e,t)=>null!=e.value||e.isLoading?/*#__PURE__*/n.jsxs(i.Row,{children:[/*#__PURE__*/n.jsx(i.LabelSm,{children:e.label}),/*#__PURE__*/n.jsx(i.Value,{$isLoading:e.isLoading,children:e.value})]},t):null))})}function T(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var I=0,b="__private_"+I+++"__implementation";class C extends v.default{setImplementation(e){T(this,b)[b]=e}async signMessage(e){return T(this,b)[b].signMessage(e)}async signAndSendTransaction(e){return T(this,b)[b].signAndSendTransaction(e)}async signTransaction(e){return T(this,b)[b].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,b,{writable:!0,value:void 0}),T(this,b)[b]=e}}function E(e,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw TypeError("attempted to use private field on non-instance");return e}var P=0;function x(e){return"__private_"+P+++"_"+e}var O=/*#__PURE__*/x("_address"),k=/*#__PURE__*/x("_publicKey"),F=/*#__PURE__*/x("_chains"),_=/*#__PURE__*/x("_features"),M=/*#__PURE__*/x("_label"),j=/*#__PURE__*/x("_icon");class W{get address(){return E(this,O)[O]}get publicKey(){return E(this,k)[k].slice()}get chains(){return E(this,F)[F].slice()}get features(){return E(this,_)[_].slice()}get label(){return E(this,M)[M]}get icon(){return E(this,j)[j]}constructor({address:e,publicKey:n,label:t,icon:a}){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}),Object.defineProperty(this,j,{writable:!0,value:void 0}),E(this,O)[O]=e,E(this,k)[k]=n,E(this,F)[F]=A,E(this,M)[M]=t,E(this,j)[j]=a,E(this,_)[_]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===W&&Object.freeze(this)}}function U(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 L(e){return"__private_"+D+++"_"+e}var R=/*#__PURE__*/L("_listeners"),B=/*#__PURE__*/L("_version"),N=/*#__PURE__*/L("_name"),$=/*#__PURE__*/L("_icon"),V=/*#__PURE__*/L("_injection"),q=/*#__PURE__*/L("_isPrivyWallet"),G=/*#__PURE__*/L("_accounts"),J=/*#__PURE__*/L("_on"),H=/*#__PURE__*/L("_emit"),K=/*#__PURE__*/L("_off"),Y=/*#__PURE__*/L("_connected"),Q=/*#__PURE__*/L("_connect"),Z=/*#__PURE__*/L("_disconnect"),z=/*#__PURE__*/L("_signMessage"),X=/*#__PURE__*/L("_signAndSendTransaction"),ee=/*#__PURE__*/L("_signTransaction");function ne(e,...n){U(this,R)[R][e]?.forEach((e=>e.apply(null,n)))}function te(e,n){U(this,R)[R][e]=U(this,R)[R][e]?.filter((e=>n!==e))}const ae=/*#__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)")),re=({instruction:e,fees:t,transactionInfo:a,solPrice:r,chain:s})=>/*#__PURE__*/n.jsxs(i.Rows,{children:[a?.action&&/*#__PURE__*/n.jsxs(i.Row,{children:[/*#__PURE__*/n.jsx(i.LabelSm,{children:"Action"}),/*#__PURE__*/n.jsx(i.Value,{children:a.action})]}),null!=e?.total&&/*#__PURE__*/n.jsxs(i.Row,{children:[/*#__PURE__*/n.jsx(i.LabelSm,{children:"Total"}),/*#__PURE__*/n.jsx(i.Value,{children:e.total})]}),!e?.total&&null!=e?.amount&&/*#__PURE__*/n.jsxs(i.Row,{children:[/*#__PURE__*/n.jsx(i.LabelSm,{children:"Total"}),/*#__PURE__*/n.jsx(i.Value,{children:/*#__PURE__*/n.jsx(i.SolanaPriceDisplay,{quantities:[e.amount,t],tokenPrice:r})})]}),/*#__PURE__*/n.jsxs(i.Row,{children:[/*#__PURE__*/n.jsx(i.LabelSm,{children:"Fees"}),/*#__PURE__*/n.jsx(i.Value,{children:/*#__PURE__*/n.jsx(i.SolanaPriceDisplay,{quantities:[t],tokenPrice:r})})]}),e?.to&&/*#__PURE__*/n.jsxs(i.Row,{children:[/*#__PURE__*/n.jsx(i.LabelSm,{children:"To"}),/*#__PURE__*/n.jsx(i.Value,{children:/*#__PURE__*/n.jsx(i.WalletLink,{walletAddress:e.to,chainId:s,chainType:"solana"})})]})]}),ie=({fees:e,onClose:t,receiptHeader:a,receiptDescription:r,transactionInfo:s,solPrice:o,signOnly:l,instruction:c,chain:d})=>/*#__PURE__*/n.jsxs(n.Fragment,{children:[/*#__PURE__*/n.jsx(i.ModalHeader,{onClose:t}),/*#__PURE__*/n.jsx(i.e$2,{style:{marginBottom:"16px"},children:/*#__PURE__*/n.jsxs("div",{children:[/*#__PURE__*/n.jsx(ae,{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(i.CenteredScreenHeader,{title:a??`Transaction ${l?"signed":"complete"}!`,description:r??"You're all set."}),/*#__PURE__*/n.jsx(re,{solPrice:o,instruction:c,fees:e,transactionInfo:s,chain:d}),/*#__PURE__*/n.jsx(i.Grow,{}),/*#__PURE__*/n.jsx(se,{loading:!1,onClick:t,children:"Close"}),/*#__PURE__*/n.jsx(i.RefactorSpacerBottom,{}),/*#__PURE__*/n.jsx(i.BlobbyFooter,{})]});let se=/*#__PURE__*/u.styled(i.PrimaryButton).withConfig({displayName:"SubmitButton",componentId:"sc-3cb7ee42-0"})(["&&{margin-top:24px;}transition:color 350ms ease,background-color 350ms ease;"]);function oe(e){return new Uint8Array(p.getTransactionDecoder().decode(e).messageBytes)}async function le(e,n){try{return await e}catch{return n}}const ce=(...e)=>{if("undefined"==typeof Buffer)throw new s.PrivyClientError("Buffer is not defined.",void 0,s.PrivyErrorCode.BUFFER_NOT_DEFINED);return Buffer.from(...e)};function de(e){switch(e){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet"}}async function ue({privyClient:e,chain:n,mint:t}){let a=i.DEFAULT_TOKENS_DATA[n];if(!a[t]){let r=await e.getSplTokenMetadata({mintAddress:t,cluster:de(n)});r&&(a[t]={address:t,symbol:r.symbol,decimals:r.decimals})}return a[t]}async function pe({solanaClient:e,tx:n}){let t=p.getBase64Decoder().decode(oe(n)),{value:a}=await e.rpc.getFeeForMessage(t).send();return a??0n}async function me({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 me({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 ge({tx:e,solanaClient:n,privyClient:t,checkFunds:a}){let r=p.getCompiledTransactionMessageDecoder().decode(oe(e)),s=r.staticAccounts[0]??"",o=await pe({solanaClient:n,tx:e}),l=a?await le(me({solanaClient:n,tx:e})):void 0,c=l?.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:n,message:r});for(let e of r.instructions){let a=r.staticAccounts[e.programAddressIndex]||"";if(a!==i.TOKEN_PROGRAM_ID&&a!==i.TOKEN_2022_PROGRAM_ID)if(a!==i.SYSTEM_PROGRAM_ID){if(a===i.ASSOCIATED_TOKEN_PROGRAM_ID){let n=await le(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}}(e,m,a));if(!n){u.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}if(u.push(n),n.ata&&n.owner&&n.mint){d[n.ata]={owner:n.owner,mint:n.mint};continue}}if(i.RAYDIUM_SWAP_PROGRAM_IDS.includes(a)){let r=await le(we(e,m,n,t,a));if(!r){u.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}u.push(r)}else if(i.JUPITER_SWAP_PROGRAM_IDS.includes(a)){let r=await le(ve(e,m,n,t,a));if(!r){u.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}u.push(r)}else u.push({type:"unknown",program:a,discriminator:e.data?.[0]})}else{let n=await le(ye(e,m));if(!n){u.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}u.push(n)}else{let r=await le(he(e,m,n,t,d,a));if(!r){u.push({type:"unknown",program:a,discriminator:e.data?.[0]});continue}u.push(r),"spl-transfer"===r.type&&(r.fromAta&&r.fromAccount&&r.token.address&&(d[r.fromAta]??={owner:r.fromAccount,mint:r.token.address}),r.toAta&&r.toAccount&&r.token.address&&(d[r.toAta]??={owner:r.toAccount,mint:r.token.address}))}}return{spender:s,fee:o,instructions:u,hasFunds:!!c}}function fe(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 he(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,[l,c,d]=o,u="",p=c?r[c]:void 0;if(p)n=p.owner,u=p.mint;else if(c){let e=await t.rpc.getAccountInfo(c,{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&&l){let e=await t.rpc.getAccountInfo(l,{commitment:"confirmed",encoding:"jsonParsed"}).send(),n=e.value?.data;u=n?.parsed?.info?.mint??""}let m=await ue({privyClient:a,chain:t.chain,mint:u}),g=m?.symbol??"";return s??=m?.decimals??9,{type:"spl-transfer",program:i,fromAta:l,fromAccount:d,toAta:c,toAccount:n,value:fe(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 ye(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:i.SYSTEM_PROGRAM_ID,account:n?.toString(),value:fe(e.data,4),withSeed:!1}}if(2===t){let[n,t]=a;return{type:"sol-transfer",program:i.SYSTEM_PROGRAM_ID,fromAccount:n,toAccount:t,token:{symbol:"SOL",decimals:9},value:fe(e.data,4),withSeed:!1}}if(3===t){let[,n]=a;return{type:"create-account",program:i.SYSTEM_PROGRAM_ID,account:n,withSeed:!0,value:fe(e.data.slice(e.data.length-32-8-8))}}if(11===t){let[n,t]=a;return{type:"sol-transfer",program:i.SYSTEM_PROGRAM_ID,fromAccount:n,toAccount:t,value:fe(e.data,4),token:{symbol:"SOL",decimals:9},withSeed:!0}}throw Error(`System program instruction type ${t} not supported`)}async function we(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 ue({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:s?await ue({privyClient:a,chain:t.chain,mint:s}):void 0,amountIn:fe(e.data,8),minimumAmountOut:fe(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 ue({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:s?await ue({privyClient:a,chain:t.chain,mint:s}):void 0,maxAmountIn:fe(e.data,8),amountOut:fe(e.data,16)}}throw Error(`Raydium swap program instruction type ${s} not supported`)}async function ve(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 ue({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:i?await ue({privyClient:a,chain:t.chain,mint:i}):void 0,outAmount:fe(e.data,e.data.length-1-2-8-8),quotedInAmount:fe(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 ue({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:i?await ue({privyClient:a,chain:t.chain,mint:i}):void 0,outAmount:fe(e.data,e.data.length-1-2-8-8),quotedInAmount:fe(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 ue({privyClient:a,chain:t.chain,mint:n}):void 0,tokenOut:i?await ue({privyClient:a,chain:t.chain,mint:i}):void 0,inAmount:fe(e.data,e.data.length-1-2-8-8),quotedOutAmount:fe(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 Ae({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 Se({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 Ae({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 Te(){let n=e.useAppConfig(),t=a.useMemo((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((e=>[e,n.solanaRpcs[e]?Se({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 Ie={component:()=>{let{data:t,onUserCloseViaDialogOrKeybindRef:o,setModalData:l,navigate:c}=i.usePrivyModal(),{client:d,closePrivyModal:u,walletProxy:m,showFiatPrices:g}=s.usePrivyInternal(),f=e.useAppConfig(),{user:h}=i.usePrivyContext(),y=Te()(t?.standardSignAndSendTransaction?.chain??"solana:mainnet"),[w,v]=a.useState(t?.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(),_=t?.standardSignAndSendTransaction?.account,M=!!t?.standardSignAndSendTransaction?.signOnly,j=_?.imported?i.getImportedPrivySolanaWallets(h).find((e=>e.address===_.address)):i.getPrivyPrimaryWallet(h),{solPrice:W,isSolPriceLoading:U}=i.useGetSolPrice({enabled:g}),D=a.useMemo((()=>{if(!A)return;let e=A.spender,n=i.getNativeCurrencyFromLamports(A.fee),t=i.getNativeCurrencyFromLamports(b.value,3,!0),a=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=a.at(0);if(!s||a.length>1)return{fee:n,spender:e,balance:t};if("sol-transfer"===s.type)return{fee:n,spender:e,balance:t,total:i.getNativeCurrencyFromLamports(s.value)};if("spl-transfer"===s.type)return{fee:n,spender:e,balance:t,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:e,balance:t,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:e,balance:t,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:e,balance:t,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:e,balance:t,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:e,balance:t}}),[A,_?.address,b]),L=a.useMemo((()=>{let e;if(!A||!g||!W||U)return;function n(...e){return i.getFormattedUsdFromLamports(e.reduce(((e,n)=>e+n),0n),W??0)}_?.address===A.spender&&(e=n(A.fee));let t=n(b.value),a=A.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)).at(0);return!a||A.instructions.length>1?{fee:e,balance:t}:"sol-transfer"===a.type?{fee:e,balance:t,total:n(a.value,_?.address===A.spender?A.fee:0n)}:"spl-transfer"===a.type?{fee:e,balance:t,total:`${r.formatTokenAmount({amount:a.value,decimals:a.token.decimals})} ${a.token.symbol}`}:{fee:e,balance:t}}),[A,g,W,U,_?.address,b]);if(a.useEffect((()=>{!async function(){if(w&&d)try{I(void 0);let e=await ge({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||!t?.standardSignAndSendTransaction||!_){let e=Error("Invalid transaction request");/*#__PURE__*/return n.jsx(i.ErrorScreenView,{error:e,allowlistConfig:f.allowlistConfig,onRetry:()=>{t?.standardSignAndSendTransaction?.onFailure(e),u({shouldCallAuthOnSuccess:!1})}})}let R=()=>{if(!E)return x.signature||x.signedTransaction?t?.standardSignAndSendTransaction?.onSuccess({signature:x.signature,signedTransaction:x.signedTransaction}):t?.standardSignAndSendTransaction?.onFailure(k??T??Error("User exited the modal before submitting the transaction")),u({shouldCallAuthOnSuccess:!1})};o.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(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 n.jsx(ie,{fees:x.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:M,instruction:"sol-transfer"===a?.type?{to:a.toAccount,amount:a.value}:{to:a?.toAccount||a?.toAta,total:D?.total}})}return k?/*#__PURE__*/n.jsx(i.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,n){return p.pipe(p.getCompiledTransactionMessageDecoder().decode(oe(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(i.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: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,isSponsored:!!t.standardSignAndSendTransaction?.isSponsored,parseError:T,onClick:$?async()=>{if(_){if(!N)throw Error("Funding wallet is not enabled");l({...t,funding:{...t.funding,methodScreen:i.FundingMethodSelectionScreen},solanaFundingData:t?.solanaFundingData}),c(i.FundingMethodSelectionScreen)}}:async()=>{try{if(P(!0),E||!_||!m||!h||!j)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 O({...e,fees:n?.fee})}O(e)}catch(e){console.warn({transaction:w,error:e}),F(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 Ce(){let{isHeadlessSigning:e,walletProxy:n,initializeWalletProxy:t,recoverEmbeddedWallet:a,openModal:l,privy:c,client:u}=s.usePrivyInternal(),{user:p}=o.usePrivy(),{setModalData:g}=i.usePrivyModal(),{signWithUserSigner:f}=d.useSignWithUserSigner();return{signMessage:({message:o,address:d,options:h})=>new Promise((async(y,w)=>{let v=i.getPrivyWalletWithAddress(p,d);if("privy"!==v?.walletClientType)return void w(new s.PrivyClientError("Wallet is not a Privy wallet",void 0,s.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:A,entropyIdVerifier:S}=i.getEntropyDetailsForUser(p,v),T=i.getIsUnifiedWallet(v),I=ce(o).toString("base64");if(I.length<1)return void w(new s.PrivyClientError("Message must be a non-empty string",void 0,s.PrivyErrorCode.INVALID_MESSAGE));let b=async()=>{let e;if(!p)throw Error("User must be authenticated before signing with a Privy wallet");let i=await u.getAccessToken();if(!i)throw Error("User must be authenticated to use their embedded wallet.");let s=n??await t(15e3);if(!s)throw Error("Failed to initialize embedded wallet proxy.");if(!await a({address:v.address}))throw Error("Unable to connect to wallet");if(T){let n=await r.rpc(c,f,{chain_type:"solana",method:"signMessage",params:{message:I,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:n}=await s.rpc({accessToken:i,entropyId:A,entropyIdVerifier:S,chainType:"solana",hdWalletIndex:v.walletIndex??0,requesterAppId:h?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:I}}});e=n.data.signature}return e};if(e({showWalletUIs:h?.uiOptions?.showWalletUIs}))try{let e=await b(),n=new Uint8Array(ce(e,"base64"));y({signature:n})}catch(e){w(e)}else g({signMessage:{method:"solana_signMessage",data:I,confirmAndSign:b,onSuccess:e=>{y({signature:new Uint8Array(ce(e,"base64"))})},onFailure:e=>{w(e)},uiOptions:h?.uiOptions??{}},connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,entropyId:A,entropyIdVerifier:S,isUnifiedWallet:T,onCompleteNavigateTo:m.SignRequestScreen,onFailure:e=>{w(new s.PrivyClientError("Failed to connect to wallet",e,s.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR))}}}),l(i.EmbeddedWalletConnectingScreen)}))}}function Ee(){let{isHeadlessSigning:e,openModal:n}=s.usePrivyInternal(),{setModalData:t}=i.usePrivyModal(),{signMessage:a}=Ce(),{user:r}=o.usePrivy();return{signTransaction:async({transaction:o,options:l,chain:c="solana:mainnet",address:d})=>{async function u(e){let{signature:n}=await a({message:oe(e),address:d,options:{...l,uiOptions:{...l?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:be(e,d,n)}}return e({showWalletUIs:l?.uiOptions?.showWalletUIs})?u(o):new Promise((async(e,a)=>{let p=i.getPrivyWalletWithAddress(r,d);if("privy"!==p?.walletClientType)return void a(new s.PrivyClientError("Wallet is not a Privy wallet",void 0,s.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:m,entropyIdVerifier:g}=i.getEntropyDetailsForUser(r,p),f=i.getIsUnifiedWallet(p);function h(e){return n=>{n instanceof s.PrivyClientError?a(n):a(new s.PrivyClientError("Failed to connect to wallet",n,e))}}let y={account:p,transaction:o,chain:c,signOnly:!0,uiOptions:l?.uiOptions||{},onConfirm:u,onSuccess:e,onFailure:h(s.PrivyErrorCode.TRANSACTION_FAILURE)};t({connectWallet:{recoveryMethod:p.recoveryMethod,connectingWalletAddress:p.address,entropyId:m,entropyIdVerifier:g,isUnifiedWallet:f,onCompleteNavigateTo:Ie,onFailure:h(s.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:y}),n(i.EmbeddedWalletConnectingScreen)}))}}}let Pe=new C({signTransaction:s.notImplementedWithMessage("signTransaction was not injected"),signAndSendTransaction:s.notImplementedWithMessage("signAndSendTransaction was not injected"),signMessage:s.notImplementedWithMessage("signMessage was not injected")}),xe=new class{get version(){return U(this,B)[B]}get name(){return U(this,N)[N]}get icon(){return U(this,$)[$]}get chains(){return A.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:U(this,Q)[Q]},"standard:disconnect":{version:"1.0.0",disconnect:U(this,Z)[Z]},"standard:events":{version:"1.0.0",on:U(this,J)[J]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:U(this,X)[X]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:U(this,ee)[ee]},"solana:signMessage":{version:"1.0.0",signMessage:U(this,z)[z]},"privy:":{privy:{signMessage:U(this,V)[V].signMessage,signTransaction:U(this,V)[V].signTransaction,signAndSendTransaction:U(this,V)[V].signAndSendTransaction}}}}get accounts(){return U(this,G)[G].slice()}get isPrivyWallet(){return U(this,q)[q]}constructor({name:e,icon:n,version:t,injection:a,wallets:r}){Object.defineProperty(this,H,{value:ne}),Object.defineProperty(this,K,{value:te}),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,J,{writable:!0,value:void 0}),Object.defineProperty(this,Y,{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}),Object.defineProperty(this,ee,{writable:!0,value:void 0}),U(this,R)[R]={},U(this,J)[J]=(e,n)=>(U(this,R)[R][e]?.push(n)||(U(this,R)[R][e]=[n]),()=>U(this,K)[K](e,n)),U(this,Y)[Y]=e=>{null!=e&&(U(this,G)[G]=e.map((({address:e})=>new W({address:e,publicKey:c.base58.decode(e)})))),U(this,H)[H]("change",{accounts:this.accounts})},U(this,Q)[Q]=async()=>(U(this,H)[H]("change",{accounts:this.accounts}),{accounts:this.accounts}),U(this,Z)[Z]=async()=>{U(this,H)[H]("change",{accounts:this.accounts})},U(this,z)[z]=async(...e)=>{let n=[];for(let{account:t,...a}of e){let{signature:e}=await U(this,V)[V].signMessage({...a,address:t.address});n.push({signedMessage:a.message,signature:e})}return n},U(this,X)[X]=async(...e)=>{let n=[];for(let t of e){let{signature:e}=await U(this,V)[V].signAndSendTransaction({...t,transaction:t.transaction,address:t.account.address,chain:t.chain||"solana:mainnet",options:t.options});n.push({signature:e})}return n},U(this,ee)[ee]=async(...e)=>{let n=[];for(let{transaction:t,account:a,options:r,chain:i}of e){let{signedTransaction:e}=await U(this,V)[V].signTransaction({transaction:t,address:a.address,chain:i||"solana:mainnet",options:r});n.push({signedTransaction:e})}return n},U(this,N)[N]=e,U(this,$)[$]=n,U(this,B)[B]=t,U(this,V)[V]=a,U(this,G)[G]=[],U(this,q)[q]=!0,a.on("accountChanged",U(this,Y)[Y],this),U(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:Pe});function Oe(){let{ready:n}=i.useWallets(),{user:t}=o.usePrivy(),{signMessage:l}=Ce(),{signTransaction:u}=Ee(),{signAndSendTransaction:p}=function(){let n=e.useAppConfig(),{isHeadlessSigning:t,openModal:a}=s.usePrivyInternal(),{setModalData:l}=i.usePrivyModal(),{signTransaction:u}=Ee(),p=Te(),{user:m}=o.usePrivy(),{signWithUserSigner:g}=d.useSignWithUserSigner();return{signAndSendTransaction:async({transaction:e,address:d,chain:f="solana:mainnet",options:h})=>{async function y(e){if(h?.sponsor)return await S(e);let{signedTransaction:n}=await u({transaction:e,address:d,chain:f,options:{...h,uiOptions:{...h?.uiOptions,showWalletUIs:!1}}}),{signature:t}=await p(f).sendAndConfirmTransaction(n);return{signature:t}}if(t({showWalletUIs:h?.uiOptions?.showWalletUIs}))return y(e);let v=i.getPrivyWalletWithAddress(m,d);if("privy"!==v?.walletClientType)throw new s.PrivyClientError("Wallet is not a Privy wallet",void 0,s.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND);let A=i.getIsUnifiedWallet(v),S=async e=>{if(!A)throw new s.PrivyClientError("Sponsoring transactions is only supported for wallets on the TEE stack",s.PrivyErrorCode.INVALID_DATA);let t=new w.default({appId:n.id,clientId:n.appClientId,storage:i.f}),a=await r.rpc(t,g,{chain_type:"solana",method:"signAndSendTransaction",sponsor:!0,params:{transaction:Buffer.from(e).toString("base64"),encoding:"base64"},caip2:`solana:${(await p(f).rpc.getGenesisHash().send()).substring(0,32)}`,wallet_id:v.id});if(a.data&&"hash"in a.data)return{signature:c.base58.decode(a.data.hash)};throw Error("Failed to sign and send transaction")};return new Promise((async(t,r)=>{let c,u,{entropyId:p,entropyIdVerifier:g}=i.getEntropyDetailsForUser(m,v);function w(e){return n=>{n instanceof s.PrivyClientError?r(n):r(new s.PrivyClientError("Failed to connect to wallet",n,e))}}let S={account:v,transaction:e,chain:f,signOnly:!1,uiOptions:h?.uiOptions||{},onConfirm:y,onSuccess:t,onFailure:w(s.PrivyErrorCode.TRANSACTION_FAILURE),isSponsored:!!h?.sponsor},T={recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,entropyId:p,entropyIdVerifier:g,isUnifiedWallet:A,onCompleteNavigateTo:Ie,onFailure:w(s.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)};n.fundingConfig&&(c=o.prepareSolanaFundingModalData({address:d,appConfig:n,methodScreen:i.FundingMethodSelectionScreen,fundWalletConfig:{...h,asset:"native-currency",chain:f},externalSolanaFundingScreen:De}),u={amount:n.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:f,destinationAddress:d,afterSuccessScreen:Ie,sourceWalletData:void 0}),l({connectWallet:T,standardSignAndSendTransaction:S,funding:c,solanaFundingData:u}),a(i.EmbeddedWalletConnectingScreen)}))}}}(),m=a.useMemo((()=>{let e=[...i.getPrivySolanaHDWallets(t).sort(((e,n)=>(e.walletIndex??0)-(n.walletIndex??0)))],n=i.getImportedPrivySolanaWallets(t);return n.length?[...e,...n]:e}),[t]),g=a.useMemo((()=>({signMessage:async({message:e,address:n,options:t})=>await l({message:e,address:n,options:t}),signTransaction:async({transaction:e,address:n,chain:t,options:a})=>await u({transaction:e,address:n,chain:t,options:a}),async signAndSendTransaction({transaction:e,address:n,chain:t,options:a}){let{signature:r}=await p({transaction:e,address:n,chain:t,options:a});return{signature:r}}})),[l,u,p]);return a.useEffect((()=>{Pe?.setImplementation(g)}),[g]),a.useEffect((()=>{var e;!n||(e=xe.accounts).length===m.length&&e.every(((e,n)=>e.address===m[n]?.address))||Pe?.emit("accountChanged",m)}),[n,m]),{ready:n,wallet:xe}}function ke(){let{client:e}=s.usePrivyInternal(),{ready:n,wallet:t}=Oe(),[r,i]=a.useState([]),[o,l]=a.useState([]);return a.useEffect((()=>{let e=[t,...r.filter((e=>"solana"===e.chainType&&!!e.wallet.features)).map((e=>e.wallet))];l(e);let n=e.map((n=>n.features["standard:events"]?.on("change",(()=>{l([...e])}))));return()=>{n.forEach((e=>e?.()))}}),[r]),a.useEffect((()=>{i(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let n=()=>{i(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",n),()=>{e.connectors?.off("connectorInitialized",n)}}),[n,e.connectors]),{ready:n,wallets:o}}function Fe(){let{ready:e,wallets:n}=ke();return{ready:e,wallets:a.useMemo((()=>n.flatMap((e=>e.accounts.map((n=>new r.ConnectedStandardSolanaWallet({wallet:e,account:n})))))),[n])}}function _e(e){return p.getBase58Decoder().decode(e)}function Me(e){return BigInt(Math.floor(1e9*parseFloat(e)))}function je(e){return+We.format(parseFloat(e.toString())/1e9)}let We=Intl.NumberFormat(void 0,{maximumFractionDigits:8});async function Ue({tx:e,solanaClient:n,amount:t,asset:a,tokenPrice:r}){if(!e)return null;if("SOL"===a&&r){let a=Me(t),s=i.getFormattedUsdFromLamports(a,r),o=await pe({solanaClient:n,tx:e});return{amountInUsd:s,feeInUsd:r?i.getFormattedUsdFromLamports(o,r):void 0,totalInUsd:i.getFormattedUsdFromLamports(a+o,r)}}if("USDC"===a&&r){let a="$"+t,s=await pe({solanaClient:n,tx:e}),o=function(e,n){let t=parseFloat(e.toString())/i.LAMPORTS_PER_SOL*n;return t<.01?0:t}(s,r);return{amountInUsd:a,feeInUsd:i.getFormattedUsdFromLamports(s,r),totalInUsd:"$"+(parseFloat(t)+o).toFixed(2)}}if("SOL"===a){let a=Me(t),r=await pe({solanaClient:n,tx:e});return{amountInSol:t+" SOL",feeInSol:je(r)+" SOL",totalInSol:je(a+r)+" SOL"}}return{amountInUsdc:t+" USDC",feeInSol:je(await pe({solanaClient:n,tx:e}))+" SOL"}}const De={component:function(){let t=e.useAppConfig(),{closePrivyModal:o,createAnalyticsEvent:l}=s.usePrivyInternal(),{data:c,setModalData:d,navigate:u}=i.usePrivyModal(),{wallets:m}=Fe(),[h,w]=a.useState("preparing"),[v,A]=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((e=>e.address===O.address&&i.toSolanaWalletClientType(O.walletClientType)===i.toSolanaWalletClientType(e.standardWallet.name))),M=Te()(x),{tokenPrice:j,isTokenPriceLoading:W}=i.useGetTokenPrice("solana");return a.useEffect((()=>{if("preparing"!==h||W||!_)return;let e="SOL"===P?Me(E):function(e){return BigInt(Math.floor(1e6*parseFloat(e)))}(E);I({amount:("SOL"===P&&j?i.getFormattedUsdFromLamports(e,j):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:M,source:_.address,destination:k,amountInLamports:e}):async function({solanaClient:e,source:n,destination:t,amountInBaseUnits:a}){let r=i.getUsdcMintAddress(e.chain),{value:s}=await e.rpc.getLatestBlockhash().send(),o={address:n},[l]=await f.findAssociatedTokenPda({mint:r,owner:n,tokenProgram:i.TOKEN_PROGRAM_ID}),[c]=await f.findAssociatedTokenPda({mint:r,owner:t,tokenProgram:i.TOKEN_PROGRAM_ID}),[d,u]=await Promise.all([e.rpc.getAccountInfo(l,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null)),e.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:t,mint:r}),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:a}),e)),(e=>p.compileTransaction(e)));return new Uint8Array(p.getTransactionEncoder().encode(g))}({solanaClient:M,source:_.address,destination:k,amountInBaseUnits:e})).then(A).catch((e=>{w("error"),C(e)}))}),[h,E,P,x,_,k,W,j]),a.useEffect((()=>{"preparing"===h&&v&&Ue({tx:v,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)}))}),[v,E,P,h,j]),a.useEffect((()=>{"error"===h&&b&&(d({errorModalData:{error:b,previousScreen:De},solanaFundingData:c.solanaFundingData}),u(i.ErrorScreen,!1))}),[h,u]),a.useEffect((()=>{if("success"!==h)return;let n=setTimeout(F?()=>u(F):o,e.DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS);return()=>clearTimeout(n)}),[h]),"success"===h?/*#__PURE__*/n.jsxs(n.Fragment,{children:[/*#__PURE__*/n.jsx(i.i,{}),/*#__PURE__*/n.jsx(i.RefactorSpacerTop,{}),/*#__PURE__*/n.jsxs(i.CenteredItemWithGap,{children:[/*#__PURE__*/n.jsx(y.default,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/n.jsx(i.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(i.RefactorSpacerBottom,{}),/*#__PURE__*/n.jsx(i.BlobbyFooter,{})]}):"preparing"===h||"loaded"===h||"sending"===h?/*#__PURE__*/n.jsxs(n.Fragment,{children:[/*#__PURE__*/n.jsx(i.i,{}),/*#__PURE__*/n.jsx(i.CenteredItem,{style:{marginTop:"16px"},children:/*#__PURE__*/n.jsx(i.InjectedWalletIcon,{icon:_?.standardWallet.icon,name:_?.standardWallet.name})}),/*#__PURE__*/n.jsx(i.CenteredScreenHeader,{style:{marginTop:"8px",marginBottom:"12px"},title:"sending"===h&&_?`Confirming with ${_.standardWallet.name}`:"Confirm transaction"}),/*#__PURE__*/n.jsx(S,{rows:[{label:"Source",value:r.formatWalletAddress(O.address)},{label:"Destination",value:r.formatWalletAddress(k)},{label:"Network",value:i.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__*/n.jsx(i.PrimaryButton,{style:{marginTop:"1rem"},loading:"preparing"===h||"sending"===h,onClick:function(){"loaded"===h&&v&&_&&(w("sending"),async function({transaction:e,chain:n,sourceWallet:t,solanaClient:a}){let{hasFunds:i}=await me({solanaClient:a,tx:e});if(!i)throw new s.PrivyClientError(`Wallet ${r.formatWalletAddress(t.address)} does not have enough funds.`,void 0,s.PrivyErrorCode.INSUFFICIENT_BALANCE);let o=_e((await t.signAndSendTransaction({transaction:e,chain:n}).catch((e=>{throw new s.PrivyClientError("Transaction was rejected by the user",e,s.PrivyErrorCode.TRANSACTION_FAILURE)}))).signature);return await Ae({rpcSubscriptions:a.rpcSubscriptions,signature:o,timeout:2e4}),o}({solanaClient:M,transaction:v,chain:x,sourceWallet:_}).then((e=>{w("success"),l({eventName:i.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:e,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__*/n.jsx(i.BlobbyFooter,{})]}):
2
2
  /*#__PURE__*/n.jsxs(n.Fragment,{children:[/*#__PURE__*/n.jsx(i.i,{}),/*#__PURE__*/n.jsx(i.NeutralSpinner,{}),/*#__PURE__*/n.jsx("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/n.jsx(i.BlobbyFooter,{})]})}};exports.SOLANA_CHAINS=A,exports.fetchTransactionEstimatedFees=pe,exports.getAddressFromBuffer=_e,exports.getSolanaRpcClient=Se,exports.simulateTransaction=me,exports.useExportWallet=function(){let{user:n,getAccessToken:t}=i.usePrivyContext(),{walletProxy:r,openModal:l,client:c}=s.usePrivyInternal(),{setModalData:d}=i.usePrivyModal(),u=e.useAppConfig();return a.useMemo((()=>({exportWallet:e=>new Promise((async(a,p)=>{if(!n)return void p(new s.PrivyClientError("User must be authenticated before exporting their Privy wallet"));let m=e?.address?i.getPrivyWalletWithAddress(n,e.address):i.getPrivySolanaWallet(n);if(!m)return void p(new s.PrivyClientError("User must have an embedded wallet."));if(!o.isFirstClassChainWallet(m))return void p(Error(`Export is not supported for ${m.chainType} wallets`));let g=i.getIsUnifiedWallet(m),{entropyId:f,entropyIdVerifier:h}=i.getEntropyDetailsForUser(n,m);await t()?r?(d({connectWallet:{recoveryMethod:m.recoveryMethod,connectingWalletAddress:m.address,isUnifiedWallet:g,entropyId:f,entropyIdVerifier:h,onCompleteNavigateTo:i.EmbeddedWalletKeyExportScreen,onFailure:p,shouldForceMFA:!0},keyExport:{appId:u.id,appClientId:u.appClientId,origin:c.apiUrl,address:m.address,entropyId:f,entropyIdVerifier:h,hdWalletIndex:m.walletIndex,chainType:m.chainType,walletId:m.id,isUnifiedWallet:g,imported:m.imported,onSuccess:a,onFailure:p}}),l(i.EmbeddedWalletConnectingScreen)):p(new s.PrivyClientError("Wallet not ready for export")):p(new s.PrivyClientError("Must have valid access token."))}))})),[n,t,r,l,c,d,u])},exports.useFundWallet=function(n){e.usePrivyEventSubscription("fundSolanaWallet",n);let t=e.useAppConfig(),{openModal:a}=s.usePrivyInternal(),{setModalData:r}=i.usePrivyModal();return{fundWallet:async({address:e,options:n})=>{let s=n?.amount||t.fundingConfig?.defaultRecommendedAmount||"1",l=n?.asset||t.fundingConfig?.defaultRecommendedCurrency.asset||"native-currency",c=n?.chain||"solana:mainnet";r({funding:o.prepareSolanaFundingModalData({address:e,appConfig:t,methodScreen:i.FundingMethodSelectionScreen,fundWalletConfig:{...n,amount:s,asset:l,chain:c},externalSolanaFundingScreen:De}),solanaFundingData:{amount:s,asset:"native-currency"===l?"SOL":"USDC",chain:c,destinationAddress:e,sourceWalletData:void 0}}),a(i.FundingMethodSelectionScreen)}}},exports.useSolanaStandardWallets=ke,exports.useWallets=Fe;
@@ -1 +1 @@
1
- "use strict";var e=require("react"),t=require("./events-context-Dn0fJZ2h.js"),n=require("./EmbeddedWalletConnectingScreen-D_YsihzO.js"),l=require("styled-components"),r=require("./internal-context-CeWKmK5u.js");const s=/*#__PURE__*/l.styled.div.withConfig({displayName:"Column",componentId:"sc-cfc52180-0"})(["display:flex;flex-direction:column;"]);exports.Column=s,exports.useActiveWallet=()=>{let l=t.useAppConfig(),{wallets:s}=n.useWallets(),{connectors:o}=r.usePrivyInternal(),i=e.useMemo((()=>o.filter(n.isSolanaWalletConnector).flatMap((e=>e.wallets))),[o]),u=n.useActiveWalletStore((e=>e.wallet));e.useEffect((()=>{if(!l.id)return;let e=n.f.get(n.toActiveWalletKey(l.id));n.useActiveWalletStore.setState({wallet:e})}),[l.id]);let a=e.useMemo((()=>{if(!u)return;let[,e]=u.split(":");return s.find((t=>t.address===e))||i.find((t=>t.address===e))}),[u,s,i]),c=e.useMemo((()=>a?"ethereum"===a.type?a.chainId:"solana":void 0),[a]);return{connect:async e=>{e?.reset&&(n.f.del(n.toActiveWalletKey(l.id)),n.useActiveWalletStore.setState({wallet:void 0}));let{wallet:t}=await n.open();if(!t)return{};let[,r]=t.split(":"),o=s.find((e=>e.address===r));if(o)return{wallet:o,network:o.chainId};let u=i.find((e=>e.address===r));return u?{wallet:u,network:"solana"}:{}},setActiveWallet:e.useCallback((e=>{n.setActiveWallet({address:e.address,client:e.walletClientType,appId:l.id})}),[l.id]),wallet:a,network:c}},exports.useConnectWallet=function(l){let{connectWallet:r}=e.useContext(n.PrivyContext);return t.usePrivyEventSubscription("connectWallet",l),{connectWallet:r}},exports.useElementHeight=t=>{let[n,l]=e.useState("auto");return e.useEffect((()=>{let e=new ResizeObserver((e=>{l(e[0]?.contentRect.height??"auto")}));return t.current&&e.observe(t.current),()=>{t.current&&e.unobserve(t.current)}}),[t.current]),n},exports.useFundWallet=e=>{t.usePrivyEventSubscription("fundWallet",e);let{fundWallet:n}=r.usePrivyInternal();return{fundWallet:({address:e,options:t})=>n(e,t)}},exports.useLogin=function(l){let{login:r}=e.useContext(n.PrivyContext);return t.usePrivyEventSubscription("login",l),{login:r}},exports.useLogout=function(l){let{logout:r}=e.useContext(n.PrivyContext);return t.usePrivyEventSubscription("logout",l),{logout:r}};
1
+ "use strict";var e=require("react"),t=require("./events-context-Cgq8fGB0.js"),n=require("./EmbeddedWalletConnectingScreen-i0UDHMDq.js"),l=require("styled-components"),r=require("./internal-context-CeWKmK5u.js");const s=/*#__PURE__*/l.styled.div.withConfig({displayName:"Column",componentId:"sc-cfc52180-0"})(["display:flex;flex-direction:column;"]);exports.Column=s,exports.useActiveWallet=()=>{let l=t.useAppConfig(),{wallets:s}=n.useWallets(),{connectors:o}=r.usePrivyInternal(),i=e.useMemo((()=>o.filter(n.isSolanaWalletConnector).flatMap((e=>e.wallets))),[o]),u=n.useActiveWalletStore((e=>e.wallet));e.useEffect((()=>{if(!l.id)return;let e=n.f.get(n.toActiveWalletKey(l.id));n.useActiveWalletStore.setState({wallet:e})}),[l.id]);let a=e.useMemo((()=>{if(!u)return;let[,e]=u.split(":");return s.find((t=>t.address===e))||i.find((t=>t.address===e))}),[u,s,i]),c=e.useMemo((()=>a?"ethereum"===a.type?a.chainId:"solana":void 0),[a]);return{connect:async e=>{e?.reset&&(n.f.del(n.toActiveWalletKey(l.id)),n.useActiveWalletStore.setState({wallet:void 0}));let{wallet:t}=await n.open();if(!t)return{};let[,r]=t.split(":"),o=s.find((e=>e.address===r));if(o)return{wallet:o,network:o.chainId};let u=i.find((e=>e.address===r));return u?{wallet:u,network:"solana"}:{}},setActiveWallet:e.useCallback((e=>{n.setActiveWallet({address:e.address,client:e.walletClientType,appId:l.id})}),[l.id]),wallet:a,network:c}},exports.useConnectWallet=function(l){let{connectWallet:r}=e.useContext(n.PrivyContext);return t.usePrivyEventSubscription("connectWallet",l),{connectWallet:r}},exports.useElementHeight=t=>{let[n,l]=e.useState("auto");return e.useEffect((()=>{let e=new ResizeObserver((e=>{l(e[0]?.contentRect.height??"auto")}));return t.current&&e.observe(t.current),()=>{t.current&&e.unobserve(t.current)}}),[t.current]),n},exports.useFundWallet=e=>{t.usePrivyEventSubscription("fundWallet",e);let{fundWallet:n}=r.usePrivyInternal();return{fundWallet:({address:e,options:t})=>n(e,t)}},exports.useLogin=function(l){let{login:r}=e.useContext(n.PrivyContext);return t.usePrivyEventSubscription("login",l),{login:r}},exports.useLogout=function(l){let{logout:r}=e.useContext(n.PrivyContext);return t.usePrivyEventSubscription("logout",l),{logout:r}};
@@ -1 +1 @@
1
- "use strict";var e=require("./internal-context-CeWKmK5u.js"),r=require("@privy-io/js-sdk-core"),t=require("react"),n=require("./EmbeddedWalletConnectingScreen-D_YsihzO.js"),a=require("./events-context-Dn0fJZ2h.js");function i(e){let r=e.replace("eip155:","");if(r)return parseInt(r);throw Error("Chain ID not compatible with CAIP-2 format.")}const o=e=>e.filter((e=>"wallets"===e.method||("exchange"===e.method?"coinbase"===e.provider:"card"===e.method||"payment-request"===e.method?"coinbase"===e.provider||"moonpay"===e.provider:(e.method,!1)))),l={[r.mainnet.id]:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",[r.sepolia.id]:"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",[r.optimism.id]:"0x0b2c639c533813f4aa9d7837caf62653d097ff85",[r.optimismSepolia.id]:"0x5fd84259d66Cd46123540766Be93DFE6D43130D7",[r.polygon.id]:"0x3c499c542cef5e3811e1192ce70d8cc03d5c3359",[r.polygonAmoy.id]:"0x41e94eb019c0762f9bfcf9fb1e58725bfb0e7582",[r.base.id]:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",[r.baseSepolia.id]:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",[r.avalanche.id]:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",[r.avalancheFuji.id]:"0x5425890298aed601595a70ab815c96711a31bc65",[r.arbitrum.id]:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",[r.arbitrumSepolia.id]:"0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d"};const d=e=>e.reduce(((e,r)=>!e||e.walletIndex<r.walletIndex?r:e),null),s=async({appConfig:r,getAccessToken:t,initializeWalletProxy:a,user:i,privy:o,emitPrivyEvent:l,recoverEmbeddedWallet:s,setModalData:u,openModal:p,setUser:E,options:f,timeoutDuration:h,refreshSessionAndUser:y,chainType:m})=>{let[v,g]=await Promise.all([a(h),t()]);if(!g||!i)throw l("createWallet","onError",e.PrivyErrorCode.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");if(!v&&r.customAuth?.enabled)throw l("createWallet","onError",e.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");if(f&&"walletIndex"in f&&"number"==typeof f.walletIndex){if("user-controlled-server-wallets-only"===r.embeddedWallets.mode)throw l("createWallet","onError",e.PrivyErrorCode.INVALID_DATA),Error("Invalid input, use `createAdditional` instead of `walletIndex` to create additional wallets.");return c({accessToken:g,appConfig:r,privy:o,emitPrivyEvent:l,openModal:p,proxy:v,refreshSessionAndUser:y,recoverEmbeddedWallet:s,setModalData:u,user:i,walletIndex:f.walletIndex,chainType:m,setUser:E})}let C=f&&"createAdditional"in f&&f.createAdditional,w=n.getPrivyWalletsWithFilter(i,{chainType:m});if(w[0]&&!C)throw l("createWallet","onError",e.PrivyErrorCode.EMBEDDED_WALLET_ALREADY_EXISTS),Error("User already has an embedded wallet.");return c({accessToken:g,appConfig:r,privy:o,emitPrivyEvent:l,openModal:p,proxy:v,recoverEmbeddedWallet:s,setModalData:u,user:i,walletIndex:(d(w)?.walletIndex??-1)+1,chainType:m,refreshSessionAndUser:y,setUser:E})};let c=async({accessToken:r,appConfig:t,privy:a,emitPrivyEvent:i,proxy:o,refreshSessionAndUser:l,recoverEmbeddedWallet:d,user:s,walletIndex:c,setModalData:p,openModal:E,chainType:f,setUser:h})=>{if(c<0)throw i("createWallet","onError",e.PrivyErrorCode.EMBEDDED_WALLET_CREATE_ERROR),Error(`A negative walletIndex (${c}) is invalid.`);let y=n.getPrivyPrimaryWallet(s);if(c>0&&!y)throw i("createWallet","onError",e.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND),Error("Must have an existing embedded wallet to create an additional wallet.");if(t.embeddedWallets.requireUserOwnedRecoveryOnCreate&&"user-controlled-server-wallets-only"===t.embeddedWallets.mode)throw i("createWallet","onError",e.PrivyErrorCode.EMBEDDED_WALLET_CREATE_ERROR),Error("User owned recovery not yet supported for this app.");if(!y&&t.embeddedWallets.requireUserOwnedRecoveryOnCreate)return await u({emitPrivyEvent:i,setModalData:p,openModal:E,chainType:f});let m=n.getPrivyWalletsWithFilter(s,{chainType:f,walletIndex:c})[0];if(m)return{user:s,account:m};if(0===c&&!o)return u({emitPrivyEvent:i,setModalData:p,openModal:E,chainType:f});if(!o)throw i("createWallet","onError",e.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");return n.createWalletAtIndex({appConfig:t,walletIndex:c,chainType:f,user:s,accessToken:r,proxy:o,refreshSessionAndUser:l,privy:a,recoverEmbeddedWallet:d,setUser:h})},u=async({emitPrivyEvent:r,setModalData:t,openModal:a,chainType:i})=>new Promise(((o,l)=>{t({createWallet:{onSuccess:({user:e,account:t})=>{r("createWallet","onSuccess",{wallet:t}),o({user:e,account:t})},onFailure:t=>{r("createWallet","onError",e.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),l(t)},callAuthOnSuccessOnClose:!1,shouldCreateEth:"ethereum"===i,shouldCreateSol:"solana"===i}}),a(n.EmbeddedWalletOnAccountCreateScreen)}));const p=()=>{let r=a.useAppConfig(),t=a.useEmitPrivyEvent(),{setModalData:i}=n.usePrivyModal(),{initializeWalletProxy:o,recoverEmbeddedWallet:l,setUser:d,openModal:c,refreshSessionAndUser:u,privy:p,client:E}=e.usePrivyInternal();return{create:async({chainType:n,options:f,latestUser:h})=>{let y=h;if(y||(y=await u()),!y)throw t("createWallet","onError",e.PrivyErrorCode.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");return await s({appConfig:r,privy:p,getAccessToken:()=>E.getAccessToken(),refreshSessionAndUser:u,initializeWalletProxy:o,user:y,emitPrivyEvent:t,recoverEmbeddedWallet:l,setModalData:i,openModal:c,setUser:d,options:f,timeoutDuration:a.WALLET_PROXY_TIMEOUT,chainType:n})}}};function E(e){let{create:r}=p();return a.usePrivyEventSubscription("createWallet",e),{createWallet:async e=>{e&&"target"in e&&e&&(e=void 0);let{account:t}=await r({chainType:"ethereum",options:e});return t}}}const f=async({emitPrivyEvent:r,getAccessToken:t,initializeWalletProxy:a,refreshSessionAndUser:i,user:o,appConfig:l},{privateKey:d,chainType:s,additionalSigners:c})=>{if(!o)throw r("linkAccount","onError",e.PrivyErrorCode.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new e.PrivyClientError("User must be authenticated before linking an account.");let u="user-controlled-server-wallets-only"===l.embeddedWallets.mode?"tee":"on-device";if(c&&"on-device"===u)throw new e.PrivyClientError("Specifying additionalSigners is only supported for TEE execution and this app uses On-device execution. Learn more https://docs.privy.io/recipes/tee-wallet-migration-guide");let[p,E]=await Promise.all([t(),a(15e3)]);if(!E||!p)throw r("linkAccount","onError",e.PrivyErrorCode.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new e.PrivyClientError("User must be authenticated before linking an account.");let{address:f}=await E.importWallet({privateKey:d,accessToken:p,chainType:s,mode:u,additionalSigners:c}),h=await i(),y="solana"===s?n.getImportedPrivySolanaWallets(h):n.getImportedPrivyEthereumWallets(h),m=y?.find((e=>e.address===f));if(!m)throw r("createWallet","onError",e.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to import wallet");return r("createWallet","onSuccess",{wallet:m}),m},h=()=>{let{user:r}=n.usePrivyContext(),{client:i,refreshSessionAndUser:o,initializeWalletProxy:l}=e.usePrivyInternal(),d=a.useEmitPrivyEvent(),s=a.useAppConfig();return{importWallet:t.useCallback((({privateKey:e,additionalSigners:t})=>f({getAccessToken:()=>i.getAccessToken(),user:r,initializeWalletProxy:l,refreshSessionAndUser:o,emitPrivyEvent:d,appConfig:s},{privateKey:e,chainType:"ethereum",additionalSigners:t})),[r,i,o,l,d,s])}};exports.extractChainIdFromCAIP2=i,exports.filterSupportedOptions=o,exports.importWallet=f,exports.isFirstClassChainWallet=function(e){return["ethereum","solana"].includes(e.chainType)},exports.prepareFundingModalData=({address:r,appConfig:t,fundWalletConfig:n,methodScreen:a,chainIdOverride:d,comingFromSendTransactionScreen:s=!1})=>{let c,u;if(!t.fundingConfig)throw Error("Wallet funding is not enabled");let p=o(t.fundingConfig.options);if(p.length<1)throw Error("Wallet funding is not enabled");c=d||(n?.chain?n.chain.id:i(t.fundingConfig.defaultRecommendedCurrency.chain));let E=t.chains.find((e=>e.id===c));if(!E)throw new e.PrivyClientError(`Funding chain ${c} is not in PrivyProvider chains list`);let f=n?.amount??t.fundingConfig.defaultRecommendedAmount,h=!1;function y(){if(!c)return;let e=l[c];p.find((e=>"wallets"===e.method))&&!e&&console.warn("Attempting to fund with USDC on chain where USDC address is not known. Funding via external wallet will be disabled."),u=e,h=!0}n&&"asset"in n?"USDC"===n.asset?y():"string"!=typeof n.asset&&"erc20"in n.asset&&(h=((e,r)=>e===l[r.id])(u=n.asset.erc20,E)):"USDC"===t.fundingConfig.defaultRecommendedCurrency.asset&&y();let m=n?.defaultFundingMethod;return{chainType:"ethereum",address:r,amount:f,chain:E,erc20Address:u,erc20ContractInfo:h?{symbol:"USDC",decimals:6}:void 0,isUSDC:h,methodScreen:a,supportedOptions:p,comingFromSendTransactionScreen:s,defaultFundingMethod:m,usingDefaultFundingMethod:!!m,preferredCardProvider:n?.card?.preferredProvider,crossChainBridgingEnabled:t.fundingConfig.crossChainBridgingEnabled??!1,solanaChain:"solana:mainnet",uiConfig:n&&"uiConfig"in n?n.uiConfig:void 0,externalSolanaFundingScreen:null}},exports.prepareSolanaFundingModalData=function({address:e,fundWalletConfig:r,appConfig:t,comingFromSendTransactionScreen:n,externalSolanaFundingScreen:a,methodScreen:i}){if(!t.fundingConfig)throw Error("Wallet funding is not enabled");let l=o(t.fundingConfig.options);if(l.length<1)throw Error("Wallet funding is not enabled");if("USDC"===r?.asset&&"solana:testnet"===r?.chain)throw Error("USDC funding is not supported on the Solana testnet");let d=r?.amount??t.fundingConfig.defaultRecommendedAmount,s=r?.defaultFundingMethod;return{chainType:"solana",address:e,supportedOptions:l,amount:d,isUSDC:"USDC"===r?.asset,methodScreen:i,comingFromSendTransactionScreen:n,chain:r?.chain||"solana:mainnet",crossChainBridgingEnabled:t.fundingConfig.crossChainBridgingEnabled??!1,defaultFundingMethod:s,preferredCardProvider:r?.card?.preferredProvider,usingDefaultFundingMethod:!!s,uiConfig:r?.uiConfig,externalSolanaFundingScreen:a}},exports.useCreateWallet=E,exports.useCreateWalletInternal=p,exports.useImportWallet=h,exports.usePrivy=()=>{let{importWallet:e}=h(),{createWallet:r}=E();return{...t.useContext(n.PrivyContext),importWallet:e,createWallet:r}};
1
+ "use strict";var e=require("./internal-context-CeWKmK5u.js"),r=require("@privy-io/js-sdk-core"),t=require("react"),n=require("./EmbeddedWalletConnectingScreen-i0UDHMDq.js"),a=require("./events-context-Cgq8fGB0.js");function i(e){let r=e.replace("eip155:","");if(r)return parseInt(r);throw Error("Chain ID not compatible with CAIP-2 format.")}const o=e=>e.filter((e=>"wallets"===e.method||("exchange"===e.method?"coinbase"===e.provider:"card"===e.method||"payment-request"===e.method?"coinbase"===e.provider||"moonpay"===e.provider:(e.method,!1)))),l={[r.mainnet.id]:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",[r.sepolia.id]:"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",[r.optimism.id]:"0x0b2c639c533813f4aa9d7837caf62653d097ff85",[r.optimismSepolia.id]:"0x5fd84259d66Cd46123540766Be93DFE6D43130D7",[r.polygon.id]:"0x3c499c542cef5e3811e1192ce70d8cc03d5c3359",[r.polygonAmoy.id]:"0x41e94eb019c0762f9bfcf9fb1e58725bfb0e7582",[r.base.id]:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",[r.baseSepolia.id]:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",[r.avalanche.id]:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",[r.avalancheFuji.id]:"0x5425890298aed601595a70ab815c96711a31bc65",[r.arbitrum.id]:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",[r.arbitrumSepolia.id]:"0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d"};const d=e=>e.reduce(((e,r)=>!e||e.walletIndex<r.walletIndex?r:e),null),s=async({appConfig:r,getAccessToken:t,initializeWalletProxy:a,user:i,privy:o,emitPrivyEvent:l,recoverEmbeddedWallet:s,setModalData:u,openModal:p,setUser:E,options:f,timeoutDuration:h,refreshSessionAndUser:y,chainType:m})=>{let[v,g]=await Promise.all([a(h),t()]);if(!g||!i)throw l("createWallet","onError",e.PrivyErrorCode.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");if(!v&&r.customAuth?.enabled)throw l("createWallet","onError",e.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");if(f&&"walletIndex"in f&&"number"==typeof f.walletIndex){if("user-controlled-server-wallets-only"===r.embeddedWallets.mode)throw l("createWallet","onError",e.PrivyErrorCode.INVALID_DATA),Error("Invalid input, use `createAdditional` instead of `walletIndex` to create additional wallets.");return c({accessToken:g,appConfig:r,privy:o,emitPrivyEvent:l,openModal:p,proxy:v,refreshSessionAndUser:y,recoverEmbeddedWallet:s,setModalData:u,user:i,walletIndex:f.walletIndex,chainType:m,setUser:E})}let C=f&&"createAdditional"in f&&f.createAdditional,w=n.getPrivyWalletsWithFilter(i,{chainType:m});if(w[0]&&!C)throw l("createWallet","onError",e.PrivyErrorCode.EMBEDDED_WALLET_ALREADY_EXISTS),Error("User already has an embedded wallet.");return c({accessToken:g,appConfig:r,privy:o,emitPrivyEvent:l,openModal:p,proxy:v,recoverEmbeddedWallet:s,setModalData:u,user:i,walletIndex:(d(w)?.walletIndex??-1)+1,chainType:m,refreshSessionAndUser:y,setUser:E})};let c=async({accessToken:r,appConfig:t,privy:a,emitPrivyEvent:i,proxy:o,refreshSessionAndUser:l,recoverEmbeddedWallet:d,user:s,walletIndex:c,setModalData:p,openModal:E,chainType:f,setUser:h})=>{if(c<0)throw i("createWallet","onError",e.PrivyErrorCode.EMBEDDED_WALLET_CREATE_ERROR),Error(`A negative walletIndex (${c}) is invalid.`);let y=n.getPrivyPrimaryWallet(s);if(c>0&&!y)throw i("createWallet","onError",e.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND),Error("Must have an existing embedded wallet to create an additional wallet.");if(t.embeddedWallets.requireUserOwnedRecoveryOnCreate&&"user-controlled-server-wallets-only"===t.embeddedWallets.mode)throw i("createWallet","onError",e.PrivyErrorCode.EMBEDDED_WALLET_CREATE_ERROR),Error("User owned recovery not yet supported for this app.");if(!y&&t.embeddedWallets.requireUserOwnedRecoveryOnCreate)return await u({emitPrivyEvent:i,setModalData:p,openModal:E,chainType:f});let m=n.getPrivyWalletsWithFilter(s,{chainType:f,walletIndex:c})[0];if(m)return{user:s,account:m};if(0===c&&!o)return u({emitPrivyEvent:i,setModalData:p,openModal:E,chainType:f});if(!o)throw i("createWallet","onError",e.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");return n.createWalletAtIndex({appConfig:t,walletIndex:c,chainType:f,user:s,accessToken:r,proxy:o,refreshSessionAndUser:l,privy:a,recoverEmbeddedWallet:d,setUser:h})},u=async({emitPrivyEvent:r,setModalData:t,openModal:a,chainType:i})=>new Promise(((o,l)=>{t({createWallet:{onSuccess:({user:e,account:t})=>{r("createWallet","onSuccess",{wallet:t}),o({user:e,account:t})},onFailure:t=>{r("createWallet","onError",e.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),l(t)},callAuthOnSuccessOnClose:!1,shouldCreateEth:"ethereum"===i,shouldCreateSol:"solana"===i}}),a(n.EmbeddedWalletOnAccountCreateScreen)}));const p=()=>{let r=a.useAppConfig(),t=a.useEmitPrivyEvent(),{setModalData:i}=n.usePrivyModal(),{initializeWalletProxy:o,recoverEmbeddedWallet:l,setUser:d,openModal:c,refreshSessionAndUser:u,privy:p,client:E}=e.usePrivyInternal();return{create:async({chainType:n,options:f,latestUser:h})=>{let y=h;if(y||(y=await u()),!y)throw t("createWallet","onError",e.PrivyErrorCode.MUST_BE_AUTHENTICATED),Error("User must be authenticated before creating a Privy wallet");return await s({appConfig:r,privy:p,getAccessToken:()=>E.getAccessToken(),refreshSessionAndUser:u,initializeWalletProxy:o,user:y,emitPrivyEvent:t,recoverEmbeddedWallet:l,setModalData:i,openModal:c,setUser:d,options:f,timeoutDuration:a.WALLET_PROXY_TIMEOUT,chainType:n})}}};function E(e){let{create:r}=p();return a.usePrivyEventSubscription("createWallet",e),{createWallet:async e=>{e&&"target"in e&&e&&(e=void 0);let{account:t}=await r({chainType:"ethereum",options:e});return t}}}const f=async({emitPrivyEvent:r,getAccessToken:t,initializeWalletProxy:a,refreshSessionAndUser:i,user:o,appConfig:l},{privateKey:d,chainType:s,additionalSigners:c})=>{if(!o)throw r("linkAccount","onError",e.PrivyErrorCode.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new e.PrivyClientError("User must be authenticated before linking an account.");let u="user-controlled-server-wallets-only"===l.embeddedWallets.mode?"tee":"on-device";if(c&&"on-device"===u)throw new e.PrivyClientError("Specifying additionalSigners is only supported for TEE execution and this app uses On-device execution. Learn more https://docs.privy.io/recipes/tee-wallet-migration-guide");let[p,E]=await Promise.all([t(),a(15e3)]);if(!E||!p)throw r("linkAccount","onError",e.PrivyErrorCode.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new e.PrivyClientError("User must be authenticated before linking an account.");let{address:f}=await E.importWallet({privateKey:d,accessToken:p,chainType:s,mode:u,additionalSigners:c}),h=await i(),y="solana"===s?n.getImportedPrivySolanaWallets(h):n.getImportedPrivyEthereumWallets(h),m=y?.find((e=>e.address===f));if(!m)throw r("createWallet","onError",e.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to import wallet");return r("createWallet","onSuccess",{wallet:m}),m},h=()=>{let{user:r}=n.usePrivyContext(),{client:i,refreshSessionAndUser:o,initializeWalletProxy:l}=e.usePrivyInternal(),d=a.useEmitPrivyEvent(),s=a.useAppConfig();return{importWallet:t.useCallback((({privateKey:e,additionalSigners:t})=>f({getAccessToken:()=>i.getAccessToken(),user:r,initializeWalletProxy:l,refreshSessionAndUser:o,emitPrivyEvent:d,appConfig:s},{privateKey:e,chainType:"ethereum",additionalSigners:t})),[r,i,o,l,d,s])}};exports.extractChainIdFromCAIP2=i,exports.filterSupportedOptions=o,exports.importWallet=f,exports.isFirstClassChainWallet=function(e){return["ethereum","solana"].includes(e.chainType)},exports.prepareFundingModalData=({address:r,appConfig:t,fundWalletConfig:n,methodScreen:a,chainIdOverride:d,comingFromSendTransactionScreen:s=!1})=>{let c,u;if(!t.fundingConfig)throw Error("Wallet funding is not enabled");let p=o(t.fundingConfig.options);if(p.length<1)throw Error("Wallet funding is not enabled");c=d||(n?.chain?n.chain.id:i(t.fundingConfig.defaultRecommendedCurrency.chain));let E=t.chains.find((e=>e.id===c));if(!E)throw new e.PrivyClientError(`Funding chain ${c} is not in PrivyProvider chains list`);let f=n?.amount??t.fundingConfig.defaultRecommendedAmount,h=!1;function y(){if(!c)return;let e=l[c];p.find((e=>"wallets"===e.method))&&!e&&console.warn("Attempting to fund with USDC on chain where USDC address is not known. Funding via external wallet will be disabled."),u=e,h=!0}n&&"asset"in n?"USDC"===n.asset?y():"string"!=typeof n.asset&&"erc20"in n.asset&&(h=((e,r)=>e===l[r.id])(u=n.asset.erc20,E)):"USDC"===t.fundingConfig.defaultRecommendedCurrency.asset&&y();let m=n?.defaultFundingMethod;return{chainType:"ethereum",address:r,amount:f,chain:E,erc20Address:u,erc20ContractInfo:h?{symbol:"USDC",decimals:6}:void 0,isUSDC:h,methodScreen:a,supportedOptions:p,comingFromSendTransactionScreen:s,defaultFundingMethod:m,usingDefaultFundingMethod:!!m,preferredCardProvider:n?.card?.preferredProvider,crossChainBridgingEnabled:t.fundingConfig.crossChainBridgingEnabled??!1,solanaChain:"solana:mainnet",uiConfig:n&&"uiConfig"in n?n.uiConfig:void 0,externalSolanaFundingScreen:null}},exports.prepareSolanaFundingModalData=function({address:e,fundWalletConfig:r,appConfig:t,comingFromSendTransactionScreen:n,externalSolanaFundingScreen:a,methodScreen:i}){if(!t.fundingConfig)throw Error("Wallet funding is not enabled");let l=o(t.fundingConfig.options);if(l.length<1)throw Error("Wallet funding is not enabled");if("USDC"===r?.asset&&"solana:testnet"===r?.chain)throw Error("USDC funding is not supported on the Solana testnet");let d=r?.amount??t.fundingConfig.defaultRecommendedAmount,s=r?.defaultFundingMethod;return{chainType:"solana",address:e,supportedOptions:l,amount:d,isUSDC:"USDC"===r?.asset,methodScreen:i,comingFromSendTransactionScreen:n,chain:r?.chain||"solana:mainnet",crossChainBridgingEnabled:t.fundingConfig.crossChainBridgingEnabled??!1,defaultFundingMethod:s,preferredCardProvider:r?.card?.preferredProvider,usingDefaultFundingMethod:!!s,uiConfig:r?.uiConfig,externalSolanaFundingScreen:a}},exports.useCreateWallet=E,exports.useCreateWalletInternal=p,exports.useImportWallet=h,exports.usePrivy=()=>{let{importWallet:e}=h(),{createWallet:r}=E();return{...t.useContext(n.PrivyContext),importWallet:e,createWallet:r}};
@@ -724,11 +724,11 @@ declare const getPublicClient: (chainId: number, chains: Chain[], rpcConfig: Rpc
724
724
  verifySiweMessage: (args: {
725
725
  blockNumber?: bigint | undefined;
726
726
  blockTag?: viem.BlockTag | undefined;
727
+ time?: Date | undefined;
727
728
  address?: Address | undefined;
728
729
  nonce?: string | undefined;
729
730
  domain?: string | undefined;
730
731
  scheme?: string | undefined;
731
- time?: Date | undefined;
732
732
  message: string;
733
733
  signature: viem.Hex;
734
734
  }) => Promise<boolean>;
@@ -724,11 +724,11 @@ declare const getPublicClient: (chainId: number, chains: Chain[], rpcConfig: Rpc
724
724
  verifySiweMessage: (args: {
725
725
  blockNumber?: bigint | undefined;
726
726
  blockTag?: viem.BlockTag | undefined;
727
+ time?: Date | undefined;
727
728
  address?: Address | undefined;
728
729
  nonce?: string | undefined;
729
730
  domain?: string | undefined;
730
731
  scheme?: string | undefined;
731
- time?: Date | undefined;
732
732
  message: string;
733
733
  signature: viem.Hex;
734
734
  }) => Promise<boolean>;