@privy-io/react-auth 3.5.1 → 3.6.0-beta-20251104233157

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 (48) hide show
  1. package/dist/cjs/{EmbeddedWalletConnectingScreen-i0UDHMDq.js → EmbeddedWalletConnectingScreen-BqfMDyz5.js} +15 -15
  2. package/dist/cjs/{SignRequestScreen-H5r467q6.js → SignRequestScreen-QZ4hrdFs.js} +1 -1
  3. package/dist/cjs/abstract-smart-wallets.js +1 -1
  4. package/dist/cjs/{events-context-Cgq8fGB0.js → events-context-CTzE6voY.js} +1 -1
  5. package/dist/cjs/extended-chains.js +1 -1
  6. package/dist/cjs/index.js +3 -3
  7. package/dist/cjs/internal.js +1 -1
  8. package/dist/cjs/{smart-wallets-B0bTYa6G.js → smart-wallets-Cre72XH9.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-BhYG6ocQ.js → use-export-wallet-BJWkMs42.js} +1 -1
  13. package/dist/cjs/{useActiveWallet-BoPIudwB.js → useActiveWallet-C6JeGgtY.js} +1 -1
  14. package/dist/cjs/{usePrivy-CLLJiDdU.js → usePrivy-BD7tV097.js} +1 -1
  15. package/dist/dts/{events-context-DB3Pn5Hg.d.mts → events-context-B1q54lAU.d.mts} +1 -1
  16. package/dist/dts/{events-context-DB3Pn5Hg.d.ts → events-context-B1q54lAU.d.ts} +1 -1
  17. package/dist/dts/extended-chains.d.mts +4 -4
  18. package/dist/dts/extended-chains.d.ts +4 -4
  19. package/dist/dts/farcaster.d.mts +2 -2
  20. package/dist/dts/farcaster.d.ts +2 -2
  21. package/dist/dts/index.d.mts +17 -16
  22. package/dist/dts/index.d.ts +17 -16
  23. package/dist/dts/internal.d.mts +2 -2
  24. package/dist/dts/internal.d.ts +2 -2
  25. package/dist/dts/smart-wallets.d.mts +2 -2
  26. package/dist/dts/smart-wallets.d.ts +2 -2
  27. package/dist/dts/solana.d.mts +4 -4
  28. package/dist/dts/solana.d.ts +4 -4
  29. package/dist/dts/{types-C4KyGxEF.d.mts → types-BSeKsLfK.d.mts} +105 -29
  30. package/dist/dts/{types-C4KyGxEF.d.ts → types-BSeKsLfK.d.ts} +105 -29
  31. package/dist/dts/ui.d.mts +2 -2
  32. package/dist/dts/ui.d.ts +2 -2
  33. package/dist/esm/{EmbeddedWalletConnectingScreen-BehtOUIO.mjs → EmbeddedWalletConnectingScreen-65UmFx4m.mjs} +16 -16
  34. package/dist/esm/{SignRequestScreen-W1brL2hg.mjs → SignRequestScreen-C8LUoYDo.mjs} +1 -1
  35. package/dist/esm/abstract-smart-wallets.mjs +1 -1
  36. package/dist/esm/events-context-ClMjzU81.mjs +1 -0
  37. package/dist/esm/extended-chains.mjs +1 -1
  38. package/dist/esm/index.mjs +3 -3
  39. package/dist/esm/internal.mjs +1 -1
  40. package/dist/esm/{smart-wallets-CZ7EzP9s.mjs → smart-wallets-CI9OABOB.mjs} +1 -1
  41. package/dist/esm/smart-wallets.mjs +1 -1
  42. package/dist/esm/solana.mjs +1 -1
  43. package/dist/esm/ui.mjs +1 -1
  44. package/dist/esm/{use-export-wallet-CPxLgKFx.mjs → use-export-wallet-DgqioSGv.mjs} +1 -1
  45. package/dist/esm/{useActiveWallet-Bw1ry9JQ.mjs → useActiveWallet-BZjcL2BV.mjs} +1 -1
  46. package/dist/esm/{usePrivy-BJ3NMQui.mjs → usePrivy-A9QX-DHk.mjs} +1 -1
  47. package/package.json +4 -4
  48. package/dist/esm/events-context-BKqrDYHW.mjs +0 -1
@@ -1,2 +1,2 @@
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,{})]}):
1
+ "use strict";var e=require("./events-context-CTzE6voY.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-BqfMDyz5.js"),s=require("./internal-context-CeWKmK5u.js"),o=require("./usePrivy-BD7tV097.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-QZ4hrdFs.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(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")})(e);let{signedTransaction:t}=await u({transaction:e,address:d,chain:f,options:{...h,uiOptions:{...h?.uiOptions,showWalletUIs:!1}}}),{signature:a}=await p(f).sendAndConfirmTransaction(t);return{signature:a}}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);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-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
+ "use strict";var e=require("react"),t=require("./events-context-CTzE6voY.js"),n=require("./EmbeddedWalletConnectingScreen-BqfMDyz5.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-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}};
1
+ "use strict";var e=require("./internal-context-CeWKmK5u.js"),r=require("@privy-io/js-sdk-core"),t=require("react"),n=require("./EmbeddedWalletConnectingScreen-BqfMDyz5.js"),a=require("./events-context-CTzE6voY.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,5 +1,5 @@
1
1
  import { Chain } from '@privy-io/js-sdk-core';
2
- import { U as User, L as LoginMethod, a as LinkedAccountWithMetadata, P as PrivyErrorCode, B as BaseConnectedEthereumWallet, b as BaseConnectedSolanaWallet, W as Wallet, M as MfaMethod, c as UserRecoveryMethod, O as OAuthTokens, F as FundingMethod, S as SolanaChain } from './types-C4KyGxEF.js';
2
+ import { U as User, L as LoginMethod, a as LinkedAccountWithMetadata, P as PrivyErrorCode, B as BaseConnectedEthereumWallet, b as BaseConnectedSolanaWallet, W as Wallet, M as MfaMethod, c as UserRecoveryMethod, O as OAuthTokens, F as FundingMethod, S as SolanaChain } from './types-BSeKsLfK.js';
3
3
 
4
4
  /**
5
5
  * `CallbackError` optionally includes a second parameter with further error details.
@@ -1,5 +1,5 @@
1
1
  import { Chain } from '@privy-io/js-sdk-core';
2
- import { U as User, L as LoginMethod, a as LinkedAccountWithMetadata, P as PrivyErrorCode, B as BaseConnectedEthereumWallet, b as BaseConnectedSolanaWallet, W as Wallet, M as MfaMethod, c as UserRecoveryMethod, O as OAuthTokens, F as FundingMethod, S as SolanaChain } from './types-C4KyGxEF.js';
2
+ import { U as User, L as LoginMethod, a as LinkedAccountWithMetadata, P as PrivyErrorCode, B as BaseConnectedEthereumWallet, b as BaseConnectedSolanaWallet, W as Wallet, M as MfaMethod, c as UserRecoveryMethod, O as OAuthTokens, F as FundingMethod, S as SolanaChain } from './types-BSeKsLfK.js';
3
3
 
4
4
  /**
5
5
  * `CallbackError` optionally includes a second parameter with further error details.
@@ -1,5 +1,5 @@
1
- import { ExtendedChainType, WalletResponseType, CurveSigningChainType } from '@privy-io/public-api';
2
- import { U as User } from './types-C4KyGxEF.js';
1
+ import { CurveSigningChainType, Wallet } from '@privy-io/api-types';
2
+ import { U as User } from './types-BSeKsLfK.js';
3
3
  import '@coinbase/wallet-sdk';
4
4
  import '@simplewebauthn/browser';
5
5
  import '@solana/kit';
@@ -14,11 +14,11 @@ import 'eventemitter3';
14
14
 
15
15
  interface CreateWalletInput {
16
16
  /** The chain type of the wallet to create. */
17
- chainType: ExtendedChainType;
17
+ chainType: CurveSigningChainType | 'spark';
18
18
  }
19
19
  interface CreateWalletOutput {
20
20
  user: User;
21
- wallet: WalletResponseType;
21
+ wallet: Wallet;
22
22
  }
23
23
  interface UseCreateWalletInterface {
24
24
  /**
@@ -1,5 +1,5 @@
1
- import { ExtendedChainType, WalletResponseType, CurveSigningChainType } from '@privy-io/public-api';
2
- import { U as User } from './types-C4KyGxEF.js';
1
+ import { CurveSigningChainType, Wallet } from '@privy-io/api-types';
2
+ import { U as User } from './types-BSeKsLfK.js';
3
3
  import '@coinbase/wallet-sdk';
4
4
  import '@simplewebauthn/browser';
5
5
  import '@solana/kit';
@@ -14,11 +14,11 @@ import 'eventemitter3';
14
14
 
15
15
  interface CreateWalletInput {
16
16
  /** The chain type of the wallet to create. */
17
- chainType: ExtendedChainType;
17
+ chainType: CurveSigningChainType | 'spark';
18
18
  }
19
19
  interface CreateWalletOutput {
20
20
  user: User;
21
- wallet: WalletResponseType;
21
+ wallet: Wallet;
22
22
  }
23
23
  interface UseCreateWalletInterface {
24
24
  /**
@@ -1,11 +1,11 @@
1
- import { d as LoginToMiniApp, U as User } from './types-C4KyGxEF.js';
1
+ import { d as LoginToMiniApp, U as User } from './types-BSeKsLfK.js';
2
2
  import '@coinbase/wallet-sdk';
3
3
  import '@simplewebauthn/browser';
4
4
  import '@solana/kit';
5
5
  import 'react';
6
6
  import 'viem';
7
+ import '@privy-io/api-types';
7
8
  import '@privy-io/js-sdk-core';
8
- import '@privy-io/public-api';
9
9
  import '@base-org/account';
10
10
  import '@wallet-standard/base';
11
11
  import '@solana/wallet-standard-features';
@@ -1,11 +1,11 @@
1
- import { d as LoginToMiniApp, U as User } from './types-C4KyGxEF.js';
1
+ import { d as LoginToMiniApp, U as User } from './types-BSeKsLfK.js';
2
2
  import '@coinbase/wallet-sdk';
3
3
  import '@simplewebauthn/browser';
4
4
  import '@solana/kit';
5
5
  import 'react';
6
6
  import 'viem';
7
+ import '@privy-io/api-types';
7
8
  import '@privy-io/js-sdk-core';
8
- import '@privy-io/public-api';
9
9
  import '@base-org/account';
10
10
  import '@wallet-standard/base';
11
11
  import '@solana/wallet-standard-features';
@@ -1,22 +1,22 @@
1
1
  import * as react from 'react';
2
2
  import react__default, { MouseEvent } from 'react';
3
- import { k as MfaSubmitArgs, c as UserRecoveryMethod, g as SessionSignerInput, E as EthereumRpcRequestType, l as SolanaRpcRequestType, m as EthereumRpcResponseType, n as SolanaRpcResponseType, o as PrivyFarcasterSignerInitResponse, p as EIP1193Provider, q as EntropyIdVerifier$1, H as HDWalletWithMetadata, r as RequestArguments, s as WalletConnector, B as BaseConnectedEthereumWallet, u as PrivyProxyProvider, v as WalletClientType, w as ConnectedWalletMetadata, x as PrivyClientConfig, y as ConnectorType, z as SetBaseAccountSdkType, A as WalletListEntry, D as AppConfig, G as BaseConnectedWallet, j as SolanaWalletConnector, U as User, I as ConnectWalletModalOptions, J as LoginModalOptions, C as CreateWalletOptions, W as Wallet, K as SetWalletRecoveryOptions, f as SignMessageModalUIOptions, N as SignTypedDataParams, M as MfaMethod, Q as UnsignedTransactionRequest, e as SendTransactionModalUIOptions, T as FundWalletConfig, V as ConnectedWallet, O as OAuthTokens, X as CrossAppProviderDetails, Y as MoonpaySignRequest, Z as MoonpaySignResponse, _ as SmartWalletConfig, $ as SiwsMessageType, L as LoginMethod, a0 as ExternalWalletMetadata, a1 as TelegramAuthResult, a2 as TelegramWebAppData, a3 as OAuthUserInfo, a4 as OAuthFlowState, a5 as LoginWithCode, a6 as OtpFlowState, a7 as PasskeyFlowState, a8 as SiweFlowState, a as LinkedAccountWithMetadata, a9 as BaseAccountSdkType, aa as UnsignedTransactionRequestWithChainId, ab as BaseConnectedWalletType, b as BaseConnectedSolanaWallet, ac as TelegramAuthFlowState } from './types-C4KyGxEF.js';
4
- export { au as Apple, aH as AppleOAuthWithMetadata, aP as ContractUIOptions, ay as CrossAppAccount, aK as CrossAppAccountWithMetadata, ar as Discord, aC as DiscordOAuthWithMetadata, aM as Email, am as EmailWithMetadata, aS as Farcaster, aI as FarcasterWithMetadata, as as Github, aD as GithubOAuthWithMetadata, ap as Google, aA as GoogleOAuthWithMetadata, aw as Line, aF as LineOAuthWithMetadata, az as LinkedAccountType, at as LinkedIn, aG as LinkedInOAuthWithMetadata, aU as LoginMethodOrderOption, ae as MessageTypes, ag as MoonpayCurrencyCode, ah as MoonpayPaymentMethod, aQ as NativeFundingConfig, al as NonEmptyArray, aT as Passkey, aL as PasskeyWithMetadata, aN as Phone, an as PhoneWithMetadata, aR as PriceDisplayOptions, P as PrivyErrorCode, ai as Quantity, aV as SiwsFlowState, af as SmartWallet, ax as Telegram, aJ as TelegramWithMetadata, av as Tiktok, aE as TiktokOAuthWithMetadata, aj as TransactionLog, ak as TransactionReceipt, aO as TransactionUIOptions, aq as Twitter, aB as TwitterOAuthWithMetadata, ad as TypedMessage, ao as WalletWithMetadata } from './types-C4KyGxEF.js';
3
+ import { k as MfaSubmitArgs, c as UserRecoveryMethod, g as SessionSignerInput, E as EthereumRpcRequestType, l as SolanaRpcRequestType, m as EthereumRpcResponseType, n as SolanaRpcResponseType, o as PrivyFarcasterSignerInitResponse, p as EIP1193Provider, q as EntropyIdVerifier$1, H as HDWalletWithMetadata, r as RequestArguments, s as WalletConnector, B as BaseConnectedEthereumWallet, u as PrivyProxyProvider, v as WalletClientType, w as ConnectedWalletMetadata, x as PrivyClientConfig, y as ConnectorType, z as SetBaseAccountSdkType, A as WalletListEntry, D as AppConfig, G as BaseConnectedWallet, j as SolanaWalletConnector, U as User, I as ConnectWalletModalOptions, J as LoginModalOptions, C as CreateWalletOptions, W as Wallet, K as SetWalletRecoveryOptions, f as SignMessageModalUIOptions, N as SignTypedDataParams, M as MfaMethod, Q as UnsignedTransactionRequest, e as SendTransactionModalUIOptions, T as FundWalletConfig, V as ConnectedWallet, O as OAuthTokens, X as CrossAppProviderDetails, Y as MoonpaySignRequest, Z as MoonpaySignResponse, _ as SmartWalletConfig, $ as SiwsMessageType, L as LoginMethod, a0 as ExternalWalletMetadata, a1 as TelegramAuthResult, a2 as TelegramWebAppData, a3 as OAuthUserInfo, a4 as OAuthFlowState, a5 as LoginWithCode, a6 as OtpFlowState, a7 as PasskeyFlowState, a8 as SiweFlowState, a as LinkedAccountWithMetadata, a9 as BaseAccountSdkType, aa as UnsignedTransactionRequestWithChainId, ab as BaseConnectedWalletType, b as BaseConnectedSolanaWallet, ac as TelegramAuthFlowState } from './types-BSeKsLfK.js';
4
+ export { au as Apple, aH as AppleOAuthWithMetadata, aP as ContractUIOptions, ay as CrossAppAccount, aK as CrossAppAccountWithMetadata, ar as Discord, aC as DiscordOAuthWithMetadata, aM as Email, am as EmailWithMetadata, aS as Farcaster, aI as FarcasterWithMetadata, as as Github, aD as GithubOAuthWithMetadata, ap as Google, aA as GoogleOAuthWithMetadata, aw as Line, aF as LineOAuthWithMetadata, az as LinkedAccountType, at as LinkedIn, aG as LinkedInOAuthWithMetadata, aU as LoginMethodOrderOption, ae as MessageTypes, ag as MoonpayCurrencyCode, ah as MoonpayPaymentMethod, aQ as NativeFundingConfig, al as NonEmptyArray, aT as Passkey, aL as PasskeyWithMetadata, aN as Phone, an as PhoneWithMetadata, aR as PriceDisplayOptions, P as PrivyErrorCode, aW as PrivyI18nStrings, ai as Quantity, aV as SiwsFlowState, af as SmartWallet, ax as Telegram, aJ as TelegramWithMetadata, av as Tiktok, aE as TiktokOAuthWithMetadata, aj as TransactionLog, ak as TransactionReceipt, aO as TransactionUIOptions, aq as Twitter, aB as TwitterOAuthWithMetadata, ad as TypedMessage, ao as WalletWithMetadata } from './types-BSeKsLfK.js';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
6
  import { TurnstileProps } from '@marsidev/react-turnstile';
7
7
  import EventEmitter from 'eventemitter3';
8
8
  import { Store, EIP6963ProviderDetail } from 'mipd';
9
9
  import Privy, { Chain, RpcConfig, GenerateAuthorizationSignatureInput, GenerateAuthorizationSignatureOutput } from '@privy-io/js-sdk-core';
10
10
  export { DEFAULT_SUPPORTED_CHAINS as SUPPORTED_CHAINS, addPrivyRpcToChain, addRpcUrlOverrideToChain } from '@privy-io/js-sdk-core';
11
- import { FirstClassChainType, PasskeyAuthenticateInputType, SmartWalletType, CustomOAuthProvider, CustomMetadataType, OAuthProviderType, PrivyCoinbaseOnRampInitInput, PrivyCoinbaseOnRampInitResponse, PrivyCoinbaseOnRampStatusResponse, PrivyTransactionScanningInputType, PrivyTransactionScanningResponseType } from '@privy-io/public-api';
12
- export { OAuthProviderType } from '@privy-io/public-api';
11
+ import { FirstClassChainType, PasskeyAuthenticateRequestBody, SmartWalletType, CustomOAuthProviderID, User as User$1, OAuthProviderID, CoinbaseOnRampInitInput, CoinbaseOnRampInitResponse, CoinbaseOnRampStatusResponse, TransactionScanningRequestBody, TransactionScanningResponseBody } from '@privy-io/api-types';
12
+ export { OAuthProviderID as OAuthProviderType } from '@privy-io/api-types';
13
13
  import * as viem from 'viem';
14
14
  import { Address, HttpTransport, Hex } from 'viem';
15
15
  import * as _simplewebauthn_browser from '@simplewebauthn/browser';
16
16
  import { PublicKeyCredentialRequestOptionsJSON } from '@simplewebauthn/browser';
17
17
  import { FetchOptions } from 'ofetch';
18
- import { P as PrivyEvents } from './events-context-DB3Pn5Hg.js';
19
- export { C as CallbackError } from './events-context-DB3Pn5Hg.js';
18
+ import { P as PrivyEvents } from './events-context-B1q54lAU.js';
19
+ export { C as CallbackError } from './events-context-B1q54lAU.js';
20
20
  import * as viem_accounts from 'viem/accounts';
21
21
  import '@coinbase/wallet-sdk';
22
22
  import '@solana/kit';
@@ -341,7 +341,7 @@ type FarcasterSignerInitRequestDataType = {
341
341
  address: string;
342
342
  hdWalletIndex: number | null;
343
343
  accessToken: string;
344
- mfaCode: string | PasskeyAuthenticateInputType['authenticator_response'] | null;
344
+ mfaCode: string | PasskeyAuthenticateRequestBody['authenticator_response'] | null;
345
345
  mfaMethod: string | null;
346
346
  relyingParty: string;
347
347
  };
@@ -350,7 +350,7 @@ type FarcasterSignRequestDataType = {
350
350
  address: string;
351
351
  hdWalletIndex: number | null;
352
352
  accessToken: string;
353
- mfaCode: string | PasskeyAuthenticateInputType['authenticator_response'] | null;
353
+ mfaCode: string | PasskeyAuthenticateRequestBody['authenticator_response'] | null;
354
354
  mfaMethod: string | null;
355
355
  relyingParty: string;
356
356
  payload: {
@@ -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;
728
727
  address?: Address | undefined;
729
728
  nonce?: string | undefined;
730
729
  domain?: string | undefined;
731
730
  scheme?: string | undefined;
731
+ time?: Date | undefined;
732
732
  message: string;
733
733
  signature: viem.Hex;
734
734
  }) => Promise<boolean>;
@@ -2224,6 +2224,7 @@ declare function errorIndicatesMaxMfaRetries(error: unknown): error is PrivyIfra
2224
2224
 
2225
2225
  declare const VERSION = "__VERSION__";
2226
2226
 
2227
+ type CustomMetadataType = User$1['custom_metadata'];
2227
2228
  interface ResponseEmailAccount {
2228
2229
  type: 'email';
2229
2230
  address: string;
@@ -2384,7 +2385,7 @@ interface ResponseOAuthApple {
2384
2385
  latest_verified_at: number | null;
2385
2386
  }
2386
2387
  interface ResponseOAuthCustom {
2387
- type: CustomOAuthProvider;
2388
+ type: CustomOAuthProviderID;
2388
2389
  subject: string;
2389
2390
  name: string | null;
2390
2391
  username: string | null;
@@ -2656,7 +2657,7 @@ declare class PrivyClient {
2656
2657
  unlinkPhone(phoneNumber: string): Promise<User>;
2657
2658
  unlinkEthereumWallet(address: string): Promise<User>;
2658
2659
  unlinkSolanaWallet(address: string): Promise<User>;
2659
- unlinkOAuth(provider: OAuthProviderType | `privy:${string}`, subject: string): Promise<User>;
2660
+ unlinkOAuth(provider: OAuthProviderID | `privy:${string}`, subject: string): Promise<User>;
2660
2661
  unlinkFarcaster(fid: number): Promise<User>;
2661
2662
  unlinkTelegram(telegramUserId: string): Promise<User>;
2662
2663
  revokeDelegatedWallet(): Promise<void>;
@@ -2671,10 +2672,10 @@ declare class PrivyClient {
2671
2672
  };
2672
2673
  }): Promise<void>;
2673
2674
  signMoonpayOnRampUrl(signRequestData: MoonpaySignRequest): Promise<MoonpaySignResponse>;
2674
- initCoinbaseOnRamp(input: PrivyCoinbaseOnRampInitInput): Promise<PrivyCoinbaseOnRampInitResponse>;
2675
+ initCoinbaseOnRamp(input: CoinbaseOnRampInitInput): Promise<CoinbaseOnRampInitResponse>;
2675
2676
  getCoinbaseOnRampStatus({ partnerUserId, }: {
2676
2677
  partnerUserId: string;
2677
- }): Promise<PrivyCoinbaseOnRampStatusResponse>;
2678
+ }): Promise<CoinbaseOnRampStatusResponse>;
2678
2679
  /** DATA METHODS */
2679
2680
  /**
2680
2681
  * Fetches the currently authenticated user from the API or
@@ -2804,7 +2805,7 @@ declare class PrivyClient {
2804
2805
  messageType: SiwsMessageType;
2805
2806
  }): Promise<User>;
2806
2807
  updateUserAndIdToken(): Promise<User>;
2807
- scanTransaction(request: PrivyTransactionScanningInputType): Promise<PrivyTransactionScanningResponseType>;
2808
+ scanTransaction(request: TransactionScanningRequestBody): Promise<TransactionScanningResponseBody>;
2808
2809
  }
2809
2810
 
2810
2811
  /**
@@ -2908,7 +2909,7 @@ type UseLoginWithOAuth = {
2908
2909
  * <Button onPress={() => initOAuth({ provider: 'google' })} /> *
2909
2910
  */
2910
2911
  initOAuth: ({ provider, disableSignup, }: {
2911
- provider: OAuthProviderType;
2912
+ provider: OAuthProviderID;
2912
2913
  disableSignup?: boolean;
2913
2914
  }) => Promise<void>;
2914
2915
  /**
@@ -3895,7 +3896,7 @@ type UseOAuthTokens = {
3895
3896
  * This will directly initiate the OAuth flow for an already linked OAuth account.
3896
3897
  */
3897
3898
  reauthorize: ({ provider }: {
3898
- provider: OAuthProviderType;
3899
+ provider: OAuthProviderID;
3899
3900
  }) => Promise<void>;
3900
3901
  };
3901
3902
  /**