@privy-io/react-auth 3.2.1 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/SignRequestScreen-CvBcoZRA.js +27 -0
- package/dist/cjs/abstract-smart-wallets.js +1 -1
- package/dist/cjs/extended-chains.js +1 -1
- package/dist/cjs/getEmbeddedConnectedWallet-6TsVZJkD.js +1 -0
- package/dist/cjs/index.js +5 -5
- package/dist/cjs/privy-context-NMR-GjnL.js +1 -0
- package/dist/cjs/{smart-wallets-7Aqc5Nzs.js → smart-wallets-Cgmp6lBz.js} +1 -1
- package/dist/cjs/smart-wallets.js +1 -1
- package/dist/cjs/solana.js +1 -1
- package/dist/cjs/ui.js +2 -2
- package/dist/cjs/{use-export-wallet-sK7TOD-_.js → use-export-wallet-Crjmwv6E.js} +1 -1
- package/dist/cjs/{useActiveWallet-BtCoqsEN.js → useActiveWallet-DAK4USsc.js} +1 -1
- package/dist/cjs/{usePrivy-B_0-uaxv.js → usePrivy-BQiDRA6a.js} +1 -1
- package/dist/dts/extended-chains.d.mts +1 -1
- package/dist/dts/extended-chains.d.ts +1 -1
- package/dist/dts/farcaster.d.mts +1 -1
- package/dist/dts/farcaster.d.ts +1 -1
- package/dist/dts/index.d.mts +25 -3
- package/dist/dts/index.d.ts +25 -3
- package/dist/dts/smart-wallets.d.mts +1 -1
- package/dist/dts/smart-wallets.d.ts +1 -1
- package/dist/dts/solana.d.mts +2 -2
- package/dist/dts/solana.d.ts +2 -2
- package/dist/dts/{types-DbYYrJGX.d.mts → types-C97UOzaM.d.mts} +18 -3
- package/dist/dts/{types-DbYYrJGX.d.ts → types-C97UOzaM.d.ts} +18 -3
- package/dist/dts/ui.d.mts +1 -1
- package/dist/dts/ui.d.ts +1 -1
- package/dist/esm/{SignRequestScreen-BFYRKL3N.mjs → SignRequestScreen-Dnn_x6kV.mjs} +21 -21
- package/dist/esm/abstract-smart-wallets.mjs +1 -1
- package/dist/esm/extended-chains.mjs +1 -1
- package/dist/esm/getEmbeddedConnectedWallet-CM6cDQCS.mjs +1 -0
- package/dist/esm/index.mjs +6 -6
- package/dist/esm/privy-context-C7K3ZBW-.mjs +1 -0
- package/dist/esm/smart-wallets-D86YXRN5.mjs +1 -0
- package/dist/esm/smart-wallets.mjs +1 -1
- package/dist/esm/solana.mjs +1 -1
- package/dist/esm/ui.mjs +2 -2
- package/dist/esm/use-export-wallet-DVZxxj2x.mjs +1 -0
- package/dist/esm/{useActiveWallet-LdKZteNM.mjs → useActiveWallet-YrSgEFNG.mjs} +1 -1
- package/dist/esm/{usePrivy-DPEbjcra.mjs → usePrivy-CYAVrCyA.mjs} +1 -1
- package/package.json +4 -4
- package/dist/cjs/SignRequestScreen-BbqNYmhD.js +0 -27
- package/dist/cjs/getEmbeddedConnectedWallet-DTU4T9TJ.js +0 -1
- package/dist/cjs/privy-context-CJzQZH6s.js +0 -1
- package/dist/esm/getEmbeddedConnectedWallet-CSSBWE2p.mjs +0 -1
- package/dist/esm/privy-context-CTKe79J4.mjs +0 -1
- package/dist/esm/smart-wallets-kAXh6Vvw.mjs +0 -1
- package/dist/esm/use-export-wallet-BxcU5zVQ.mjs +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("./SignRequestScreen-BbqNYmhD.js"),t=require("react/jsx-runtime"),n=require("@heroicons/react/24/outline/CheckCircleIcon"),a=require("react"),r=require("@privy-io/js-sdk-core"),i=require("./paths-B00ZrFQm.js"),s=require("./internal-context-DNWjSiYq.js"),o=require("./privy-context-CJzQZH6s.js"),l=require("./usePrivy-B_0-uaxv.js"),c=require("eventemitter3"),d=require("@scure/base"),u=require("styled-components"),p=require("@solana/kit"),m=require("./use-sign-with-user-signer-Q0_LRVtz.js"),g=require("@solana-program/system"),f=require("@solana-program/token");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var y=/*#__PURE__*/h(n),w=/*#__PURE__*/h(c);function v({rows:n}){/*#__PURE__*/return t.jsx(e.Rows,{children:n.filter((e=>!!e)).map(((n,a)=>null!=n.value||n.isLoading?/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:n.label}),/*#__PURE__*/t.jsx(e.Value,{$isLoading:n.isLoading,children:n.value})]},a):null))})}const A=["solana:mainnet","solana:devnet","solana:testnet"];function S(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var T=0,I="__private_"+T+++"__implementation";class b extends w.default{setImplementation(e){S(this,I)[I]=e}async signMessage(e){return S(this,I)[I].signMessage(e)}async signAndSendTransaction(e){return S(this,I)[I].signAndSendTransaction(e)}async signTransaction(e){return S(this,I)[I].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,I,{writable:!0,value:void 0}),S(this,I)[I]=e}}function C(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var E=0;function P(e){return"__private_"+E+++"_"+e}var x=/*#__PURE__*/P("_address"),O=/*#__PURE__*/P("_publicKey"),k=/*#__PURE__*/P("_chains"),F=/*#__PURE__*/P("_features"),_=/*#__PURE__*/P("_label"),M=/*#__PURE__*/P("_icon");class j{get address(){return C(this,x)[x]}get publicKey(){return C(this,O)[O].slice()}get chains(){return C(this,k)[k].slice()}get features(){return C(this,F)[F].slice()}get label(){return C(this,_)[_]}get icon(){return C(this,M)[M]}constructor({address:e,publicKey:t,label:n,icon:a}){Object.defineProperty(this,x,{writable:!0,value:void 0}),Object.defineProperty(this,O,{writable:!0,value:void 0}),Object.defineProperty(this,k,{writable:!0,value:void 0}),Object.defineProperty(this,F,{writable:!0,value:void 0}),Object.defineProperty(this,_,{writable:!0,value:void 0}),Object.defineProperty(this,M,{writable:!0,value:void 0}),C(this,x)[x]=e,C(this,O)[O]=t,C(this,k)[k]=A,C(this,_)[_]=n,C(this,M)[M]=a,C(this,F)[F]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===j&&Object.freeze(this)}}function W(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var U=0;function D(e){return"__private_"+U+++"_"+e}var L=/*#__PURE__*/D("_listeners"),R=/*#__PURE__*/D("_version"),B=/*#__PURE__*/D("_name"),N=/*#__PURE__*/D("_icon"),$=/*#__PURE__*/D("_injection"),V=/*#__PURE__*/D("_isPrivyWallet"),q=/*#__PURE__*/D("_accounts"),G=/*#__PURE__*/D("_on"),J=/*#__PURE__*/D("_emit"),K=/*#__PURE__*/D("_off"),Y=/*#__PURE__*/D("_connected"),H=/*#__PURE__*/D("_connect"),Q=/*#__PURE__*/D("_disconnect"),Z=/*#__PURE__*/D("_signMessage"),z=/*#__PURE__*/D("_signAndSendTransaction"),X=/*#__PURE__*/D("_signTransaction");function ee(e,...t){W(this,L)[L][e]?.forEach((e=>e.apply(null,t)))}function te(e,t){W(this,L)[L][e]=W(this,L)[L][e]?.filter((e=>t!==e))}const ne=/*#__PURE__*/u.styled.span.withConfig({displayName:"CircleBackground",componentId:"sc-c9f33cd-0"})(["&&{width:82px;height:82px;border-width:4px;border-style:solid;border-color:",";background-color:",";border-radius:50%;display:inline-block;box-sizing:border-box;}"],(e=>e.color??"var(--privy-color-accent)"),(e=>e.color??"var(--privy-color-accent)")),ae=({instruction:n,fees:a,transactionInfo:r,solPrice:i,chain:s})=>/*#__PURE__*/t.jsxs(e.Rows,{children:[r?.action&&/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:"Action"}),/*#__PURE__*/t.jsx(e.Value,{children:r.action})]}),null!=n?.total&&/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:"Total"}),/*#__PURE__*/t.jsx(e.Value,{children:n.total})]}),!n?.total&&null!=n?.amount&&/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:"Total"}),/*#__PURE__*/t.jsx(e.Value,{children:/*#__PURE__*/t.jsx(e.SolanaPriceDisplay,{quantities:[n.amount,a],tokenPrice:i})})]}),/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:"Fees"}),/*#__PURE__*/t.jsx(e.Value,{children:/*#__PURE__*/t.jsx(e.SolanaPriceDisplay,{quantities:[a],tokenPrice:i})})]}),n?.to&&/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:"To"}),/*#__PURE__*/t.jsx(e.Value,{children:/*#__PURE__*/t.jsx(e.WalletLink,{walletAddress:n.to,chainId:s,chainType:"solana"})})]})]}),re=({fees:n,onClose:a,receiptHeader:r,receiptDescription:i,transactionInfo:s,solPrice:o,signOnly:l,instruction:c,chain:d})=>/*#__PURE__*/t.jsxs(t.Fragment,{children:[/*#__PURE__*/t.jsx(e.ModalHeader,{onClose:a}),/*#__PURE__*/t.jsx(e.e$2,{style:{marginBottom:"16px"},children:/*#__PURE__*/t.jsxs("div",{children:[/*#__PURE__*/t.jsx(ne,{color:"var(--privy-color-success-light)"}),/*#__PURE__*/t.jsx(y.default,{height:38,width:38,strokeWidth:2,stroke:"var(--privy-color-success)"})]})}),/*#__PURE__*/t.jsx(e.CenteredScreenHeader,{title:r??`Transaction ${l?"signed":"complete"}!`,description:i??"You're all set."}),/*#__PURE__*/t.jsx(ae,{solPrice:o,instruction:c,fees:n,transactionInfo:s,chain:d}),/*#__PURE__*/t.jsx(e.Grow,{}),/*#__PURE__*/t.jsx(ie,{loading:!1,onClick:a,children:"Close"}),/*#__PURE__*/t.jsx(e.RefactorSpacerBottom,{}),/*#__PURE__*/t.jsx(e.BlobbyFooter,{})]});let ie=/*#__PURE__*/u.styled(e.PrimaryButton).withConfig({displayName:"SubmitButton",componentId:"sc-3cb7ee42-0"})(["&&{margin-top:24px;}transition:color 350ms ease,background-color 350ms ease;"]);function se(e){return new Uint8Array(p.getTransactionDecoder().decode(e).messageBytes)}async function oe(e,t){try{return await e}catch{return t}}const le=(...e)=>{if("undefined"==typeof Buffer)throw new i.PrivyClientError("Buffer is not defined.",void 0,i.PrivyErrorCode.BUFFER_NOT_DEFINED);return Buffer.from(...e)};function ce(e){switch(e){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet"}}async function de({privyClient:t,chain:n,mint:a}){let r=e.DEFAULT_TOKENS_DATA[n];if(!r[a]){let e=await t.getSplTokenMetadata({mintAddress:a,cluster:ce(n)});e&&(r[a]={address:a,symbol:e.symbol,decimals:e.decimals})}return r[a]}async function ue({solanaClient:e,tx:t}){let n=p.getBase64Decoder().decode(se(t)),{value:a}=await e.rpc.getFeeForMessage(n).send();return a??0n}async function pe({solanaClient:e,tx:t,replaceRecentBlockhash:n}){let{value:a}=await e.rpc.simulateTransaction(p.getBase64Decoder().decode(t),{commitment:"confirmed",encoding:"base64",sigVerify:!1,replaceRecentBlockhash:n}).send();if("BlockhashNotFound"===a.err&&n)throw Error("Simulation failed: Blockhash not found");return"BlockhashNotFound"===a.err?await pe({solanaClient:e,tx:t,replaceRecentBlockhash:!0}):{logs:a.logs??[],error:a.err,hasError:!!a.err,hasFunds:a.logs?.every((e=>!/insufficient funds/gi.test(e)&&!/insufficient lamports/gi.test(e)))??!0}}async function me({tx:t,solanaClient:n,privyClient:a,checkFunds:r}){let i=p.getCompiledTransactionMessageDecoder().decode(se(t)),s=i.staticAccounts[0]??"",o=await ue({solanaClient:n,tx:t}),l=r?await oe(pe({solanaClient:n,tx:t})):void 0,c=l?.hasFunds??!0,d={},u=[],m=await async function({solanaClient:e,message:t}){if(!("addressTableLookups"in t)||!t.addressTableLookups)return[...t.staticAccounts];let n=t.addressTableLookups.map((e=>e.lookupTableAddress)),a=await p.fetchAddressesForLookupTables(n,e.rpc),r=n.map(((e,n)=>[...t.addressTableLookups[n]?.writableIndexes.map((t=>{let r=a[e]?.[t];if(r)return{key:r,isWritable:!0,altIdx:n}}))??[],...t.addressTableLookups[n]?.readonlyIndexes.map((t=>{let r=a[e]?.[t];if(r)return{key:r,isWritable:!1,altIdx:n}}))??[]])).flat().filter((e=>!!e)).sort(((e,t)=>e.isWritable!==t.isWritable?e.isWritable?-1:1:e.altIdx-t.altIdx)).map((({key:e})=>e));return[...t.staticAccounts,...r]}({solanaClient:n,message:i});for(let t of i.instructions){let r=i.staticAccounts[t.programAddressIndex]||"";if(r!==e.TOKEN_PROGRAM_ID&&r!==e.TOKEN_2022_PROGRAM_ID)if(r!==e.SYSTEM_PROGRAM_ID){if(r===e.ASSOCIATED_TOKEN_PROGRAM_ID){let e=await oe(function(e,t,n){let[a,r,i,s]=e.accountIndices?.map((e=>t[e]))??[];return{type:"ata-creation",program:n,payer:a,ata:r,owner:i,mint:s}}(t,m,r));if(!e){u.push({type:"unknown",program:r,discriminator:t.data?.[0]});continue}if(u.push(e),e.ata&&e.owner&&e.mint){d[e.ata]={owner:e.owner,mint:e.mint};continue}}if(e.RAYDIUM_SWAP_PROGRAM_IDS.includes(r)){let e=await oe(ye(t,m,n,a,r));if(!e){u.push({type:"unknown",program:r,discriminator:t.data?.[0]});continue}u.push(e)}else if(e.JUPITER_SWAP_PROGRAM_IDS.includes(r)){let e=await oe(we(t,m,n,a,r));if(!e){u.push({type:"unknown",program:r,discriminator:t.data?.[0]});continue}u.push(e)}else u.push({type:"unknown",program:r,discriminator:t.data?.[0]})}else{let e=await oe(he(t,m));if(!e){u.push({type:"unknown",program:r,discriminator:t.data?.[0]});continue}u.push(e)}else{let e=await oe(fe(t,m,n,a,d,r));if(!e){u.push({type:"unknown",program:r,discriminator:t.data?.[0]});continue}u.push(e),"spl-transfer"===e.type&&(e.fromAta&&e.fromAccount&&e.token.address&&(d[e.fromAta]??={owner:e.fromAccount,mint:e.token.address}),e.toAta&&e.toAccount&&e.token.address&&(d[e.toAta]??={owner:e.toAccount,mint:e.token.address}))}}return{spender:s,fee:o,instructions:u,hasFunds:!!c}}function ge(e,t=0){try{return function(e,t=0){let n=0n;for(let a=0;a<8;a++)n|=BigInt(e[t+a])<<BigInt(8*a);return n}(e,t)}catch{}try{return e.readBigInt64LE(t)}catch{}let n=le(e);try{return((e,t=0)=>{let n=e[t],a=e[t+7];if(!n||!a)throw Error(`Buffer offset out of range: first: ${n}, last: ${a}.`);return(BigInt(e[t+4]+256*e[t+5]+65536*e[t+6]+(a<<24))<<32n)+BigInt(n+256*e[++t]+65536*e[++t]+16777216*e[++t])})(n)}catch{}try{return n.subarray(t).readBigInt64LE()}catch{}try{return n.readBigInt64LE(t)}catch{}return 0n}async function fe(e,t,n,a,r,i){let s=e.data?.[0],o=e.accountIndices?.map((e=>t[e]))??[];if(1===s){let[e,t,n]=o;return{type:"spl-init-account",program:i,account:e,mint:t,owner:n}}if(3===s){let t,s,[l,c,d]=o,u="",p=c?r[c]:void 0;if(p)t=p.owner,u=p.mint;else if(c){let e=await n.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send(),a=e.value?.data;t=a?.parsed?.info?.owner,u=a?.parsed?.info?.mint??"",s=a?.parsed?.info?.tokenAmount?.decimals}if(!u&&l){let e=await n.rpc.getAccountInfo(l,{commitment:"confirmed",encoding:"jsonParsed"}).send(),t=e.value?.data;u=t?.parsed?.info?.mint??""}let m=await de({privyClient:a,chain:n.chain,mint:u}),g=m?.symbol??"";return s??=m?.decimals??9,{type:"spl-transfer",program:i,fromAta:l,fromAccount:d,toAta:c,toAccount:t,value:ge(e.data,1),token:{symbol:g,decimals:s,address:u}}}if(9===s){let[e,t,n]=o;return{type:"spl-close-account",program:i,source:e,destination:t,owner:n}}if(17===s)return{type:"spl-sync-native",program:i};throw Error(`Token program instruction type ${s} not supported`)}async function he(t,n){let a=t.data?.[0],r=t.accountIndices?.map((e=>n[e]))??[];if(0===a){let[,n]=r;return{type:"create-account",program:e.SYSTEM_PROGRAM_ID,account:n?.toString(),value:ge(t.data,4),withSeed:!1}}if(2===a){let[n,a]=r;return{type:"sol-transfer",program:e.SYSTEM_PROGRAM_ID,fromAccount:n,toAccount:a,token:{symbol:"SOL",decimals:9},value:ge(t.data,4),withSeed:!1}}if(3===a){let[,n]=r;return{type:"create-account",program:e.SYSTEM_PROGRAM_ID,account:n,withSeed:!0,value:ge(t.data.slice(t.data.length-32-8-8))}}if(11===a){let[n,a]=r;return{type:"sol-transfer",program:e.SYSTEM_PROGRAM_ID,fromAccount:n,toAccount:a,value:ge(t.data,4),token:{symbol:"SOL",decimals:9},withSeed:!0}}throw Error(`System program instruction type ${a} not supported`)}async function ye(e,t,n,a,r){let i=e.accountIndices?.map((e=>t[e]))??[],s=e.data?.[0];if(143===s){let t=i[10],s=i[11];return{type:"raydium-swap-base-input",program:r,mintIn:t,mintOut:s,tokenIn:t?await de({privyClient:a,chain:n.chain,mint:t}):void 0,tokenOut:s?await de({privyClient:a,chain:n.chain,mint:s}):void 0,amountIn:ge(e.data,8),minimumAmountOut:ge(e.data,16)}}if(55===s){let t=i[10],s=i[11];return{type:"raydium-swap-base-output",program:r,mintIn:t,mintOut:s,tokenIn:t?await de({privyClient:a,chain:n.chain,mint:t}):void 0,tokenOut:s?await de({privyClient:a,chain:n.chain,mint:s}):void 0,maxAmountIn:ge(e.data,8),amountOut:ge(e.data,16)}}throw Error(`Raydium swap program instruction type ${s} not supported`)}async function we(e,t,n,a,r){let i=e.data?.[0],s=e.accountIndices?.map((e=>t[e]))??[];if([208,51,239,151,123,43,237,92].includes(i)){let t=s[5],i=s[6];return{type:"jupiter-swap-exact-out-route",program:r,mintIn:t,mintOut:i,tokenIn:t?await de({privyClient:a,chain:n.chain,mint:t}):void 0,tokenOut:i?await de({privyClient:a,chain:n.chain,mint:i}):void 0,outAmount:ge(e.data,e.data.length-1-2-8-8),quotedInAmount:ge(e.data,e.data.length-1-2-8)}}if([176,209,105,168,154,125,69,62].includes(i)){let t=s[7],i=s[8];return{type:"jupiter-swap-exact-out-route",program:r,mintIn:t,mintOut:i,tokenIn:t?await de({privyClient:a,chain:n.chain,mint:t}):void 0,tokenOut:i?await de({privyClient:a,chain:n.chain,mint:i}):void 0,outAmount:ge(e.data,e.data.length-1-2-8-8),quotedInAmount:ge(e.data,e.data.length-1-2-8)}}if([193,32,155,51,65,214,156,129].includes(i)){let t=s[7],i=s[8];return{type:"jupiter-swap-shared-accounts-route",program:r,mintIn:t,mintOut:i,tokenIn:t?await de({privyClient:a,chain:n.chain,mint:t}):void 0,tokenOut:i?await de({privyClient:a,chain:n.chain,mint:i}):void 0,inAmount:ge(e.data,e.data.length-1-2-8-8),quotedOutAmount:ge(e.data,e.data.length-1-2-8)}}throw[62,198,214,193,213,159,108,210].includes(i)&&console.warn("Jupiter swap program instruction 'claim' not implemented"),[116,206,27,191,166,19,0,73].includes(i)&&console.warn("Jupiter swap program instruction 'claim_token' not implemented"),[26,74,236,151,104,64,183,249].includes(i)&&console.warn("Jupiter swap program instruction 'close_token' not implemented"),[229,194,212,172,8,10,134,147].includes(i)&&console.warn("Jupiter swap program instruction 'create_open_orders' not implemented"),[28,226,32,148,188,136,113,171].includes(i)&&console.warn("Jupiter swap program instruction 'create_program_open_orders' not implemented"),[232,242,197,253,240,143,129,52].includes(i)&&console.warn("Jupiter swap program instruction 'create_token_ledger' not implemented"),[147,241,123,100,244,132,174,118].includes(i)&&console.warn("Jupiter swap program instruction 'create_token_account' not implemented"),[229,23,203,151,122,227,173,42].includes(i)&&console.warn("Jupiter swap program instruction 'route' not implemented"),[150,86,71,116,167,93,14,104].includes(i)&&console.warn("Jupiter swap program instruction 'route_with_token_ledger' not implemented"),[228,85,185,112,78,79,77,2].includes(i)&&console.warn("Jupiter swap program instruction 'set_token_ledger' not implemented"),[230,121,143,80,119,159,106,170].includes(i)&&console.warn("Jupiter swap program instruction 'shared_accounts_route_with_token_ledger' not implemented"),Error(`Jupiter swap program instruction type ${i} not supported`)}async function ve({rpcSubscriptions:e,signature:t,timeout:n}){let a=new AbortController,r=await e.signatureNotifications(t,{commitment:"confirmed"}).subscribe({abortSignal:a.signal}),i=await Promise.race([new Promise((e=>{setTimeout((()=>{a.abort(),e(Error("Transaction confirmation timed out"))}),n)})),new Promise((async e=>{for await(let t of r){if(a.abort(),t.value.err)return e(Error("Transaction confirmation failed"));e(void 0)}}))]);if(i instanceof Error)throw i}function Ae({rpc:e,rpcSubscriptions:t,chain:n,blockExplorerUrl:a}){let r=function({rpc:e,rpcSubscriptions:t}){return async n=>new Promise((async(a,r)=>{try{let r=await e.sendTransaction(le(n).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await ve({rpcSubscriptions:t,signature:r,timeout:1e4}),a({signature:new Uint8Array(p.getBase58Encoder().encode(r))})}catch(e){r(e)}}))}({rpc:e,rpcSubscriptions:t});return{rpc:e,rpcSubscriptions:t,chain:n,blockExplorerUrl:a,sendAndConfirmTransaction:r}}function Se(){let t=e.useAppConfig(),n=a.useMemo((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((e=>[e,t.solanaRpcs[e]?Ae({chain:e,rpc:t.solanaRpcs[e].rpc,rpcSubscriptions:t.solanaRpcs[e].rpcSubscriptions,blockExplorerUrl:t.solanaRpcs[e].blockExplorerUrl??`https://explorer.solana.com?cluster=${e.replace("solana:","")}`}):null])))),[t.solanaRpcs]);return a.useCallback((e=>{if(!n[e])throw Error(`No RPC configuration found for chain ${e}`);return n[e]}),[n])}const Te={component:()=>{let{data:n,onUserCloseViaDialogOrKeybindRef:i,setModalData:l,navigate:c}=e.usePrivyModal(),{client:d,closePrivyModal:u,walletProxy:m,showFiatPrices:g}=s.usePrivyInternal(),f=e.useAppConfig(),{user:h}=o.usePrivyContext(),y=Se()(n?.standardSignAndSendTransaction?.chain??"solana:mainnet"),[w,v]=a.useState(n?.standardSignAndSendTransaction?.transaction),[A,S]=a.useState(),[T,I]=a.useState(),[b,C]=a.useState({value:0n,isLoading:!1}),[E,P]=a.useState(!1),[x,O]=a.useState({}),[k,F]=a.useState(),_=n?.standardSignAndSendTransaction?.account,M=!!n?.standardSignAndSendTransaction?.signOnly,j=_?.imported?o.getImportedPrivySolanaWallets(h).find((e=>e.address===_.address)):o.getPrivyPrimaryWallet(h),{solPrice:W,isSolPriceLoading:U}=e.useGetSolPrice({enabled:g}),D=a.useMemo((()=>{if(!A)return;let t=A.spender,n=e.getNativeCurrencyFromLamports(A.fee),a=e.getNativeCurrencyFromLamports(b.value,3,!0),i=A.instructions.filter((e=>["sol-transfer","spl-transfer","raydium-swap-base-input","raydium-swap-base-output","jupiter-swap-shared-accounts-route","jupiter-swap-exact-out-route"].includes(e.type))),s=i.at(0);if(!s||i.length>1)return{fee:n,spender:t,balance:a};if("sol-transfer"===s.type)return{fee:n,spender:t,balance:a,total:e.getNativeCurrencyFromLamports(s.value)};if("spl-transfer"===s.type)return{fee:n,spender:t,balance:a,total:`${r.formatTokenAmount({amount:s.value,decimals:s.token.decimals})} ${s.token.symbol}`};if("raydium-swap-base-input"===s.type&&s.tokenIn&&s.tokenOut){return{fee:n,spender:t,balance:a,swap:`${`${r.formatTokenAmount({amount:s.amountIn,decimals:s.tokenIn.decimals})} ${s.tokenIn.symbol}`} → ${`${r.formatTokenAmount({amount:s.minimumAmountOut,decimals:s.tokenOut.decimals})} ${s.tokenOut.symbol}`}`}}if("raydium-swap-base-output"===s.type&&s.tokenIn&&s.tokenOut){return{fee:n,spender:t,balance:a,swap:`${`${r.formatTokenAmount({amount:s.maxAmountIn,decimals:s.tokenIn.decimals})} ${s.tokenIn.symbol}`} → ${`${r.formatTokenAmount({amount:s.amountOut,decimals:s.tokenOut.decimals})} ${s.tokenOut.symbol}`}`}}if("jupiter-swap-shared-accounts-route"===s.type&&s.tokenIn&&s.tokenOut){return{fee:n,spender:t,balance:a,swap:`${`${r.formatTokenAmount({amount:s.inAmount,decimals:s.tokenIn.decimals})} ${s.tokenIn.symbol}`} → ${`${r.formatTokenAmount({amount:s.quotedOutAmount,decimals:s.tokenOut.decimals})} ${s.tokenOut.symbol}`}`}}if("jupiter-swap-exact-out-route"===s.type&&s.tokenIn&&s.tokenOut){return{fee:n,spender:t,balance:a,swap:`${`${r.formatTokenAmount({amount:s.quotedInAmount,decimals:s.tokenIn.decimals})} ${s.tokenIn.symbol}`} → ${`${r.formatTokenAmount({amount:s.outAmount,decimals:s.tokenOut.decimals})} ${s.tokenOut.symbol}`}`}}return{fee:n,spender:t,balance:a}}),[A,_?.address,b]),L=a.useMemo((()=>{let t;if(!A||!g||!W||U)return;function n(...t){return e.getFormattedUsdFromLamports(t.reduce(((e,t)=>e+t),0n),W??0)}_?.address===A.spender&&(t=n(A.fee));let a=n(b.value),i=A.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)).at(0);return!i||A.instructions.length>1?{fee:t,balance:a}:"sol-transfer"===i.type?{fee:t,balance:a,total:n(i.value,_?.address===A.spender?A.fee:0n)}:"spl-transfer"===i.type?{fee:t,balance:a,total:`${r.formatTokenAmount({amount:i.value,decimals:i.token.decimals})} ${i.token.symbol}`}:{fee:t,balance:a}}),[A,g,W,U,_?.address,b]);if(a.useEffect((()=>{!async function(){if(w&&d)try{I(void 0);let e=await me({tx:w,solanaClient:y,privyClient:d,checkFunds:!M});S(e)}catch(e){console.error("Failed to prepare transaction",e),I(e)}}()}),[w,y,d,M]),a.useEffect((()=>{(async function(){if(!_)return;C({value:b.value,isLoading:!0});let{value:e}=await y.rpc.getBalance(_.address,{commitment:"confirmed"}).send();C({value:e??0n,isLoading:!1})})().catch(console.error)}),[A]),!w||!n?.standardSignAndSendTransaction||!_){let a=Error("Invalid transaction request");/*#__PURE__*/return t.jsx(e.ErrorScreenView,{error:a,allowlistConfig:f.allowlistConfig,onRetry:()=>{n?.standardSignAndSendTransaction?.onFailure(a),u({shouldCallAuthOnSuccess:!1})}})}let R=()=>{if(!E)return x.signature||x.signedTransaction?n?.standardSignAndSendTransaction?.onSuccess({signature:x.signature,signedTransaction:x.signedTransaction}):n?.standardSignAndSendTransaction?.onFailure(k??T??Error("User exited the modal before submitting the transaction")),u({shouldCallAuthOnSuccess:!1})};i.current=R;let B=n.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.contractInfo?.imgUrl?/*#__PURE__*/t.jsx("img",{src:n.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgUrl,alt:n.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgAltText}):null,N=!!(n.funding&&n.funding.supportedOptions.length>0),$=!A?.hasFunds&&N;if(x.signature||x.signedTransaction){let e=A?.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)),a=1===e?.length?e?.at(0):void 0;/*#__PURE__*/return t.jsx(re,{fees:x.fees??0n,onClose:R,transactionInfo:n.standardSignAndSendTransaction?.uiOptions.transactionInfo,solPrice:W,receiptHeader:n.standardSignAndSendTransaction?.uiOptions.successHeader,receiptDescription:n.standardSignAndSendTransaction?.uiOptions.successDescription,chain:y.chain,signOnly:M,instruction:"sol-transfer"===a?.type?{to:a.toAccount,amount:a.value}:{to:a?.toAccount||a?.toAta,total:D?.total}})}return k?/*#__PURE__*/t.jsx(e.TransactionErrorView,{transactionError:k,chainId:y.chain,onClose:R,chainType:"solana",onRetry:async()=>{F(void 0);let{value:e}=await y.rpc.getLatestBlockhash().send();v(function(e,t){return p.pipe(p.getCompiledTransactionMessageDecoder().decode(se(e)),(e=>p.decompileTransactionMessage(e)),(e=>p.setTransactionMessageLifetimeUsingBlockhash(t,e)),(e=>p.compileTransaction(e)),(e=>new Uint8Array(p.getTransactionEncoder().encode(e))))}(w,e))}}):/*#__PURE__*/t.jsx(e.SendSolanaTransactionScreenView,{img:B,title:n.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.title||"Confirm transaction",subtitle:n.standardSignAndSendTransaction?.uiOptions?.description||`${f.name} wants your permission to approve the following transaction.`,cta:$?"Add funds":n.standardSignAndSendTransaction?.uiOptions?.buttonText||"Approve",instructions:A?.instructions??[],network:"solana:mainnet"==y.chain?"Solana":y.chain.replace("solana:",""),blockExplorerUrl:y.blockExplorerUrl,total:g?L?.total:D?.total,fee:g?L?.fee:D?.fee,balance:g?L?.balance:D?.balance,swap:D?.swap,transactingWalletAddress:_.address,disabled:!A?.hasFunds&&!N,isSubmitting:E,isPreparing:!A||b.isLoading,isTokenPriceLoading:g&&U,isMissingFunds:!A?.hasFunds,submitError:k??void 0,parseError:T,onClick:$?async()=>{if(_){if(!N)throw Error("Funding wallet is not enabled");l({...n,funding:{...n.funding,methodScreen:e.FundingMethodSelectionScreen},solanaFundingData:n?.solanaFundingData}),c(e.FundingMethodSelectionScreen)}}:async()=>{try{if(P(!0),E||!_||!m||!h||!j)return;let e=await n.standardSignAndSendTransaction.onConfirm(w);if("signature"in e){let t=await async function({solanaClient:e,signature:t}){let n=p.getBase58Decoder().decode(t),a=await e.rpc.getTransaction(n,{maxSupportedTransactionVersion:0,commitment:"confirmed",encoding:"base64"}).send().catch((()=>null));return a?{fee:a.meta?.fee??0n}:null}({solanaClient:y,signature:e.signature});return void O({...e,fees:t?.fee})}O(e)}catch(e){console.warn({transaction:w,error:e}),F(e)}finally{P(!1)}},onClose:R})}};function Ie(e,t,n){let a=structuredClone(p.getTransactionDecoder().decode(e)),r=p.address(t);return r in a.signatures&&(a.signatures[r]=n),new Uint8Array(p.getTransactionEncoder().encode(a))}function be(){let{isHeadlessSigning:t,walletProxy:n,initializeWalletProxy:a,recoverEmbeddedWallet:c,openModal:d,privy:u,client:p}=s.usePrivyInternal(),{user:g}=l.usePrivy(),{setModalData:f}=e.usePrivyModal(),{signWithUserSigner:h}=m.useSignWithUserSigner();return{signMessage:({message:s,address:l,options:m})=>new Promise((async(y,w)=>{let v=o.getPrivyWalletWithAddress(g,l);if("privy"!==v?.walletClientType)return void w(new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:A,entropyIdVerifier:S}=e.getEntropyDetailsForUser(g,v),T=o.getIsUnifiedWallet(v),I=le(s).toString("base64");if(I.length<1)return void w(new i.PrivyClientError("Message must be a non-empty string",void 0,i.PrivyErrorCode.INVALID_MESSAGE));let b=async()=>{let e;if(!g)throw Error("User must be authenticated before signing with a Privy wallet");let t=await p.getAccessToken();if(!t)throw Error("User must be authenticated to use their embedded wallet.");let i=n??await a(15e3);if(!i)throw Error("Failed to initialize embedded wallet proxy.");if(!await c({address:v.address}))throw Error("Unable to connect to wallet");if(T){let t=await r.rpc(u,h,{chain_type:"solana",method:"signMessage",params:{message:I,encoding:"base64"},wallet_id:v.id});if(!t.data||!("signature"in t.data))throw Error("Failed to sign message");e=t.data.signature}else{let{response:n}=await i.rpc({accessToken:t,entropyId:A,entropyIdVerifier:S,chainType:"solana",hdWalletIndex:v.walletIndex??0,requesterAppId:m?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:I}}});e=n.data.signature}return e};if(t({showWalletUIs:m?.uiOptions?.showWalletUIs}))try{let e=await b(),t=new Uint8Array(le(e,"base64"));y({signature:t})}catch(e){w(e)}else f({signMessage:{method:"solana_signMessage",data:I,confirmAndSign:b,onSuccess:e=>{y({signature:new Uint8Array(le(e,"base64"))})},onFailure:e=>{w(e)},uiOptions:m?.uiOptions??{}},connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,entropyId:A,entropyIdVerifier:S,isUnifiedWallet:T,onCompleteNavigateTo:e.SignRequestScreen,onFailure:e=>{w(new i.PrivyClientError("Failed to connect to wallet",e,i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR))}}}),d(e.EmbeddedWalletConnectingScreen)}))}}function Ce(){let{isHeadlessSigning:t,openModal:n}=s.usePrivyInternal(),{setModalData:a}=e.usePrivyModal(),{signMessage:r}=be(),{user:c}=l.usePrivy();return{signTransaction:async({transaction:s,options:l,chain:d="solana:mainnet",address:u})=>{async function p(e){let{signature:t}=await r({message:se(e),address:u,options:{...l,uiOptions:{...l?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:Ie(e,u,t)}}return t({showWalletUIs:l?.uiOptions?.showWalletUIs})?p(s):new Promise((async(t,r)=>{let m=o.getPrivyWalletWithAddress(c,u);if("privy"!==m?.walletClientType)return void r(new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:g,entropyIdVerifier:f}=e.getEntropyDetailsForUser(c,m),h=o.getIsUnifiedWallet(m);function y(e){return t=>{t instanceof i.PrivyClientError?r(t):r(new i.PrivyClientError("Failed to connect to wallet",t,e))}}let w={account:m,transaction:s,chain:d,signOnly:!0,uiOptions:l?.uiOptions||{},onConfirm:p,onSuccess:t,onFailure:y(i.PrivyErrorCode.TRANSACTION_FAILURE)};a({connectWallet:{recoveryMethod:m.recoveryMethod,connectingWalletAddress:m.address,entropyId:g,entropyIdVerifier:f,isUnifiedWallet:h,onCompleteNavigateTo:Te,onFailure:y(i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:w}),n(e.EmbeddedWalletConnectingScreen)}))}}}let Ee=new b({signTransaction:s.notImplementedWithMessage("signTransaction was not injected"),signAndSendTransaction:s.notImplementedWithMessage("signAndSendTransaction was not injected"),signMessage:s.notImplementedWithMessage("signMessage was not injected")}),Pe=new class{get version(){return W(this,R)[R]}get name(){return W(this,B)[B]}get icon(){return W(this,N)[N]}get chains(){return A.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:W(this,H)[H]},"standard:disconnect":{version:"1.0.0",disconnect:W(this,Q)[Q]},"standard:events":{version:"1.0.0",on:W(this,G)[G]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:W(this,z)[z]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:W(this,X)[X]},"solana:signMessage":{version:"1.0.0",signMessage:W(this,Z)[Z]},"privy:":{privy:{signMessage:W(this,$)[$].signMessage,signTransaction:W(this,$)[$].signTransaction,signAndSendTransaction:W(this,$)[$].signAndSendTransaction}}}}get accounts(){return W(this,q)[q].slice()}get isPrivyWallet(){return W(this,V)[V]}constructor({name:e,icon:t,version:n,injection:a,wallets:r}){Object.defineProperty(this,J,{value:ee}),Object.defineProperty(this,K,{value:te}),Object.defineProperty(this,L,{writable:!0,value:void 0}),Object.defineProperty(this,R,{writable:!0,value:void 0}),Object.defineProperty(this,B,{writable:!0,value:void 0}),Object.defineProperty(this,N,{writable:!0,value:void 0}),Object.defineProperty(this,$,{writable:!0,value:void 0}),Object.defineProperty(this,V,{writable:!0,value:void 0}),Object.defineProperty(this,q,{writable:!0,value:void 0}),Object.defineProperty(this,G,{writable:!0,value:void 0}),Object.defineProperty(this,Y,{writable:!0,value:void 0}),Object.defineProperty(this,H,{writable:!0,value:void 0}),Object.defineProperty(this,Q,{writable:!0,value:void 0}),Object.defineProperty(this,Z,{writable:!0,value:void 0}),Object.defineProperty(this,z,{writable:!0,value:void 0}),Object.defineProperty(this,X,{writable:!0,value:void 0}),W(this,L)[L]={},W(this,G)[G]=(e,t)=>(W(this,L)[L][e]?.push(t)||(W(this,L)[L][e]=[t]),()=>W(this,K)[K](e,t)),W(this,Y)[Y]=e=>{null!=e&&(W(this,q)[q]=e.map((({address:e})=>new j({address:e,publicKey:d.base58.decode(e)})))),W(this,J)[J]("change",{accounts:this.accounts})},W(this,H)[H]=async()=>(W(this,J)[J]("change",{accounts:this.accounts}),{accounts:this.accounts}),W(this,Q)[Q]=async()=>{W(this,J)[J]("change",{accounts:this.accounts})},W(this,Z)[Z]=async(...e)=>{let t=[];for(let{account:n,...a}of e){let{signature:e}=await W(this,$)[$].signMessage({...a,address:n.address});t.push({signedMessage:a.message,signature:e})}return t},W(this,z)[z]=async(...e)=>{let t=[];for(let{transaction:n,account:a,options:r,chain:i}of e){let{signature:e}=await W(this,$)[$].signAndSendTransaction({transaction:n,address:a.address,chain:i||"solana:mainnet",options:r});t.push({signature:e})}return t},W(this,X)[X]=async(...e)=>{let t=[];for(let{transaction:n,account:a,options:r,chain:i}of e){let{signedTransaction:e}=await W(this,$)[$].signTransaction({transaction:n,address:a.address,chain:i||"solana:mainnet",options:r});t.push({signedTransaction:e})}return t},W(this,B)[B]=e,W(this,N)[N]=t,W(this,R)[R]=n,W(this,$)[$]=a,W(this,q)[q]=[],W(this,V)[V]=!0,a.on("accountChanged",W(this,Y)[Y],this),W(this,Y)[Y](r)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:Ee});function xe(){let{ready:t}=e.useWallets(),{user:n}=l.usePrivy(),{signMessage:r}=be(),{signTransaction:c}=Ce(),{signAndSendTransaction:d}=function(){let t=e.useAppConfig(),{isHeadlessSigning:n,openModal:a}=s.usePrivyInternal(),{setModalData:r}=e.usePrivyModal(),{signTransaction:c}=Ce(),d=Se(),{user:u}=l.usePrivy();return{signAndSendTransaction:async({transaction:s,address:p,chain:m="solana:mainnet",options:g})=>{async function f(e){let{signedTransaction:t}=await c({transaction:e,address:p,chain:m,options:{...g,uiOptions:{...g?.uiOptions,showWalletUIs:!1}}}),{signature:n}=await d(m).sendAndConfirmTransaction(t);return{signature:n}}return n({showWalletUIs:g?.uiOptions?.showWalletUIs})?f(s):new Promise((async(n,c)=>{let d,h,y=o.getPrivyWalletWithAddress(u,p);if("privy"!==y?.walletClientType)return void c(new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:w,entropyIdVerifier:v}=e.getEntropyDetailsForUser(u,y),A=o.getIsUnifiedWallet(y);function S(e){return t=>{t instanceof i.PrivyClientError?c(t):c(new i.PrivyClientError("Failed to connect to wallet",t,e))}}let T={account:y,transaction:s,chain:m,signOnly:!1,uiOptions:g?.uiOptions||{},onConfirm:f,onSuccess:n,onFailure:S(i.PrivyErrorCode.TRANSACTION_FAILURE)},I={recoveryMethod:y.recoveryMethod,connectingWalletAddress:y.address,entropyId:w,entropyIdVerifier:v,isUnifiedWallet:A,onCompleteNavigateTo:Te,onFailure:S(i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)};t.fundingConfig&&(d=l.prepareSolanaFundingModalData({address:p,appConfig:t,methodScreen:e.FundingMethodSelectionScreen,fundWalletConfig:{...g,asset:"native-currency",chain:m},externalSolanaFundingScreen:Ue}),h={amount:t.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:m,destinationAddress:p,afterSuccessScreen:Te,sourceWalletData:void 0}),r({connectWallet:I,standardSignAndSendTransaction:T,funding:d,solanaFundingData:h}),a(e.EmbeddedWalletConnectingScreen)}))}}}(),u=a.useMemo((()=>{let e=[...o.getPrivySolanaHDWallets(n).sort(((e,t)=>(e.walletIndex??0)-(t.walletIndex??0)))],t=o.getImportedPrivySolanaWallets(n);return t.length?[...e,...t]:e}),[n]),p=a.useMemo((()=>({signMessage:async({message:e,address:t,options:n})=>await r({message:e,address:t,options:n}),signTransaction:async({transaction:e,address:t,chain:n,options:a})=>await c({transaction:e,address:t,chain:n,options:a}),async signAndSendTransaction({transaction:e,address:t,chain:n,options:a}){let{signature:r}=await d({transaction:e,address:t,chain:n,options:a});return{signature:r}}})),[r,c,d]);return a.useEffect((()=>{Ee?.setImplementation(p)}),[p]),a.useEffect((()=>{var e;!t||(e=Pe.accounts).length===u.length&&e.every(((e,t)=>e.address===u[t]?.address))||Ee?.emit("accountChanged",u)}),[t,u]),{ready:t,wallet:Pe}}function Oe(){let{client:e}=s.usePrivyInternal(),{ready:t,wallet:n}=xe(),[r,i]=a.useState([]),[o,l]=a.useState([]);return a.useEffect((()=>{let e=[n,...r.filter((e=>"solana"===e.chainType&&!!e.wallet.features)).map((e=>e.wallet))];l(e);let t=e.map((t=>t.features["standard:events"]?.on("change",(()=>{l([...e])}))));return()=>{t.forEach((e=>e?.()))}}),[r]),a.useEffect((()=>{if(!t)return;i(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let n=()=>{i(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",n),()=>{e.connectors?.off("connectorInitialized",n)}}),[t,e.connectors]),{ready:t,wallets:o}}function ke(){let{ready:e,wallets:t}=Oe();return{ready:e,wallets:a.useMemo((()=>t.flatMap((e=>e.accounts.map((t=>new r.ConnectedStandardSolanaWallet({wallet:e,account:t})))))),[t])}}function Fe(e){return p.getBase58Decoder().decode(e)}function _e(e){return BigInt(Math.floor(1e9*parseFloat(e)))}function Me(e){return+je.format(parseFloat(e.toString())/1e9)}let je=Intl.NumberFormat(void 0,{maximumFractionDigits:8});async function We({tx:t,solanaClient:n,amount:a,asset:r,tokenPrice:i}){if(!t)return null;if("SOL"===r&&i){let r=_e(a),s=e.getFormattedUsdFromLamports(r,i),o=await ue({solanaClient:n,tx:t});return{amountInUsd:s,feeInUsd:i?e.getFormattedUsdFromLamports(o,i):void 0,totalInUsd:e.getFormattedUsdFromLamports(r+o,i)}}if("USDC"===r&&i){let r="$"+a,s=await ue({solanaClient:n,tx:t}),o=function(t,n){let a=parseFloat(t.toString())/e.LAMPORTS_PER_SOL*n;return a<.01?0:a}(s,i);return{amountInUsd:r,feeInUsd:e.getFormattedUsdFromLamports(s,i),totalInUsd:"$"+(parseFloat(a)+o).toFixed(2)}}if("SOL"===r){let e=_e(a),r=await ue({solanaClient:n,tx:t});return{amountInSol:a+" SOL",feeInSol:Me(r)+" SOL",totalInSol:Me(e+r)+" SOL"}}return{amountInUsdc:a+" USDC",feeInSol:Me(await ue({solanaClient:n,tx:t}))+" SOL"}}const Ue={component:function(){let n=e.useAppConfig(),{closePrivyModal:o,createAnalyticsEvent:l}=s.usePrivyInternal(),{data:c,setModalData:d,navigate:u}=e.usePrivyModal(),{wallets:m}=ke(),[h,w]=a.useState("preparing"),[A,S]=a.useState(),[T,I]=a.useState(),[b,C]=a.useState();if(!c?.solanaFundingData)throw Error("Funding config is missing");if(!c.solanaFundingData.sourceWalletData)throw Error("Funding config is missing source wallet data");let{amount:E,asset:P,chain:x,sourceWalletData:O,destinationAddress:k,afterSuccessScreen:F}=c.solanaFundingData,_=m.find((t=>t.address===O.address&&e.toSolanaWalletClientType(O.walletClientType)===e.toSolanaWalletClientType(t.standardWallet.name))),M=Se()(x),{tokenPrice:j,isTokenPriceLoading:W}=e.useGetTokenPrice("solana");return a.useEffect((()=>{if("preparing"!==h||W||!_)return;let t="SOL"===P?_e(E):function(e){return BigInt(Math.floor(1e6*parseFloat(e)))}(E);I({amount:("SOL"===P&&j?e.getFormattedUsdFromLamports(t,j):E)??E}),("SOL"===P?async function({solanaClient:e,source:t,destination:n,amountInLamports:a}){let{value:r}=await e.rpc.getLatestBlockhash().send(),i={address:t},s=p.pipe(p.createTransactionMessage({version:0}),(e=>p.setTransactionMessageFeePayerSigner(i,e)),(e=>p.setTransactionMessageLifetimeUsingBlockhash(r,e)),(e=>p.appendTransactionMessageInstruction(g.getTransferSolInstruction({amount:a,source:i,destination:n}),e)),(e=>p.compileTransaction(e)));return new Uint8Array(p.getTransactionEncoder().encode(s))}({solanaClient:M,source:_.address,destination:k,amountInLamports:t}):async function({solanaClient:t,source:n,destination:a,amountInBaseUnits:r}){let i=e.getUsdcMintAddress(t.chain),{value:s}=await t.rpc.getLatestBlockhash().send(),o={address:n},[l]=await f.findAssociatedTokenPda({mint:i,owner:n,tokenProgram:e.TOKEN_PROGRAM_ID}),[c]=await f.findAssociatedTokenPda({mint:i,owner:a,tokenProgram:e.TOKEN_PROGRAM_ID}),[d,u]=await Promise.all([t.rpc.getAccountInfo(l,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null)),t.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null))]);if(!d?.value)throw Error(`Source token account does not exist for address: ${n}`);let m=f.getCreateAssociatedTokenIdempotentInstruction({payer:o,ata:c,owner:a,mint:i}),g=p.pipe(p.createTransactionMessage({version:0}),(e=>p.setTransactionMessageFeePayerSigner(o,e)),(e=>p.setTransactionMessageLifetimeUsingBlockhash(s,e)),(e=>u?.value?e:p.appendTransactionMessageInstruction(m,e)),(e=>p.appendTransactionMessageInstruction(f.getTransferInstruction({source:l,destination:c,authority:o,amount:r}),e)),(e=>p.compileTransaction(e)));return new Uint8Array(p.getTransactionEncoder().encode(g))}({solanaClient:M,source:_.address,destination:k,amountInBaseUnits:t})).then(S).catch((e=>{w("error"),C(e)}))}),[h,E,P,x,_,k,W,j]),a.useEffect((()=>{"preparing"===h&&A&&We({tx:A,solanaClient:M,amount:E,asset:P,tokenPrice:j}).then((e=>{w("loaded"),I({amount:e?.amountInUsd??e?.amountInUsdc??e?.amountInSol??E,fee:e?.feeInUsd??e?.feeInSol,total:e?.totalInUsd??e?.totalInSol})})).catch((e=>{w("error"),C(e)}))}),[A,E,P,h,j]),a.useEffect((()=>{"error"===h&&b&&(d({errorModalData:{error:b,previousScreen:Ue},solanaFundingData:c.solanaFundingData}),u(e.ErrorScreen,!1))}),[h,u]),a.useEffect((()=>{if("success"!==h)return;let t=setTimeout(F?()=>u(F):o,e.DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS);return()=>clearTimeout(t)}),[h]),"success"===h?/*#__PURE__*/t.jsxs(t.Fragment,{children:[/*#__PURE__*/t.jsx(e.i,{}),/*#__PURE__*/t.jsx(e.RefactorSpacerTop,{}),/*#__PURE__*/t.jsxs(e.CenteredItemWithGap,{children:[/*#__PURE__*/t.jsx(y.default,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/t.jsx(e.CenteredScreenHeader,{title:"Success!",description:`You’ve successfully added ${E} ${P} to your ${n.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/t.jsx(e.RefactorSpacerBottom,{}),/*#__PURE__*/t.jsx(e.BlobbyFooter,{})]}):"preparing"===h||"loaded"===h||"sending"===h?/*#__PURE__*/t.jsxs(t.Fragment,{children:[/*#__PURE__*/t.jsx(e.i,{}),/*#__PURE__*/t.jsx(e.CenteredItem,{style:{marginTop:"16px"},children:/*#__PURE__*/t.jsx(e.InjectedWalletIcon,{icon:_?.standardWallet.icon,name:_?.standardWallet.name})}),/*#__PURE__*/t.jsx(e.CenteredScreenHeader,{style:{marginTop:"8px",marginBottom:"12px"},title:"sending"===h&&_?`Confirming with ${_.standardWallet.name}`:"Confirm transaction"}),/*#__PURE__*/t.jsx(v,{rows:[{label:"Source",value:r.formatWalletAddress(O.address)},{label:"Destination",value:r.formatWalletAddress(k)},{label:"Network",value:e.getChainName(x)},{label:"Amount",value:T?.amount,isLoading:"preparing"===h},{label:"Estimated fee",value:T?.fee,isLoading:"preparing"===h},{label:"Total",value:T?.total,isLoading:"preparing"===h}]}),/*#__PURE__*/t.jsx(e.PrimaryButton,{style:{marginTop:"1rem"},loading:"preparing"===h||"sending"===h,onClick:function(){"loaded"===h&&A&&_&&(w("sending"),async function({transaction:e,chain:t,sourceWallet:n,solanaClient:a}){let{hasFunds:s}=await pe({solanaClient:a,tx:e});if(!s)throw new i.PrivyClientError(`Wallet ${r.formatWalletAddress(n.address)} does not have enough funds.`,void 0,i.PrivyErrorCode.INSUFFICIENT_BALANCE);let o=Fe((await n.signAndSendTransaction({transaction:e,chain:t}).catch((e=>{throw new i.PrivyClientError("Transaction was rejected by the user",e,i.PrivyErrorCode.TRANSACTION_FAILURE)}))).signature);return await ve({rpcSubscriptions:a.rpcSubscriptions,signature:o,timeout:2e4}),o}({solanaClient:M,transaction:A,chain:x,sourceWallet:_}).then((t=>{w("success"),l({eventName:e.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:t,address:_.address,value:E,chainType:"solana",clusterName:x,token:P,destinationAddress:k,destinationValue:E,destinationChainType:"solana",destinationClusterName:x,destinationToken:P}})})).catch((e=>{w("error"),C(e)})))},children:"Confirm"}),/*#__PURE__*/t.jsx(e.BlobbyFooter,{})]}):
|
|
1
|
+
"use strict";var e=require("./SignRequestScreen-CvBcoZRA.js"),t=require("react/jsx-runtime"),n=require("@heroicons/react/24/outline/CheckCircleIcon"),a=require("react"),r=require("@privy-io/js-sdk-core"),i=require("./paths-B00ZrFQm.js"),s=require("./internal-context-DNWjSiYq.js"),o=require("./privy-context-NMR-GjnL.js"),l=require("./usePrivy-BQiDRA6a.js"),c=require("eventemitter3"),d=require("@scure/base"),u=require("styled-components"),p=require("@solana/kit"),m=require("./use-sign-with-user-signer-Q0_LRVtz.js"),g=require("@solana-program/system"),f=require("@solana-program/token");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var y=/*#__PURE__*/h(n),w=/*#__PURE__*/h(c);function v({rows:n}){/*#__PURE__*/return t.jsx(e.Rows,{children:n.filter((e=>!!e)).map(((n,a)=>null!=n.value||n.isLoading?/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:n.label}),/*#__PURE__*/t.jsx(e.Value,{$isLoading:n.isLoading,children:n.value})]},a):null))})}const A=["solana:mainnet","solana:devnet","solana:testnet"];function S(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var T=0,I="__private_"+T+++"__implementation";class b extends w.default{setImplementation(e){S(this,I)[I]=e}async signMessage(e){return S(this,I)[I].signMessage(e)}async signAndSendTransaction(e){return S(this,I)[I].signAndSendTransaction(e)}async signTransaction(e){return S(this,I)[I].signTransaction(e)}constructor(e){super(),Object.defineProperty(this,I,{writable:!0,value:void 0}),S(this,I)[I]=e}}function C(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var E=0;function P(e){return"__private_"+E+++"_"+e}var x=/*#__PURE__*/P("_address"),O=/*#__PURE__*/P("_publicKey"),k=/*#__PURE__*/P("_chains"),F=/*#__PURE__*/P("_features"),_=/*#__PURE__*/P("_label"),M=/*#__PURE__*/P("_icon");class j{get address(){return C(this,x)[x]}get publicKey(){return C(this,O)[O].slice()}get chains(){return C(this,k)[k].slice()}get features(){return C(this,F)[F].slice()}get label(){return C(this,_)[_]}get icon(){return C(this,M)[M]}constructor({address:e,publicKey:t,label:n,icon:a}){Object.defineProperty(this,x,{writable:!0,value:void 0}),Object.defineProperty(this,O,{writable:!0,value:void 0}),Object.defineProperty(this,k,{writable:!0,value:void 0}),Object.defineProperty(this,F,{writable:!0,value:void 0}),Object.defineProperty(this,_,{writable:!0,value:void 0}),Object.defineProperty(this,M,{writable:!0,value:void 0}),C(this,x)[x]=e,C(this,O)[O]=t,C(this,k)[k]=A,C(this,_)[_]=n,C(this,M)[M]=a,C(this,F)[F]=["solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"],new.target===j&&Object.freeze(this)}}function W(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}var U=0;function D(e){return"__private_"+U+++"_"+e}var L=/*#__PURE__*/D("_listeners"),R=/*#__PURE__*/D("_version"),B=/*#__PURE__*/D("_name"),N=/*#__PURE__*/D("_icon"),$=/*#__PURE__*/D("_injection"),V=/*#__PURE__*/D("_isPrivyWallet"),q=/*#__PURE__*/D("_accounts"),G=/*#__PURE__*/D("_on"),J=/*#__PURE__*/D("_emit"),K=/*#__PURE__*/D("_off"),Y=/*#__PURE__*/D("_connected"),H=/*#__PURE__*/D("_connect"),Q=/*#__PURE__*/D("_disconnect"),Z=/*#__PURE__*/D("_signMessage"),z=/*#__PURE__*/D("_signAndSendTransaction"),X=/*#__PURE__*/D("_signTransaction");function ee(e,...t){W(this,L)[L][e]?.forEach((e=>e.apply(null,t)))}function te(e,t){W(this,L)[L][e]=W(this,L)[L][e]?.filter((e=>t!==e))}const ne=/*#__PURE__*/u.styled.span.withConfig({displayName:"CircleBackground",componentId:"sc-c9f33cd-0"})(["&&{width:82px;height:82px;border-width:4px;border-style:solid;border-color:",";background-color:",";border-radius:50%;display:inline-block;box-sizing:border-box;}"],(e=>e.color??"var(--privy-color-accent)"),(e=>e.color??"var(--privy-color-accent)")),ae=({instruction:n,fees:a,transactionInfo:r,solPrice:i,chain:s})=>/*#__PURE__*/t.jsxs(e.Rows,{children:[r?.action&&/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:"Action"}),/*#__PURE__*/t.jsx(e.Value,{children:r.action})]}),null!=n?.total&&/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:"Total"}),/*#__PURE__*/t.jsx(e.Value,{children:n.total})]}),!n?.total&&null!=n?.amount&&/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:"Total"}),/*#__PURE__*/t.jsx(e.Value,{children:/*#__PURE__*/t.jsx(e.SolanaPriceDisplay,{quantities:[n.amount,a],tokenPrice:i})})]}),/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:"Fees"}),/*#__PURE__*/t.jsx(e.Value,{children:/*#__PURE__*/t.jsx(e.SolanaPriceDisplay,{quantities:[a],tokenPrice:i})})]}),n?.to&&/*#__PURE__*/t.jsxs(e.Row,{children:[/*#__PURE__*/t.jsx(e.LabelSm,{children:"To"}),/*#__PURE__*/t.jsx(e.Value,{children:/*#__PURE__*/t.jsx(e.WalletLink,{walletAddress:n.to,chainId:s,chainType:"solana"})})]})]}),re=({fees:n,onClose:a,receiptHeader:r,receiptDescription:i,transactionInfo:s,solPrice:o,signOnly:l,instruction:c,chain:d})=>/*#__PURE__*/t.jsxs(t.Fragment,{children:[/*#__PURE__*/t.jsx(e.ModalHeader,{onClose:a}),/*#__PURE__*/t.jsx(e.e$2,{style:{marginBottom:"16px"},children:/*#__PURE__*/t.jsxs("div",{children:[/*#__PURE__*/t.jsx(ne,{color:"var(--privy-color-success-light)"}),/*#__PURE__*/t.jsx(y.default,{height:38,width:38,strokeWidth:2,stroke:"var(--privy-color-success)"})]})}),/*#__PURE__*/t.jsx(e.CenteredScreenHeader,{title:r??`Transaction ${l?"signed":"complete"}!`,description:i??"You're all set."}),/*#__PURE__*/t.jsx(ae,{solPrice:o,instruction:c,fees:n,transactionInfo:s,chain:d}),/*#__PURE__*/t.jsx(e.Grow,{}),/*#__PURE__*/t.jsx(ie,{loading:!1,onClick:a,children:"Close"}),/*#__PURE__*/t.jsx(e.RefactorSpacerBottom,{}),/*#__PURE__*/t.jsx(e.BlobbyFooter,{})]});let ie=/*#__PURE__*/u.styled(e.PrimaryButton).withConfig({displayName:"SubmitButton",componentId:"sc-3cb7ee42-0"})(["&&{margin-top:24px;}transition:color 350ms ease,background-color 350ms ease;"]);function se(e){return new Uint8Array(p.getTransactionDecoder().decode(e).messageBytes)}async function oe(e,t){try{return await e}catch{return t}}const le=(...e)=>{if("undefined"==typeof Buffer)throw new i.PrivyClientError("Buffer is not defined.",void 0,i.PrivyErrorCode.BUFFER_NOT_DEFINED);return Buffer.from(...e)};function ce(e){switch(e){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet"}}async function de({privyClient:t,chain:n,mint:a}){let r=e.DEFAULT_TOKENS_DATA[n];if(!r[a]){let e=await t.getSplTokenMetadata({mintAddress:a,cluster:ce(n)});e&&(r[a]={address:a,symbol:e.symbol,decimals:e.decimals})}return r[a]}async function ue({solanaClient:e,tx:t}){let n=p.getBase64Decoder().decode(se(t)),{value:a}=await e.rpc.getFeeForMessage(n).send();return a??0n}async function pe({solanaClient:e,tx:t,replaceRecentBlockhash:n}){let{value:a}=await e.rpc.simulateTransaction(p.getBase64Decoder().decode(t),{commitment:"confirmed",encoding:"base64",sigVerify:!1,replaceRecentBlockhash:n}).send();if("BlockhashNotFound"===a.err&&n)throw Error("Simulation failed: Blockhash not found");return"BlockhashNotFound"===a.err?await pe({solanaClient:e,tx:t,replaceRecentBlockhash:!0}):{logs:a.logs??[],error:a.err,hasError:!!a.err,hasFunds:a.logs?.every((e=>!/insufficient funds/gi.test(e)&&!/insufficient lamports/gi.test(e)))??!0}}async function me({tx:t,solanaClient:n,privyClient:a,checkFunds:r}){let i=p.getCompiledTransactionMessageDecoder().decode(se(t)),s=i.staticAccounts[0]??"",o=await ue({solanaClient:n,tx:t}),l=r?await oe(pe({solanaClient:n,tx:t})):void 0,c=l?.hasFunds??!0,d={},u=[],m=await async function({solanaClient:e,message:t}){if(!("addressTableLookups"in t)||!t.addressTableLookups)return[...t.staticAccounts];let n=t.addressTableLookups.map((e=>e.lookupTableAddress)),a=await p.fetchAddressesForLookupTables(n,e.rpc),r=n.map(((e,n)=>[...t.addressTableLookups[n]?.writableIndexes.map((t=>{let r=a[e]?.[t];if(r)return{key:r,isWritable:!0,altIdx:n}}))??[],...t.addressTableLookups[n]?.readonlyIndexes.map((t=>{let r=a[e]?.[t];if(r)return{key:r,isWritable:!1,altIdx:n}}))??[]])).flat().filter((e=>!!e)).sort(((e,t)=>e.isWritable!==t.isWritable?e.isWritable?-1:1:e.altIdx-t.altIdx)).map((({key:e})=>e));return[...t.staticAccounts,...r]}({solanaClient:n,message:i});for(let t of i.instructions){let r=i.staticAccounts[t.programAddressIndex]||"";if(r!==e.TOKEN_PROGRAM_ID&&r!==e.TOKEN_2022_PROGRAM_ID)if(r!==e.SYSTEM_PROGRAM_ID){if(r===e.ASSOCIATED_TOKEN_PROGRAM_ID){let e=await oe(function(e,t,n){let[a,r,i,s]=e.accountIndices?.map((e=>t[e]))??[];return{type:"ata-creation",program:n,payer:a,ata:r,owner:i,mint:s}}(t,m,r));if(!e){u.push({type:"unknown",program:r,discriminator:t.data?.[0]});continue}if(u.push(e),e.ata&&e.owner&&e.mint){d[e.ata]={owner:e.owner,mint:e.mint};continue}}if(e.RAYDIUM_SWAP_PROGRAM_IDS.includes(r)){let e=await oe(ye(t,m,n,a,r));if(!e){u.push({type:"unknown",program:r,discriminator:t.data?.[0]});continue}u.push(e)}else if(e.JUPITER_SWAP_PROGRAM_IDS.includes(r)){let e=await oe(we(t,m,n,a,r));if(!e){u.push({type:"unknown",program:r,discriminator:t.data?.[0]});continue}u.push(e)}else u.push({type:"unknown",program:r,discriminator:t.data?.[0]})}else{let e=await oe(he(t,m));if(!e){u.push({type:"unknown",program:r,discriminator:t.data?.[0]});continue}u.push(e)}else{let e=await oe(fe(t,m,n,a,d,r));if(!e){u.push({type:"unknown",program:r,discriminator:t.data?.[0]});continue}u.push(e),"spl-transfer"===e.type&&(e.fromAta&&e.fromAccount&&e.token.address&&(d[e.fromAta]??={owner:e.fromAccount,mint:e.token.address}),e.toAta&&e.toAccount&&e.token.address&&(d[e.toAta]??={owner:e.toAccount,mint:e.token.address}))}}return{spender:s,fee:o,instructions:u,hasFunds:!!c}}function ge(e,t=0){try{return function(e,t=0){let n=0n;for(let a=0;a<8;a++)n|=BigInt(e[t+a])<<BigInt(8*a);return n}(e,t)}catch{}try{return e.readBigInt64LE(t)}catch{}let n=le(e);try{return((e,t=0)=>{let n=e[t],a=e[t+7];if(!n||!a)throw Error(`Buffer offset out of range: first: ${n}, last: ${a}.`);return(BigInt(e[t+4]+256*e[t+5]+65536*e[t+6]+(a<<24))<<32n)+BigInt(n+256*e[++t]+65536*e[++t]+16777216*e[++t])})(n)}catch{}try{return n.subarray(t).readBigInt64LE()}catch{}try{return n.readBigInt64LE(t)}catch{}return 0n}async function fe(e,t,n,a,r,i){let s=e.data?.[0],o=e.accountIndices?.map((e=>t[e]))??[];if(1===s){let[e,t,n]=o;return{type:"spl-init-account",program:i,account:e,mint:t,owner:n}}if(3===s){let t,s,[l,c,d]=o,u="",p=c?r[c]:void 0;if(p)t=p.owner,u=p.mint;else if(c){let e=await n.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send(),a=e.value?.data;t=a?.parsed?.info?.owner,u=a?.parsed?.info?.mint??"",s=a?.parsed?.info?.tokenAmount?.decimals}if(!u&&l){let e=await n.rpc.getAccountInfo(l,{commitment:"confirmed",encoding:"jsonParsed"}).send(),t=e.value?.data;u=t?.parsed?.info?.mint??""}let m=await de({privyClient:a,chain:n.chain,mint:u}),g=m?.symbol??"";return s??=m?.decimals??9,{type:"spl-transfer",program:i,fromAta:l,fromAccount:d,toAta:c,toAccount:t,value:ge(e.data,1),token:{symbol:g,decimals:s,address:u}}}if(9===s){let[e,t,n]=o;return{type:"spl-close-account",program:i,source:e,destination:t,owner:n}}if(17===s)return{type:"spl-sync-native",program:i};throw Error(`Token program instruction type ${s} not supported`)}async function he(t,n){let a=t.data?.[0],r=t.accountIndices?.map((e=>n[e]))??[];if(0===a){let[,n]=r;return{type:"create-account",program:e.SYSTEM_PROGRAM_ID,account:n?.toString(),value:ge(t.data,4),withSeed:!1}}if(2===a){let[n,a]=r;return{type:"sol-transfer",program:e.SYSTEM_PROGRAM_ID,fromAccount:n,toAccount:a,token:{symbol:"SOL",decimals:9},value:ge(t.data,4),withSeed:!1}}if(3===a){let[,n]=r;return{type:"create-account",program:e.SYSTEM_PROGRAM_ID,account:n,withSeed:!0,value:ge(t.data.slice(t.data.length-32-8-8))}}if(11===a){let[n,a]=r;return{type:"sol-transfer",program:e.SYSTEM_PROGRAM_ID,fromAccount:n,toAccount:a,value:ge(t.data,4),token:{symbol:"SOL",decimals:9},withSeed:!0}}throw Error(`System program instruction type ${a} not supported`)}async function ye(e,t,n,a,r){let i=e.accountIndices?.map((e=>t[e]))??[],s=e.data?.[0];if(143===s){let t=i[10],s=i[11];return{type:"raydium-swap-base-input",program:r,mintIn:t,mintOut:s,tokenIn:t?await de({privyClient:a,chain:n.chain,mint:t}):void 0,tokenOut:s?await de({privyClient:a,chain:n.chain,mint:s}):void 0,amountIn:ge(e.data,8),minimumAmountOut:ge(e.data,16)}}if(55===s){let t=i[10],s=i[11];return{type:"raydium-swap-base-output",program:r,mintIn:t,mintOut:s,tokenIn:t?await de({privyClient:a,chain:n.chain,mint:t}):void 0,tokenOut:s?await de({privyClient:a,chain:n.chain,mint:s}):void 0,maxAmountIn:ge(e.data,8),amountOut:ge(e.data,16)}}throw Error(`Raydium swap program instruction type ${s} not supported`)}async function we(e,t,n,a,r){let i=e.data?.[0],s=e.accountIndices?.map((e=>t[e]))??[];if([208,51,239,151,123,43,237,92].includes(i)){let t=s[5],i=s[6];return{type:"jupiter-swap-exact-out-route",program:r,mintIn:t,mintOut:i,tokenIn:t?await de({privyClient:a,chain:n.chain,mint:t}):void 0,tokenOut:i?await de({privyClient:a,chain:n.chain,mint:i}):void 0,outAmount:ge(e.data,e.data.length-1-2-8-8),quotedInAmount:ge(e.data,e.data.length-1-2-8)}}if([176,209,105,168,154,125,69,62].includes(i)){let t=s[7],i=s[8];return{type:"jupiter-swap-exact-out-route",program:r,mintIn:t,mintOut:i,tokenIn:t?await de({privyClient:a,chain:n.chain,mint:t}):void 0,tokenOut:i?await de({privyClient:a,chain:n.chain,mint:i}):void 0,outAmount:ge(e.data,e.data.length-1-2-8-8),quotedInAmount:ge(e.data,e.data.length-1-2-8)}}if([193,32,155,51,65,214,156,129].includes(i)){let t=s[7],i=s[8];return{type:"jupiter-swap-shared-accounts-route",program:r,mintIn:t,mintOut:i,tokenIn:t?await de({privyClient:a,chain:n.chain,mint:t}):void 0,tokenOut:i?await de({privyClient:a,chain:n.chain,mint:i}):void 0,inAmount:ge(e.data,e.data.length-1-2-8-8),quotedOutAmount:ge(e.data,e.data.length-1-2-8)}}throw[62,198,214,193,213,159,108,210].includes(i)&&console.warn("Jupiter swap program instruction 'claim' not implemented"),[116,206,27,191,166,19,0,73].includes(i)&&console.warn("Jupiter swap program instruction 'claim_token' not implemented"),[26,74,236,151,104,64,183,249].includes(i)&&console.warn("Jupiter swap program instruction 'close_token' not implemented"),[229,194,212,172,8,10,134,147].includes(i)&&console.warn("Jupiter swap program instruction 'create_open_orders' not implemented"),[28,226,32,148,188,136,113,171].includes(i)&&console.warn("Jupiter swap program instruction 'create_program_open_orders' not implemented"),[232,242,197,253,240,143,129,52].includes(i)&&console.warn("Jupiter swap program instruction 'create_token_ledger' not implemented"),[147,241,123,100,244,132,174,118].includes(i)&&console.warn("Jupiter swap program instruction 'create_token_account' not implemented"),[229,23,203,151,122,227,173,42].includes(i)&&console.warn("Jupiter swap program instruction 'route' not implemented"),[150,86,71,116,167,93,14,104].includes(i)&&console.warn("Jupiter swap program instruction 'route_with_token_ledger' not implemented"),[228,85,185,112,78,79,77,2].includes(i)&&console.warn("Jupiter swap program instruction 'set_token_ledger' not implemented"),[230,121,143,80,119,159,106,170].includes(i)&&console.warn("Jupiter swap program instruction 'shared_accounts_route_with_token_ledger' not implemented"),Error(`Jupiter swap program instruction type ${i} not supported`)}async function ve({rpcSubscriptions:e,signature:t,timeout:n}){let a=new AbortController,r=await e.signatureNotifications(t,{commitment:"confirmed"}).subscribe({abortSignal:a.signal}),i=await Promise.race([new Promise((e=>{setTimeout((()=>{a.abort(),e(Error("Transaction confirmation timed out"))}),n)})),new Promise((async e=>{for await(let t of r){if(a.abort(),t.value.err)return e(Error("Transaction confirmation failed"));e(void 0)}}))]);if(i instanceof Error)throw i}function Ae({rpc:e,rpcSubscriptions:t,chain:n,blockExplorerUrl:a}){let r=function({rpc:e,rpcSubscriptions:t}){return async n=>new Promise((async(a,r)=>{try{let r=await e.sendTransaction(le(n).toString("base64"),{preflightCommitment:"confirmed",encoding:"base64"}).send();await ve({rpcSubscriptions:t,signature:r,timeout:1e4}),a({signature:new Uint8Array(p.getBase58Encoder().encode(r))})}catch(e){r(e)}}))}({rpc:e,rpcSubscriptions:t});return{rpc:e,rpcSubscriptions:t,chain:n,blockExplorerUrl:a,sendAndConfirmTransaction:r}}function Se(){let t=e.useAppConfig(),n=a.useMemo((()=>Object.fromEntries(["solana:mainnet","solana:devnet","solana:testnet"].map((e=>[e,t.solanaRpcs[e]?Ae({chain:e,rpc:t.solanaRpcs[e].rpc,rpcSubscriptions:t.solanaRpcs[e].rpcSubscriptions,blockExplorerUrl:t.solanaRpcs[e].blockExplorerUrl??`https://explorer.solana.com?cluster=${e.replace("solana:","")}`}):null])))),[t.solanaRpcs]);return a.useCallback((e=>{if(!n[e])throw Error(`No RPC configuration found for chain ${e}`);return n[e]}),[n])}const Te={component:()=>{let{data:n,onUserCloseViaDialogOrKeybindRef:i,setModalData:l,navigate:c}=e.usePrivyModal(),{client:d,closePrivyModal:u,walletProxy:m,showFiatPrices:g}=s.usePrivyInternal(),f=e.useAppConfig(),{user:h}=o.usePrivyContext(),y=Se()(n?.standardSignAndSendTransaction?.chain??"solana:mainnet"),[w,v]=a.useState(n?.standardSignAndSendTransaction?.transaction),[A,S]=a.useState(),[T,I]=a.useState(),[b,C]=a.useState({value:0n,isLoading:!1}),[E,P]=a.useState(!1),[x,O]=a.useState({}),[k,F]=a.useState(),_=n?.standardSignAndSendTransaction?.account,M=!!n?.standardSignAndSendTransaction?.signOnly,j=_?.imported?o.getImportedPrivySolanaWallets(h).find((e=>e.address===_.address)):o.getPrivyPrimaryWallet(h),{solPrice:W,isSolPriceLoading:U}=e.useGetSolPrice({enabled:g}),D=a.useMemo((()=>{if(!A)return;let t=A.spender,n=e.getNativeCurrencyFromLamports(A.fee),a=e.getNativeCurrencyFromLamports(b.value,3,!0),i=A.instructions.filter((e=>["sol-transfer","spl-transfer","raydium-swap-base-input","raydium-swap-base-output","jupiter-swap-shared-accounts-route","jupiter-swap-exact-out-route"].includes(e.type))),s=i.at(0);if(!s||i.length>1)return{fee:n,spender:t,balance:a};if("sol-transfer"===s.type)return{fee:n,spender:t,balance:a,total:e.getNativeCurrencyFromLamports(s.value)};if("spl-transfer"===s.type)return{fee:n,spender:t,balance:a,total:`${r.formatTokenAmount({amount:s.value,decimals:s.token.decimals})} ${s.token.symbol}`};if("raydium-swap-base-input"===s.type&&s.tokenIn&&s.tokenOut){return{fee:n,spender:t,balance:a,swap:`${`${r.formatTokenAmount({amount:s.amountIn,decimals:s.tokenIn.decimals})} ${s.tokenIn.symbol}`} → ${`${r.formatTokenAmount({amount:s.minimumAmountOut,decimals:s.tokenOut.decimals})} ${s.tokenOut.symbol}`}`}}if("raydium-swap-base-output"===s.type&&s.tokenIn&&s.tokenOut){return{fee:n,spender:t,balance:a,swap:`${`${r.formatTokenAmount({amount:s.maxAmountIn,decimals:s.tokenIn.decimals})} ${s.tokenIn.symbol}`} → ${`${r.formatTokenAmount({amount:s.amountOut,decimals:s.tokenOut.decimals})} ${s.tokenOut.symbol}`}`}}if("jupiter-swap-shared-accounts-route"===s.type&&s.tokenIn&&s.tokenOut){return{fee:n,spender:t,balance:a,swap:`${`${r.formatTokenAmount({amount:s.inAmount,decimals:s.tokenIn.decimals})} ${s.tokenIn.symbol}`} → ${`${r.formatTokenAmount({amount:s.quotedOutAmount,decimals:s.tokenOut.decimals})} ${s.tokenOut.symbol}`}`}}if("jupiter-swap-exact-out-route"===s.type&&s.tokenIn&&s.tokenOut){return{fee:n,spender:t,balance:a,swap:`${`${r.formatTokenAmount({amount:s.quotedInAmount,decimals:s.tokenIn.decimals})} ${s.tokenIn.symbol}`} → ${`${r.formatTokenAmount({amount:s.outAmount,decimals:s.tokenOut.decimals})} ${s.tokenOut.symbol}`}`}}return{fee:n,spender:t,balance:a}}),[A,_?.address,b]),L=a.useMemo((()=>{let t;if(!A||!g||!W||U)return;function n(...t){return e.getFormattedUsdFromLamports(t.reduce(((e,t)=>e+t),0n),W??0)}_?.address===A.spender&&(t=n(A.fee));let a=n(b.value),i=A.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)).at(0);return!i||A.instructions.length>1?{fee:t,balance:a}:"sol-transfer"===i.type?{fee:t,balance:a,total:n(i.value,_?.address===A.spender?A.fee:0n)}:"spl-transfer"===i.type?{fee:t,balance:a,total:`${r.formatTokenAmount({amount:i.value,decimals:i.token.decimals})} ${i.token.symbol}`}:{fee:t,balance:a}}),[A,g,W,U,_?.address,b]);if(a.useEffect((()=>{!async function(){if(w&&d)try{I(void 0);let e=await me({tx:w,solanaClient:y,privyClient:d,checkFunds:!M});S(e)}catch(e){console.error("Failed to prepare transaction",e),I(e)}}()}),[w,y,d,M]),a.useEffect((()=>{(async function(){if(!_)return;C({value:b.value,isLoading:!0});let{value:e}=await y.rpc.getBalance(_.address,{commitment:"confirmed"}).send();C({value:e??0n,isLoading:!1})})().catch(console.error)}),[A]),!w||!n?.standardSignAndSendTransaction||!_){let a=Error("Invalid transaction request");/*#__PURE__*/return t.jsx(e.ErrorScreenView,{error:a,allowlistConfig:f.allowlistConfig,onRetry:()=>{n?.standardSignAndSendTransaction?.onFailure(a),u({shouldCallAuthOnSuccess:!1})}})}let R=()=>{if(!E)return x.signature||x.signedTransaction?n?.standardSignAndSendTransaction?.onSuccess({signature:x.signature,signedTransaction:x.signedTransaction}):n?.standardSignAndSendTransaction?.onFailure(k??T??Error("User exited the modal before submitting the transaction")),u({shouldCallAuthOnSuccess:!1})};i.current=R;let B=n.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.contractInfo?.imgUrl?/*#__PURE__*/t.jsx("img",{src:n.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgUrl,alt:n.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgAltText}):null,N=!!(n.funding&&n.funding.supportedOptions.length>0),$=!A?.hasFunds&&N;if(x.signature||x.signedTransaction){let e=A?.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)),a=1===e?.length?e?.at(0):void 0;/*#__PURE__*/return t.jsx(re,{fees:x.fees??0n,onClose:R,transactionInfo:n.standardSignAndSendTransaction?.uiOptions.transactionInfo,solPrice:W,receiptHeader:n.standardSignAndSendTransaction?.uiOptions.successHeader,receiptDescription:n.standardSignAndSendTransaction?.uiOptions.successDescription,chain:y.chain,signOnly:M,instruction:"sol-transfer"===a?.type?{to:a.toAccount,amount:a.value}:{to:a?.toAccount||a?.toAta,total:D?.total}})}return k?/*#__PURE__*/t.jsx(e.TransactionErrorView,{transactionError:k,chainId:y.chain,onClose:R,chainType:"solana",onRetry:async()=>{F(void 0);let{value:e}=await y.rpc.getLatestBlockhash().send();v(function(e,t){return p.pipe(p.getCompiledTransactionMessageDecoder().decode(se(e)),(e=>p.decompileTransactionMessage(e)),(e=>p.setTransactionMessageLifetimeUsingBlockhash(t,e)),(e=>p.compileTransaction(e)),(e=>new Uint8Array(p.getTransactionEncoder().encode(e))))}(w,e))}}):/*#__PURE__*/t.jsx(e.SendSolanaTransactionScreenView,{img:B,title:n.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.title||"Confirm transaction",subtitle:n.standardSignAndSendTransaction?.uiOptions?.description||`${f.name} wants your permission to approve the following transaction.`,cta:$?"Add funds":n.standardSignAndSendTransaction?.uiOptions?.buttonText||"Approve",instructions:A?.instructions??[],network:"solana:mainnet"==y.chain?"Solana":y.chain.replace("solana:",""),blockExplorerUrl:y.blockExplorerUrl,total:g?L?.total:D?.total,fee:g?L?.fee:D?.fee,balance:g?L?.balance:D?.balance,swap:D?.swap,transactingWalletAddress:_.address,disabled:!A?.hasFunds&&!N,isSubmitting:E,isPreparing:!A||b.isLoading,isTokenPriceLoading:g&&U,isMissingFunds:!A?.hasFunds,submitError:k??void 0,parseError:T,onClick:$?async()=>{if(_){if(!N)throw Error("Funding wallet is not enabled");l({...n,funding:{...n.funding,methodScreen:e.FundingMethodSelectionScreen},solanaFundingData:n?.solanaFundingData}),c(e.FundingMethodSelectionScreen)}}:async()=>{try{if(P(!0),E||!_||!m||!h||!j)return;let e=await n.standardSignAndSendTransaction.onConfirm(w);if("signature"in e){let t=await async function({solanaClient:e,signature:t}){let n=p.getBase58Decoder().decode(t),a=await e.rpc.getTransaction(n,{maxSupportedTransactionVersion:0,commitment:"confirmed",encoding:"base64"}).send().catch((()=>null));return a?{fee:a.meta?.fee??0n}:null}({solanaClient:y,signature:e.signature});return void O({...e,fees:t?.fee})}O(e)}catch(e){console.warn({transaction:w,error:e}),F(e)}finally{P(!1)}},onClose:R})}};function Ie(e,t,n){let a=structuredClone(p.getTransactionDecoder().decode(e)),r=p.address(t);return r in a.signatures&&(a.signatures[r]=n),new Uint8Array(p.getTransactionEncoder().encode(a))}function be(){let{isHeadlessSigning:t,walletProxy:n,initializeWalletProxy:a,recoverEmbeddedWallet:c,openModal:d,privy:u,client:p}=s.usePrivyInternal(),{user:g}=l.usePrivy(),{setModalData:f}=e.usePrivyModal(),{signWithUserSigner:h}=m.useSignWithUserSigner();return{signMessage:({message:s,address:l,options:m})=>new Promise((async(y,w)=>{let v=o.getPrivyWalletWithAddress(g,l);if("privy"!==v?.walletClientType)return void w(new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:A,entropyIdVerifier:S}=e.getEntropyDetailsForUser(g,v),T=o.getIsUnifiedWallet(v),I=le(s).toString("base64");if(I.length<1)return void w(new i.PrivyClientError("Message must be a non-empty string",void 0,i.PrivyErrorCode.INVALID_MESSAGE));let b=async()=>{let e;if(!g)throw Error("User must be authenticated before signing with a Privy wallet");let t=await p.getAccessToken();if(!t)throw Error("User must be authenticated to use their embedded wallet.");let i=n??await a(15e3);if(!i)throw Error("Failed to initialize embedded wallet proxy.");if(!await c({address:v.address}))throw Error("Unable to connect to wallet");if(T){let t=await r.rpc(u,h,{chain_type:"solana",method:"signMessage",params:{message:I,encoding:"base64"},wallet_id:v.id});if(!t.data||!("signature"in t.data))throw Error("Failed to sign message");e=t.data.signature}else{let{response:n}=await i.rpc({accessToken:t,entropyId:A,entropyIdVerifier:S,chainType:"solana",hdWalletIndex:v.walletIndex??0,requesterAppId:m?.uiOptions?.requesterAppId,request:{method:"signMessage",params:{message:I}}});e=n.data.signature}return e};if(t({showWalletUIs:m?.uiOptions?.showWalletUIs}))try{let e=await b(),t=new Uint8Array(le(e,"base64"));y({signature:t})}catch(e){w(e)}else f({signMessage:{method:"solana_signMessage",data:I,confirmAndSign:b,onSuccess:e=>{y({signature:new Uint8Array(le(e,"base64"))})},onFailure:e=>{w(e)},uiOptions:m?.uiOptions??{}},connectWallet:{recoveryMethod:v.recoveryMethod,connectingWalletAddress:v.address,entropyId:A,entropyIdVerifier:S,isUnifiedWallet:T,onCompleteNavigateTo:e.SignRequestScreen,onFailure:e=>{w(new i.PrivyClientError("Failed to connect to wallet",e,i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR))}}}),d(e.EmbeddedWalletConnectingScreen)}))}}function Ce(){let{isHeadlessSigning:t,openModal:n}=s.usePrivyInternal(),{setModalData:a}=e.usePrivyModal(),{signMessage:r}=be(),{user:c}=l.usePrivy();return{signTransaction:async({transaction:s,options:l,chain:d="solana:mainnet",address:u})=>{async function p(e){let{signature:t}=await r({message:se(e),address:u,options:{...l,uiOptions:{...l?.uiOptions,showWalletUIs:!1}}});return{signedTransaction:Ie(e,u,t)}}return t({showWalletUIs:l?.uiOptions?.showWalletUIs})?p(s):new Promise((async(t,r)=>{let m=o.getPrivyWalletWithAddress(c,u);if("privy"!==m?.walletClientType)return void r(new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:g,entropyIdVerifier:f}=e.getEntropyDetailsForUser(c,m),h=o.getIsUnifiedWallet(m);function y(e){return t=>{t instanceof i.PrivyClientError?r(t):r(new i.PrivyClientError("Failed to connect to wallet",t,e))}}let w={account:m,transaction:s,chain:d,signOnly:!0,uiOptions:l?.uiOptions||{},onConfirm:p,onSuccess:t,onFailure:y(i.PrivyErrorCode.TRANSACTION_FAILURE)};a({connectWallet:{recoveryMethod:m.recoveryMethod,connectingWalletAddress:m.address,entropyId:g,entropyIdVerifier:f,isUnifiedWallet:h,onCompleteNavigateTo:Te,onFailure:y(i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)},standardSignAndSendTransaction:w}),n(e.EmbeddedWalletConnectingScreen)}))}}}let Ee=new b({signTransaction:s.notImplementedWithMessage("signTransaction was not injected"),signAndSendTransaction:s.notImplementedWithMessage("signAndSendTransaction was not injected"),signMessage:s.notImplementedWithMessage("signMessage was not injected")}),Pe=new class{get version(){return W(this,R)[R]}get name(){return W(this,B)[B]}get icon(){return W(this,N)[N]}get chains(){return A.slice()}get features(){return{"standard:connect":{version:"1.0.0",connect:W(this,H)[H]},"standard:disconnect":{version:"1.0.0",disconnect:W(this,Q)[Q]},"standard:events":{version:"1.0.0",on:W(this,G)[G]},"solana:signAndSendTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signAndSendTransaction:W(this,z)[z]},"solana:signTransaction":{version:"1.0.0",supportedTransactionVersions:["legacy",0],signTransaction:W(this,X)[X]},"solana:signMessage":{version:"1.0.0",signMessage:W(this,Z)[Z]},"privy:":{privy:{signMessage:W(this,$)[$].signMessage,signTransaction:W(this,$)[$].signTransaction,signAndSendTransaction:W(this,$)[$].signAndSendTransaction}}}}get accounts(){return W(this,q)[q].slice()}get isPrivyWallet(){return W(this,V)[V]}constructor({name:e,icon:t,version:n,injection:a,wallets:r}){Object.defineProperty(this,J,{value:ee}),Object.defineProperty(this,K,{value:te}),Object.defineProperty(this,L,{writable:!0,value:void 0}),Object.defineProperty(this,R,{writable:!0,value:void 0}),Object.defineProperty(this,B,{writable:!0,value:void 0}),Object.defineProperty(this,N,{writable:!0,value:void 0}),Object.defineProperty(this,$,{writable:!0,value:void 0}),Object.defineProperty(this,V,{writable:!0,value:void 0}),Object.defineProperty(this,q,{writable:!0,value:void 0}),Object.defineProperty(this,G,{writable:!0,value:void 0}),Object.defineProperty(this,Y,{writable:!0,value:void 0}),Object.defineProperty(this,H,{writable:!0,value:void 0}),Object.defineProperty(this,Q,{writable:!0,value:void 0}),Object.defineProperty(this,Z,{writable:!0,value:void 0}),Object.defineProperty(this,z,{writable:!0,value:void 0}),Object.defineProperty(this,X,{writable:!0,value:void 0}),W(this,L)[L]={},W(this,G)[G]=(e,t)=>(W(this,L)[L][e]?.push(t)||(W(this,L)[L][e]=[t]),()=>W(this,K)[K](e,t)),W(this,Y)[Y]=e=>{null!=e&&(W(this,q)[q]=e.map((({address:e})=>new j({address:e,publicKey:d.base58.decode(e)})))),W(this,J)[J]("change",{accounts:this.accounts})},W(this,H)[H]=async()=>(W(this,J)[J]("change",{accounts:this.accounts}),{accounts:this.accounts}),W(this,Q)[Q]=async()=>{W(this,J)[J]("change",{accounts:this.accounts})},W(this,Z)[Z]=async(...e)=>{let t=[];for(let{account:n,...a}of e){let{signature:e}=await W(this,$)[$].signMessage({...a,address:n.address});t.push({signedMessage:a.message,signature:e})}return t},W(this,z)[z]=async(...e)=>{let t=[];for(let{transaction:n,account:a,options:r,chain:i}of e){let{signature:e}=await W(this,$)[$].signAndSendTransaction({transaction:n,address:a.address,chain:i||"solana:mainnet",options:r});t.push({signature:e})}return t},W(this,X)[X]=async(...e)=>{let t=[];for(let{transaction:n,account:a,options:r,chain:i}of e){let{signedTransaction:e}=await W(this,$)[$].signTransaction({transaction:n,address:a.address,chain:i||"solana:mainnet",options:r});t.push({signedTransaction:e})}return t},W(this,B)[B]=e,W(this,N)[N]=t,W(this,R)[R]=n,W(this,$)[$]=a,W(this,q)[q]=[],W(this,V)[V]=!0,a.on("accountChanged",W(this,Y)[Y],this),W(this,Y)[Y](r)}}({name:"Privy",version:"1.0.0",icon:"data:image/png;base64,AAABAAEAFBQAAAAAIABlAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAUAAAAFAgGAAAAjYkdDQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAQVJREFUeJxiYMANZIC4E4ivAPFPIP4FxDeAuB+IlfDowwBMQFwJxF+B+D8O/AOI66Bq8QJGIF6ExyB0vAqImfEZmEeCYTDcgMswPiB+T4aB34FYApuBsWQYBsP52AycToGBK7EZuJECAw9jM3AVBQbuwWZgIwUGTsZmoDkFBnpiMxAEjpJh2FV8iVsbiD+TYBgoDVrgMgwGnID4HRGGgTKBGyHDYEAaiBdCSxh0g/5AU4Q8sYYhAzEgjoGmABBOgFo2eACowFABYn0oVgViAVINkQTiZUD8DIj/ATF6GILEXgLxCiCWIsZAbiAuBeKtQHwHiEHJ6C8UfwHie0C8E4jLoWpRAAAAAP//rcbhsQAAAAZJREFUAwBYFs3VKJ0cuQAAAABJRU5ErkJggg==",wallets:[],injection:Ee});function xe(){let{ready:t}=e.useWallets(),{user:n}=l.usePrivy(),{signMessage:r}=be(),{signTransaction:c}=Ce(),{signAndSendTransaction:d}=function(){let t=e.useAppConfig(),{isHeadlessSigning:n,openModal:a}=s.usePrivyInternal(),{setModalData:r}=e.usePrivyModal(),{signTransaction:c}=Ce(),d=Se(),{user:u}=l.usePrivy();return{signAndSendTransaction:async({transaction:s,address:p,chain:m="solana:mainnet",options:g})=>{async function f(e){let{signedTransaction:t}=await c({transaction:e,address:p,chain:m,options:{...g,uiOptions:{...g?.uiOptions,showWalletUIs:!1}}}),{signature:n}=await d(m).sendAndConfirmTransaction(t);return{signature:n}}return n({showWalletUIs:g?.uiOptions?.showWalletUIs})?f(s):new Promise((async(n,c)=>{let d,h,y=o.getPrivyWalletWithAddress(u,p);if("privy"!==y?.walletClientType)return void c(new i.PrivyClientError("Wallet is not a Privy wallet",void 0,i.PrivyErrorCode.EMBEDDED_WALLET_NOT_FOUND));let{entropyId:w,entropyIdVerifier:v}=e.getEntropyDetailsForUser(u,y),A=o.getIsUnifiedWallet(y);function S(e){return t=>{t instanceof i.PrivyClientError?c(t):c(new i.PrivyClientError("Failed to connect to wallet",t,e))}}let T={account:y,transaction:s,chain:m,signOnly:!1,uiOptions:g?.uiOptions||{},onConfirm:f,onSuccess:n,onFailure:S(i.PrivyErrorCode.TRANSACTION_FAILURE)},I={recoveryMethod:y.recoveryMethod,connectingWalletAddress:y.address,entropyId:w,entropyIdVerifier:v,isUnifiedWallet:A,onCompleteNavigateTo:Te,onFailure:S(i.PrivyErrorCode.UNKNOWN_CONNECT_WALLET_ERROR)};t.fundingConfig&&(d=l.prepareSolanaFundingModalData({address:p,appConfig:t,methodScreen:e.FundingMethodSelectionScreen,fundWalletConfig:{...g,asset:"native-currency",chain:m},externalSolanaFundingScreen:Ue}),h={amount:t.fundingConfig.defaultRecommendedAmount,asset:"SOL",chain:m,destinationAddress:p,afterSuccessScreen:Te,sourceWalletData:void 0}),r({connectWallet:I,standardSignAndSendTransaction:T,funding:d,solanaFundingData:h}),a(e.EmbeddedWalletConnectingScreen)}))}}}(),u=a.useMemo((()=>{let e=[...o.getPrivySolanaHDWallets(n).sort(((e,t)=>(e.walletIndex??0)-(t.walletIndex??0)))],t=o.getImportedPrivySolanaWallets(n);return t.length?[...e,...t]:e}),[n]),p=a.useMemo((()=>({signMessage:async({message:e,address:t,options:n})=>await r({message:e,address:t,options:n}),signTransaction:async({transaction:e,address:t,chain:n,options:a})=>await c({transaction:e,address:t,chain:n,options:a}),async signAndSendTransaction({transaction:e,address:t,chain:n,options:a}){let{signature:r}=await d({transaction:e,address:t,chain:n,options:a});return{signature:r}}})),[r,c,d]);return a.useEffect((()=>{Ee?.setImplementation(p)}),[p]),a.useEffect((()=>{var e;!t||(e=Pe.accounts).length===u.length&&e.every(((e,t)=>e.address===u[t]?.address))||Ee?.emit("accountChanged",u)}),[t,u]),{ready:t,wallet:Pe}}function Oe(){let{client:e}=s.usePrivyInternal(),{ready:t,wallet:n}=xe(),[r,i]=a.useState([]),[o,l]=a.useState([]);return a.useEffect((()=>{let e=[n,...r.filter((e=>"solana"===e.chainType&&!!e.wallet.features)).map((e=>e.wallet))];l(e);let t=e.map((t=>t.features["standard:events"]?.on("change",(()=>{l([...e])}))));return()=>{t.forEach((e=>e?.()))}}),[r]),a.useEffect((()=>{if(!t)return;i(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[]);let n=()=>{i(e.connectors?.walletConnectors.filter((e=>"solana"===e.chainType))??[])};return e.connectors?.on("connectorInitialized",n),()=>{e.connectors?.off("connectorInitialized",n)}}),[t,e.connectors]),{ready:t,wallets:o}}function ke(){let{ready:e,wallets:t}=Oe();return{ready:e,wallets:a.useMemo((()=>t.flatMap((e=>e.accounts.map((t=>new r.ConnectedStandardSolanaWallet({wallet:e,account:t})))))),[t])}}function Fe(e){return p.getBase58Decoder().decode(e)}function _e(e){return BigInt(Math.floor(1e9*parseFloat(e)))}function Me(e){return+je.format(parseFloat(e.toString())/1e9)}let je=Intl.NumberFormat(void 0,{maximumFractionDigits:8});async function We({tx:t,solanaClient:n,amount:a,asset:r,tokenPrice:i}){if(!t)return null;if("SOL"===r&&i){let r=_e(a),s=e.getFormattedUsdFromLamports(r,i),o=await ue({solanaClient:n,tx:t});return{amountInUsd:s,feeInUsd:i?e.getFormattedUsdFromLamports(o,i):void 0,totalInUsd:e.getFormattedUsdFromLamports(r+o,i)}}if("USDC"===r&&i){let r="$"+a,s=await ue({solanaClient:n,tx:t}),o=function(t,n){let a=parseFloat(t.toString())/e.LAMPORTS_PER_SOL*n;return a<.01?0:a}(s,i);return{amountInUsd:r,feeInUsd:e.getFormattedUsdFromLamports(s,i),totalInUsd:"$"+(parseFloat(a)+o).toFixed(2)}}if("SOL"===r){let e=_e(a),r=await ue({solanaClient:n,tx:t});return{amountInSol:a+" SOL",feeInSol:Me(r)+" SOL",totalInSol:Me(e+r)+" SOL"}}return{amountInUsdc:a+" USDC",feeInSol:Me(await ue({solanaClient:n,tx:t}))+" SOL"}}const Ue={component:function(){let n=e.useAppConfig(),{closePrivyModal:o,createAnalyticsEvent:l}=s.usePrivyInternal(),{data:c,setModalData:d,navigate:u}=e.usePrivyModal(),{wallets:m}=ke(),[h,w]=a.useState("preparing"),[A,S]=a.useState(),[T,I]=a.useState(),[b,C]=a.useState();if(!c?.solanaFundingData)throw Error("Funding config is missing");if(!c.solanaFundingData.sourceWalletData)throw Error("Funding config is missing source wallet data");let{amount:E,asset:P,chain:x,sourceWalletData:O,destinationAddress:k,afterSuccessScreen:F}=c.solanaFundingData,_=m.find((t=>t.address===O.address&&e.toSolanaWalletClientType(O.walletClientType)===e.toSolanaWalletClientType(t.standardWallet.name))),M=Se()(x),{tokenPrice:j,isTokenPriceLoading:W}=e.useGetTokenPrice("solana");return a.useEffect((()=>{if("preparing"!==h||W||!_)return;let t="SOL"===P?_e(E):function(e){return BigInt(Math.floor(1e6*parseFloat(e)))}(E);I({amount:("SOL"===P&&j?e.getFormattedUsdFromLamports(t,j):E)??E}),("SOL"===P?async function({solanaClient:e,source:t,destination:n,amountInLamports:a}){let{value:r}=await e.rpc.getLatestBlockhash().send(),i={address:t},s=p.pipe(p.createTransactionMessage({version:0}),(e=>p.setTransactionMessageFeePayerSigner(i,e)),(e=>p.setTransactionMessageLifetimeUsingBlockhash(r,e)),(e=>p.appendTransactionMessageInstruction(g.getTransferSolInstruction({amount:a,source:i,destination:n}),e)),(e=>p.compileTransaction(e)));return new Uint8Array(p.getTransactionEncoder().encode(s))}({solanaClient:M,source:_.address,destination:k,amountInLamports:t}):async function({solanaClient:t,source:n,destination:a,amountInBaseUnits:r}){let i=e.getUsdcMintAddress(t.chain),{value:s}=await t.rpc.getLatestBlockhash().send(),o={address:n},[l]=await f.findAssociatedTokenPda({mint:i,owner:n,tokenProgram:e.TOKEN_PROGRAM_ID}),[c]=await f.findAssociatedTokenPda({mint:i,owner:a,tokenProgram:e.TOKEN_PROGRAM_ID}),[d,u]=await Promise.all([t.rpc.getAccountInfo(l,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null)),t.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send().catch((()=>null))]);if(!d?.value)throw Error(`Source token account does not exist for address: ${n}`);let m=f.getCreateAssociatedTokenIdempotentInstruction({payer:o,ata:c,owner:a,mint:i}),g=p.pipe(p.createTransactionMessage({version:0}),(e=>p.setTransactionMessageFeePayerSigner(o,e)),(e=>p.setTransactionMessageLifetimeUsingBlockhash(s,e)),(e=>u?.value?e:p.appendTransactionMessageInstruction(m,e)),(e=>p.appendTransactionMessageInstruction(f.getTransferInstruction({source:l,destination:c,authority:o,amount:r}),e)),(e=>p.compileTransaction(e)));return new Uint8Array(p.getTransactionEncoder().encode(g))}({solanaClient:M,source:_.address,destination:k,amountInBaseUnits:t})).then(S).catch((e=>{w("error"),C(e)}))}),[h,E,P,x,_,k,W,j]),a.useEffect((()=>{"preparing"===h&&A&&We({tx:A,solanaClient:M,amount:E,asset:P,tokenPrice:j}).then((e=>{w("loaded"),I({amount:e?.amountInUsd??e?.amountInUsdc??e?.amountInSol??E,fee:e?.feeInUsd??e?.feeInSol,total:e?.totalInUsd??e?.totalInSol})})).catch((e=>{w("error"),C(e)}))}),[A,E,P,h,j]),a.useEffect((()=>{"error"===h&&b&&(d({errorModalData:{error:b,previousScreen:Ue},solanaFundingData:c.solanaFundingData}),u(e.ErrorScreen,!1))}),[h,u]),a.useEffect((()=>{if("success"!==h)return;let t=setTimeout(F?()=>u(F):o,e.DEFAULT_SUCCESS_SCREEN_EXTRA_LONG_DURATION_MS);return()=>clearTimeout(t)}),[h]),"success"===h?/*#__PURE__*/t.jsxs(t.Fragment,{children:[/*#__PURE__*/t.jsx(e.i,{}),/*#__PURE__*/t.jsx(e.RefactorSpacerTop,{}),/*#__PURE__*/t.jsxs(e.CenteredItemWithGap,{children:[/*#__PURE__*/t.jsx(y.default,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),/*#__PURE__*/t.jsx(e.CenteredScreenHeader,{title:"Success!",description:`You’ve successfully added ${E} ${P} to your ${n.name} wallet. It may take a minute before the funds are available to use.`})]}),/*#__PURE__*/t.jsx(e.RefactorSpacerBottom,{}),/*#__PURE__*/t.jsx(e.BlobbyFooter,{})]}):"preparing"===h||"loaded"===h||"sending"===h?/*#__PURE__*/t.jsxs(t.Fragment,{children:[/*#__PURE__*/t.jsx(e.i,{}),/*#__PURE__*/t.jsx(e.CenteredItem,{style:{marginTop:"16px"},children:/*#__PURE__*/t.jsx(e.InjectedWalletIcon,{icon:_?.standardWallet.icon,name:_?.standardWallet.name})}),/*#__PURE__*/t.jsx(e.CenteredScreenHeader,{style:{marginTop:"8px",marginBottom:"12px"},title:"sending"===h&&_?`Confirming with ${_.standardWallet.name}`:"Confirm transaction"}),/*#__PURE__*/t.jsx(v,{rows:[{label:"Source",value:r.formatWalletAddress(O.address)},{label:"Destination",value:r.formatWalletAddress(k)},{label:"Network",value:e.getChainName(x)},{label:"Amount",value:T?.amount,isLoading:"preparing"===h},{label:"Estimated fee",value:T?.fee,isLoading:"preparing"===h},{label:"Total",value:T?.total,isLoading:"preparing"===h}]}),/*#__PURE__*/t.jsx(e.PrimaryButton,{style:{marginTop:"1rem"},loading:"preparing"===h||"sending"===h,onClick:function(){"loaded"===h&&A&&_&&(w("sending"),async function({transaction:e,chain:t,sourceWallet:n,solanaClient:a}){let{hasFunds:s}=await pe({solanaClient:a,tx:e});if(!s)throw new i.PrivyClientError(`Wallet ${r.formatWalletAddress(n.address)} does not have enough funds.`,void 0,i.PrivyErrorCode.INSUFFICIENT_BALANCE);let o=Fe((await n.signAndSendTransaction({transaction:e,chain:t}).catch((e=>{throw new i.PrivyClientError("Transaction was rejected by the user",e,i.PrivyErrorCode.TRANSACTION_FAILURE)}))).signature);return await ve({rpcSubscriptions:a.rpcSubscriptions,signature:o,timeout:2e4}),o}({solanaClient:M,transaction:A,chain:x,sourceWallet:_}).then((t=>{w("success"),l({eventName:e.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{provider:"external",status:"success",txHash:t,address:_.address,value:E,chainType:"solana",clusterName:x,token:P,destinationAddress:k,destinationValue:E,destinationChainType:"solana",destinationClusterName:x,destinationToken:P}})})).catch((e=>{w("error"),C(e)})))},children:"Confirm"}),/*#__PURE__*/t.jsx(e.BlobbyFooter,{})]}):
|
|
2
2
|
/*#__PURE__*/t.jsxs(t.Fragment,{children:[/*#__PURE__*/t.jsx(e.i,{}),/*#__PURE__*/t.jsx(e.NeutralSpinner,{}),/*#__PURE__*/t.jsx("div",{style:{marginTop:"1rem"}}),/*#__PURE__*/t.jsx(e.BlobbyFooter,{})]})}};exports.fetchTransactionEstimatedFees=ue,exports.getAddressFromBuffer=Fe,exports.getSolanaRpcClient=Ae,exports.simulateTransaction=pe,exports.useExportWallet=function(){let{user:t,getAccessToken:n}=o.usePrivyContext(),{walletProxy:r,openModal:c,client:d}=s.usePrivyInternal(),{setModalData:u}=e.usePrivyModal(),p=e.useAppConfig();return a.useMemo((()=>({exportWallet:a=>new Promise((async(s,m)=>{if(!t)return void m(new i.PrivyClientError("User must be authenticated before exporting their Privy wallet"));let g=a?.address?o.getPrivyWalletWithAddress(t,a.address):o.getPrivySolanaWallet(t);if(!g)return void m(new i.PrivyClientError("User must have an embedded wallet."));if(!l.isFirstClassChainWallet(g))return void m(Error(`Export is not supported for ${g.chainType} wallets`));let f=o.getIsUnifiedWallet(g),{entropyId:h,entropyIdVerifier:y}=e.getEntropyDetailsForUser(t,g);await n()?r?(u({connectWallet:{recoveryMethod:g.recoveryMethod,connectingWalletAddress:g.address,isUnifiedWallet:f,entropyId:h,entropyIdVerifier:y,onCompleteNavigateTo:e.EmbeddedWalletKeyExportScreen,onFailure:m,shouldForceMFA:!0},keyExport:{appId:p.id,appClientId:p.appClientId,origin:d.apiUrl,address:g.address,entropyId:h,entropyIdVerifier:y,hdWalletIndex:g.walletIndex,chainType:g.chainType,walletId:g.id,isUnifiedWallet:f,imported:g.imported,onSuccess:s,onFailure:m}}),c(e.EmbeddedWalletConnectingScreen)):m(new i.PrivyClientError("Wallet not ready for export")):m(new i.PrivyClientError("Must have valid access token."))}))})),[t,n,r,c,d,u,p])},exports.useFundWallet=function(){let t=e.useAppConfig(),{openModal:n}=s.usePrivyInternal(),{setModalData:a}=e.usePrivyModal();return{fundWallet:async({address:r,options:i})=>{let s=i?.amount||t.fundingConfig?.defaultRecommendedAmount||"1",o=i?.asset||t.fundingConfig?.defaultRecommendedCurrency.asset||"native-currency",c=i?.chain||"solana:mainnet";a({funding:l.prepareSolanaFundingModalData({address:r,appConfig:t,methodScreen:e.FundingMethodSelectionScreen,fundWalletConfig:{...i,amount:s,asset:o,chain:c},externalSolanaFundingScreen:Ue}),solanaFundingData:{amount:s,asset:"native-currency"===o?"SOL":"USDC",chain:c,destinationAddress:r,sourceWalletData:void 0}}),n(e.FundingMethodSelectionScreen)}}},exports.useSolanaStandardWallets=Oe,exports.useWallets=ke;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("react"),t=require("./SignRequestScreen-
|
|
1
|
+
"use strict";var e=require("react"),t=require("./SignRequestScreen-CvBcoZRA.js"),n=require("./privy-context-NMR-GjnL.js"),l=require("styled-components"),r=require("./internal-context-DNWjSiYq.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 n=t.useAppConfig(),{wallets:l}=t.useWallets(),{connectors:s}=r.usePrivyInternal(),i=e.useMemo((()=>s.filter(t.isSolanaWalletConnector).flatMap((e=>e.wallets))),[s]),o=t.useActiveWalletStore((e=>e.wallet));e.useEffect((()=>{if(!n.id)return;let e=t.s.get(t.toActiveWalletKey(n.id));t.useActiveWalletStore.setState({wallet:e})}),[n.id]);let u=e.useMemo((()=>{if(!o)return;let[,e]=o.split(":");return l.find((t=>t.address===e))||i.find((t=>t.address===e))}),[o,l,i]),a=e.useMemo((()=>u?"ethereum"===u.type?u.chainId:"solana":void 0),[u]);return{connect:async e=>{e?.reset&&(t.s.del(t.toActiveWalletKey(n.id)),t.useActiveWalletStore.setState({wallet:void 0}));let{wallet:r}=await t.open();if(!r)return{};let[,s]=r.split(":"),o=l.find((e=>e.address===s));if(o)return{wallet:o,network:o.chainId};let u=i.find((e=>e.address===s));return u?{wallet:u,network:"solana"}:{}},setActiveWallet:e.useCallback((e=>{t.setActiveWallet({address:e.address,client:e.walletClientType,appId:n.id})}),[n.id]),wallet:u,network:a}},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("./paths-B00ZrFQm.js"),r=require("@privy-io/js-sdk-core"),t=require("react"),n=require("./privy-context-CJzQZH6s.js"),a=require("./SignRequestScreen-BbqNYmhD.js"),i=require("./internal-context-DNWjSiYq.js");function o(e){let r=e.replace("eip155:","");if(r)return parseInt(r);throw Error("Chain ID not compatible with CAIP-2 format.")}const l=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)))),d={[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 s=e=>e.reduce(((e,r)=>!e||e.walletIndex<r.walletIndex?r:e),null),c=async({appConfig:r,getAccessToken:t,initializeWalletProxy:n,user:i,privy:o,emitPrivyEvent:l,recoverEmbeddedWallet:d,setModalData:c,openModal:p,setUser:E,options:f,timeoutDuration:h,refreshSessionAndUser:y,chainType:m})=>{let[v,g]=await Promise.all([n(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 u({accessToken:g,appConfig:r,privy:o,emitPrivyEvent:l,openModal:p,proxy:v,refreshSessionAndUser:y,recoverEmbeddedWallet:d,setModalData:c,user:i,walletIndex:f.walletIndex,chainType:m,setUser:E})}let C=f&&"createAdditional"in f&&f.createAdditional,w=a.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 u({accessToken:g,appConfig:r,privy:o,emitPrivyEvent:l,openModal:p,proxy:v,recoverEmbeddedWallet:d,setModalData:c,user:i,walletIndex:(s(w)?.walletIndex??-1)+1,chainType:m,refreshSessionAndUser:y,setUser:E})};let u=async({accessToken:r,appConfig:t,privy:i,emitPrivyEvent:o,proxy:l,refreshSessionAndUser:d,recoverEmbeddedWallet:s,user:c,walletIndex:u,setModalData:E,openModal:f,chainType:h,setUser:y})=>{if(u<0)throw o("createWallet","onError",e.PrivyErrorCode.EMBEDDED_WALLET_CREATE_ERROR),Error(`A negative walletIndex (${u}) is invalid.`);let m=n.getPrivyPrimaryWallet(c);if(u>0&&!m)throw o("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 o("createWallet","onError",e.PrivyErrorCode.EMBEDDED_WALLET_CREATE_ERROR),Error("User owned recovery not yet supported for this app.");if(!m&&t.embeddedWallets.requireUserOwnedRecoveryOnCreate)return await p({emitPrivyEvent:o,setModalData:E,openModal:f,chainType:h});let v=a.getPrivyWalletsWithFilter(c,{chainType:h,walletIndex:u})[0];if(v)return{user:c,account:v};if(0===u&&!l)return p({emitPrivyEvent:o,setModalData:E,openModal:f,chainType:h});if(!l)throw o("createWallet","onError",e.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");return a.createWalletAtIndex({appConfig:t,walletIndex:u,chainType:h,user:c,accessToken:r,proxy:l,refreshSessionAndUser:d,privy:i,recoverEmbeddedWallet:s,setUser:y})},p=async({emitPrivyEvent:r,setModalData:t,openModal:n,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}}),n(a.EmbeddedWalletOnAccountCreateScreen)}));const E=()=>{let r=a.useAppConfig(),t=a.useEmitPrivyEvent(),{setModalData:n}=a.usePrivyModal(),{initializeWalletProxy:o,recoverEmbeddedWallet:l,setUser:d,openModal:s,refreshSessionAndUser:u,privy:p,client:E}=i.usePrivyInternal();return{create:async({chainType:i,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 c({appConfig:r,privy:p,getAccessToken:()=>E.getAccessToken(),refreshSessionAndUser:u,initializeWalletProxy:o,user:y,emitPrivyEvent:t,recoverEmbeddedWallet:l,setModalData:n,openModal:s,setUser:d,options:f,timeoutDuration:a.WALLET_PROXY_TIMEOUT,chainType:i})}}};function f(e){let{create:r}=E();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 h=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},y=()=>{let{user:e}=n.usePrivyContext(),{client:r,refreshSessionAndUser:o,initializeWalletProxy:l}=i.usePrivyInternal(),d=a.useEmitPrivyEvent(),s=a.useAppConfig();return{importWallet:t.useCallback((({privateKey:t,additionalSigners:n})=>h({getAccessToken:()=>r.getAccessToken(),user:e,initializeWalletProxy:l,refreshSessionAndUser:o,emitPrivyEvent:d,appConfig:s},{privateKey:t,chainType:"ethereum",additionalSigners:n})),[e,r,o,l,d,s])}};exports.extractChainIdFromCAIP2=o,exports.filterSupportedOptions=l,exports.importWallet=h,exports.isFirstClassChainWallet=function(e){return["ethereum","solana"].includes(e.chainType)},exports.prepareFundingModalData=({address:r,appConfig:t,fundWalletConfig:n,methodScreen:a,chainIdOverride:i,comingFromSendTransactionScreen:s=!1})=>{let c,u;if(!t.fundingConfig)throw Error("Wallet funding is not enabled");let p=l(t.fundingConfig.options);if(p.length<1)throw Error("Wallet funding is not enabled");c=i||(n?.chain?n.chain.id:o(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=d[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===d[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 o=l(t.fundingConfig.options);if(o.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:o,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=f,exports.useCreateWalletInternal=E,exports.useImportWallet=y,exports.usePrivy=()=>{let{importWallet:e}=y(),{createWallet:r}=f();return{...t.useContext(n.PrivyContext),importWallet:e,createWallet:r}};
|
|
1
|
+
"use strict";var e=require("./paths-B00ZrFQm.js"),r=require("@privy-io/js-sdk-core"),t=require("react"),n=require("./privy-context-NMR-GjnL.js"),a=require("./SignRequestScreen-CvBcoZRA.js"),i=require("./internal-context-DNWjSiYq.js");function o(e){let r=e.replace("eip155:","");if(r)return parseInt(r);throw Error("Chain ID not compatible with CAIP-2 format.")}const l=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)))),d={[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 s=e=>e.reduce(((e,r)=>!e||e.walletIndex<r.walletIndex?r:e),null),c=async({appConfig:r,getAccessToken:t,initializeWalletProxy:n,user:i,privy:o,emitPrivyEvent:l,recoverEmbeddedWallet:d,setModalData:c,openModal:p,setUser:E,options:f,timeoutDuration:h,refreshSessionAndUser:y,chainType:m})=>{let[v,g]=await Promise.all([n(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 u({accessToken:g,appConfig:r,privy:o,emitPrivyEvent:l,openModal:p,proxy:v,refreshSessionAndUser:y,recoverEmbeddedWallet:d,setModalData:c,user:i,walletIndex:f.walletIndex,chainType:m,setUser:E})}let C=f&&"createAdditional"in f&&f.createAdditional,w=a.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 u({accessToken:g,appConfig:r,privy:o,emitPrivyEvent:l,openModal:p,proxy:v,recoverEmbeddedWallet:d,setModalData:c,user:i,walletIndex:(s(w)?.walletIndex??-1)+1,chainType:m,refreshSessionAndUser:y,setUser:E})};let u=async({accessToken:r,appConfig:t,privy:i,emitPrivyEvent:o,proxy:l,refreshSessionAndUser:d,recoverEmbeddedWallet:s,user:c,walletIndex:u,setModalData:E,openModal:f,chainType:h,setUser:y})=>{if(u<0)throw o("createWallet","onError",e.PrivyErrorCode.EMBEDDED_WALLET_CREATE_ERROR),Error(`A negative walletIndex (${u}) is invalid.`);let m=n.getPrivyPrimaryWallet(c);if(u>0&&!m)throw o("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 o("createWallet","onError",e.PrivyErrorCode.EMBEDDED_WALLET_CREATE_ERROR),Error("User owned recovery not yet supported for this app.");if(!m&&t.embeddedWallets.requireUserOwnedRecoveryOnCreate)return await p({emitPrivyEvent:o,setModalData:E,openModal:f,chainType:h});let v=a.getPrivyWalletsWithFilter(c,{chainType:h,walletIndex:u})[0];if(v)return{user:c,account:v};if(0===u&&!l)return p({emitPrivyEvent:o,setModalData:E,openModal:f,chainType:h});if(!l)throw o("createWallet","onError",e.PrivyErrorCode.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to connect to wallet proxy");return a.createWalletAtIndex({appConfig:t,walletIndex:u,chainType:h,user:c,accessToken:r,proxy:l,refreshSessionAndUser:d,privy:i,recoverEmbeddedWallet:s,setUser:y})},p=async({emitPrivyEvent:r,setModalData:t,openModal:n,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}}),n(a.EmbeddedWalletOnAccountCreateScreen)}));const E=()=>{let r=a.useAppConfig(),t=a.useEmitPrivyEvent(),{setModalData:n}=a.usePrivyModal(),{initializeWalletProxy:o,recoverEmbeddedWallet:l,setUser:d,openModal:s,refreshSessionAndUser:u,privy:p,client:E}=i.usePrivyInternal();return{create:async({chainType:i,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 c({appConfig:r,privy:p,getAccessToken:()=>E.getAccessToken(),refreshSessionAndUser:u,initializeWalletProxy:o,user:y,emitPrivyEvent:t,recoverEmbeddedWallet:l,setModalData:n,openModal:s,setUser:d,options:f,timeoutDuration:a.WALLET_PROXY_TIMEOUT,chainType:i})}}};function f(e){let{create:r}=E();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 h=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},y=()=>{let{user:e}=n.usePrivyContext(),{client:r,refreshSessionAndUser:o,initializeWalletProxy:l}=i.usePrivyInternal(),d=a.useEmitPrivyEvent(),s=a.useAppConfig();return{importWallet:t.useCallback((({privateKey:t,additionalSigners:n})=>h({getAccessToken:()=>r.getAccessToken(),user:e,initializeWalletProxy:l,refreshSessionAndUser:o,emitPrivyEvent:d,appConfig:s},{privateKey:t,chainType:"ethereum",additionalSigners:n})),[e,r,o,l,d,s])}};exports.extractChainIdFromCAIP2=o,exports.filterSupportedOptions=l,exports.importWallet=h,exports.isFirstClassChainWallet=function(e){return["ethereum","solana"].includes(e.chainType)},exports.prepareFundingModalData=({address:r,appConfig:t,fundWalletConfig:n,methodScreen:a,chainIdOverride:i,comingFromSendTransactionScreen:s=!1})=>{let c,u;if(!t.fundingConfig)throw Error("Wallet funding is not enabled");let p=l(t.fundingConfig.options);if(p.length<1)throw Error("Wallet funding is not enabled");c=i||(n?.chain?n.chain.id:o(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=d[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===d[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 o=l(t.fundingConfig.options);if(o.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:o,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=f,exports.useCreateWalletInternal=E,exports.useImportWallet=y,exports.usePrivy=()=>{let{importWallet:e}=y(),{createWallet:r}=f();return{...t.useContext(n.PrivyContext),importWallet:e,createWallet:r}};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ExtendedChainType, WalletResponseType, CurveSigningChainType } from '@privy-io/public-api';
|
|
2
|
-
import { U as User } from './types-
|
|
2
|
+
import { U as User } from './types-C97UOzaM.js';
|
|
3
3
|
import '@coinbase/wallet-sdk';
|
|
4
4
|
import '@solana/kit';
|
|
5
5
|
import 'react';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ExtendedChainType, WalletResponseType, CurveSigningChainType } from '@privy-io/public-api';
|
|
2
|
-
import { U as User } from './types-
|
|
2
|
+
import { U as User } from './types-C97UOzaM.js';
|
|
3
3
|
import '@coinbase/wallet-sdk';
|
|
4
4
|
import '@solana/kit';
|
|
5
5
|
import 'react';
|
package/dist/dts/farcaster.d.mts
CHANGED
package/dist/dts/farcaster.d.ts
CHANGED
package/dist/dts/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import react__default, { MouseEvent } from 'react';
|
|
3
|
-
import { g as UserRecoveryMethod, c as SessionSignerInput, P as PrivyFarcasterSignerInitResponse, M as MfaSubmitArgs, E as EthereumRpcRequestType, h as SolanaRpcRequestType, i as EthereumRpcResponseType, j as SolanaRpcResponseType, k as EIP1193Provider, l as EntropyIdVerifier$1, H as HDWalletWithMetadata, m as RequestArguments, n as WalletConnector, B as BaseConnectedEthereumWallet, o as PrivyProxyProvider, p as WalletClientType, q as ConnectedWalletMetadata, r as PrivyClientConfig, s as ConnectorType, u as SetBaseAccountSdkType, v as WalletListEntry, A as AppConfig, w as BaseConnectedWallet, f as SolanaWalletConnector, U as User, x as ConnectWalletModalOptions, y as LoginModalOptions, C as CreateWalletOptions, W as Wallet, z as SetWalletRecoveryOptions, b as SignMessageModalUIOptions, D as SignTypedDataParams, F as MfaMethod, G as UnsignedTransactionRequest, a as SendTransactionModalUIOptions, I as FundWalletConfig, J as ConnectedWallet, O as OAuthTokens, K as CrossAppProviderDetails, N as MoonpaySignRequest, Q as MoonpaySignResponse, T as SmartWalletConfig, V as SiwsMessageType, X as LoginMethod, Y as ExternalWalletMetadata, Z as TelegramAuthResult, _ as TelegramWebAppData, $ as OAuthUserInfo, a0 as PrivyErrorCode, a1 as LinkedAccountWithMetadata, a2 as BaseConnectedSolanaWallet, a3 as FundingMethod, S as SolanaChain, a4 as OAuthFlowState, a5 as LoginWithCode, a6 as OtpFlowState, a7 as PasskeyFlowState, a8 as SiweFlowState, a9 as BaseAccountSdkType, aa as UnsignedTransactionRequestWithChainId, ab as BaseConnectedWalletType, ac as TelegramAuthFlowState } from './types-
|
|
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, 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-
|
|
3
|
+
import { g as UserRecoveryMethod, c as SessionSignerInput, P as PrivyFarcasterSignerInitResponse, M as MfaSubmitArgs, E as EthereumRpcRequestType, h as SolanaRpcRequestType, i as EthereumRpcResponseType, j as SolanaRpcResponseType, k as EIP1193Provider, l as EntropyIdVerifier$1, H as HDWalletWithMetadata, m as RequestArguments, n as WalletConnector, B as BaseConnectedEthereumWallet, o as PrivyProxyProvider, p as WalletClientType, q as ConnectedWalletMetadata, r as PrivyClientConfig, s as ConnectorType, u as SetBaseAccountSdkType, v as WalletListEntry, A as AppConfig, w as BaseConnectedWallet, f as SolanaWalletConnector, U as User, x as ConnectWalletModalOptions, y as LoginModalOptions, C as CreateWalletOptions, W as Wallet, z as SetWalletRecoveryOptions, b as SignMessageModalUIOptions, D as SignTypedDataParams, F as MfaMethod, G as UnsignedTransactionRequest, a as SendTransactionModalUIOptions, I as FundWalletConfig, J as ConnectedWallet, O as OAuthTokens, K as CrossAppProviderDetails, N as MoonpaySignRequest, Q as MoonpaySignResponse, T as SmartWalletConfig, V as SiwsMessageType, X as LoginMethod, Y as ExternalWalletMetadata, Z as TelegramAuthResult, _ as TelegramWebAppData, $ as OAuthUserInfo, a0 as PrivyErrorCode, a1 as LinkedAccountWithMetadata, a2 as BaseConnectedSolanaWallet, a3 as FundingMethod, S as SolanaChain, a4 as OAuthFlowState, a5 as LoginWithCode, a6 as OtpFlowState, a7 as PasskeyFlowState, a8 as SiweFlowState, a9 as BaseAccountSdkType, aa as UnsignedTransactionRequestWithChainId, ab as BaseConnectedWalletType, ac as TelegramAuthFlowState } from './types-C97UOzaM.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, 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-C97UOzaM.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';
|
|
@@ -1535,6 +1535,11 @@ interface PrivyInterface {
|
|
|
1535
1535
|
* This will directly initiate the OAuth flow for Twitter.
|
|
1536
1536
|
*/
|
|
1537
1537
|
linkTwitter: () => void;
|
|
1538
|
+
/**
|
|
1539
|
+
* For users who are authenticated, prompts the user to link a Twitch OAuth account
|
|
1540
|
+
* This will directly initiate the OAuth flow for Twitch.
|
|
1541
|
+
*/
|
|
1542
|
+
linkTwitch: () => void;
|
|
1538
1543
|
/**
|
|
1539
1544
|
* For users who are authenticated, prompts the user to link Discord OAuth account
|
|
1540
1545
|
* This will directly initiate the OAuth flow for Discord.
|
|
@@ -1654,6 +1659,13 @@ interface PrivyInterface {
|
|
|
1654
1659
|
* @returns Promise for the {@link User} object after the provided Twitter account has been unlinked
|
|
1655
1660
|
*/
|
|
1656
1661
|
unlinkTwitter: (subject: string) => Promise<User>;
|
|
1662
|
+
/**
|
|
1663
|
+
* Unlink a Twitch social account from a user, by passing the Twitch subject ID. Note that you can only unlink a social account if the user has at least one other account.
|
|
1664
|
+
*
|
|
1665
|
+
* @param subject {string} twitch account's subject ID
|
|
1666
|
+
* @returns Promise for the {@link User} object after the provided Twitch account has been unlinked
|
|
1667
|
+
*/
|
|
1668
|
+
unlinkTwitch: (subject: string) => Promise<User>;
|
|
1657
1669
|
/**
|
|
1658
1670
|
* Unlink a Discord social account from a user, by passing the discord subject ID. Note that you can only unlink a social account if the user has at least one other account.
|
|
1659
1671
|
*
|
|
@@ -2343,6 +2355,14 @@ interface ResponseOAuthLine {
|
|
|
2343
2355
|
first_verified_at: number | null;
|
|
2344
2356
|
latest_verified_at: number | null;
|
|
2345
2357
|
}
|
|
2358
|
+
interface ResponseOAuthTwitch {
|
|
2359
|
+
type: 'twitch_oauth';
|
|
2360
|
+
subject: string;
|
|
2361
|
+
username: string | null;
|
|
2362
|
+
verified_at: number;
|
|
2363
|
+
first_verified_at: number | null;
|
|
2364
|
+
latest_verified_at: number | null;
|
|
2365
|
+
}
|
|
2346
2366
|
interface ResponseOAuthLinkedIn {
|
|
2347
2367
|
type: 'linkedin_oauth';
|
|
2348
2368
|
subject: string;
|
|
@@ -2416,7 +2436,7 @@ interface ResponseCrossAppAccount {
|
|
|
2416
2436
|
first_verified_at: number | null;
|
|
2417
2437
|
latest_verified_at: number | null;
|
|
2418
2438
|
}
|
|
2419
|
-
type LinkedAccountsResponseType = Array<ResponseEmailAccount | ResponsePhoneAccount | ResponseEthereumAccount | ResponseSmartWalletAccount | ResponseSolanaAccount | ResponseOAuthGoogle | ResponseOAuthTwitter | ResponseOAuthDiscord | ResponseOAuthGithub | ResponseOAuthSpotify | ResponseOAuthInstagram | ResponseOAuthTiktok | ResponseOAuthLine | ResponseOAuthLinkedIn | ResponseOAuthApple | ResponseOAuthCustom | ResponseCustomJwtAccount | ResponseFarcasterAccount | ResponsePasskeyAccount | ResponseTelegramAccount | ResponseCrossAppAccount>;
|
|
2439
|
+
type LinkedAccountsResponseType = Array<ResponseEmailAccount | ResponsePhoneAccount | ResponseEthereumAccount | ResponseSmartWalletAccount | ResponseSolanaAccount | ResponseOAuthGoogle | ResponseOAuthTwitter | ResponseOAuthDiscord | ResponseOAuthGithub | ResponseOAuthSpotify | ResponseOAuthInstagram | ResponseOAuthTiktok | ResponseOAuthLine | ResponseOAuthTwitch | ResponseOAuthLinkedIn | ResponseOAuthApple | ResponseOAuthCustom | ResponseCustomJwtAccount | ResponseFarcasterAccount | ResponsePasskeyAccount | ResponseTelegramAccount | ResponseCrossAppAccount>;
|
|
2420
2440
|
interface ResponseSmsMfaMethod {
|
|
2421
2441
|
type: 'sms';
|
|
2422
2442
|
verified_at: number;
|
|
@@ -3631,6 +3651,7 @@ declare function useRegisterMfaListener(callbacks: PrivyEvents['configureMfa']):
|
|
|
3631
3651
|
* @returns linkGoogle - immediately redirects to Google login page and prompts the user to link their account
|
|
3632
3652
|
* @returns linkApple - immediately redirects to Apple login page and prompts the user to link their account
|
|
3633
3653
|
* @returns linkTwitter - immediately redirects to Twitter login page and prompts the user to link their account
|
|
3654
|
+
* @returns linkTwitch - immediately redirects to Twitch login page and prompts the user to link their account
|
|
3634
3655
|
* @returns linkDiscord - immediately redirects to Discord login page and prompts the user to link their account
|
|
3635
3656
|
* @returns linkGithub - immediately redirects to Github login page and prompts the user to link their account
|
|
3636
3657
|
* @returns linkLinkedIn - immediately redirects to LinkedIn login page and prompts the user to link their account
|
|
@@ -3649,6 +3670,7 @@ declare function useLinkAccount(callbacks?: PrivyEvents['linkAccount']): {
|
|
|
3649
3670
|
linkGoogle: () => void;
|
|
3650
3671
|
linkApple: () => void;
|
|
3651
3672
|
linkTwitter: () => void;
|
|
3673
|
+
linkTwitch: () => void;
|
|
3652
3674
|
linkDiscord: () => void;
|
|
3653
3675
|
linkGithub: () => void;
|
|
3654
3676
|
linkLinkedIn: () => void;
|
package/dist/dts/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import react__default, { MouseEvent } from 'react';
|
|
3
|
-
import { g as UserRecoveryMethod, c as SessionSignerInput, P as PrivyFarcasterSignerInitResponse, M as MfaSubmitArgs, E as EthereumRpcRequestType, h as SolanaRpcRequestType, i as EthereumRpcResponseType, j as SolanaRpcResponseType, k as EIP1193Provider, l as EntropyIdVerifier$1, H as HDWalletWithMetadata, m as RequestArguments, n as WalletConnector, B as BaseConnectedEthereumWallet, o as PrivyProxyProvider, p as WalletClientType, q as ConnectedWalletMetadata, r as PrivyClientConfig, s as ConnectorType, u as SetBaseAccountSdkType, v as WalletListEntry, A as AppConfig, w as BaseConnectedWallet, f as SolanaWalletConnector, U as User, x as ConnectWalletModalOptions, y as LoginModalOptions, C as CreateWalletOptions, W as Wallet, z as SetWalletRecoveryOptions, b as SignMessageModalUIOptions, D as SignTypedDataParams, F as MfaMethod, G as UnsignedTransactionRequest, a as SendTransactionModalUIOptions, I as FundWalletConfig, J as ConnectedWallet, O as OAuthTokens, K as CrossAppProviderDetails, N as MoonpaySignRequest, Q as MoonpaySignResponse, T as SmartWalletConfig, V as SiwsMessageType, X as LoginMethod, Y as ExternalWalletMetadata, Z as TelegramAuthResult, _ as TelegramWebAppData, $ as OAuthUserInfo, a0 as PrivyErrorCode, a1 as LinkedAccountWithMetadata, a2 as BaseConnectedSolanaWallet, a3 as FundingMethod, S as SolanaChain, a4 as OAuthFlowState, a5 as LoginWithCode, a6 as OtpFlowState, a7 as PasskeyFlowState, a8 as SiweFlowState, a9 as BaseAccountSdkType, aa as UnsignedTransactionRequestWithChainId, ab as BaseConnectedWalletType, ac as TelegramAuthFlowState } from './types-
|
|
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, 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-
|
|
3
|
+
import { g as UserRecoveryMethod, c as SessionSignerInput, P as PrivyFarcasterSignerInitResponse, M as MfaSubmitArgs, E as EthereumRpcRequestType, h as SolanaRpcRequestType, i as EthereumRpcResponseType, j as SolanaRpcResponseType, k as EIP1193Provider, l as EntropyIdVerifier$1, H as HDWalletWithMetadata, m as RequestArguments, n as WalletConnector, B as BaseConnectedEthereumWallet, o as PrivyProxyProvider, p as WalletClientType, q as ConnectedWalletMetadata, r as PrivyClientConfig, s as ConnectorType, u as SetBaseAccountSdkType, v as WalletListEntry, A as AppConfig, w as BaseConnectedWallet, f as SolanaWalletConnector, U as User, x as ConnectWalletModalOptions, y as LoginModalOptions, C as CreateWalletOptions, W as Wallet, z as SetWalletRecoveryOptions, b as SignMessageModalUIOptions, D as SignTypedDataParams, F as MfaMethod, G as UnsignedTransactionRequest, a as SendTransactionModalUIOptions, I as FundWalletConfig, J as ConnectedWallet, O as OAuthTokens, K as CrossAppProviderDetails, N as MoonpaySignRequest, Q as MoonpaySignResponse, T as SmartWalletConfig, V as SiwsMessageType, X as LoginMethod, Y as ExternalWalletMetadata, Z as TelegramAuthResult, _ as TelegramWebAppData, $ as OAuthUserInfo, a0 as PrivyErrorCode, a1 as LinkedAccountWithMetadata, a2 as BaseConnectedSolanaWallet, a3 as FundingMethod, S as SolanaChain, a4 as OAuthFlowState, a5 as LoginWithCode, a6 as OtpFlowState, a7 as PasskeyFlowState, a8 as SiweFlowState, a9 as BaseAccountSdkType, aa as UnsignedTransactionRequestWithChainId, ab as BaseConnectedWalletType, ac as TelegramAuthFlowState } from './types-C97UOzaM.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, 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-C97UOzaM.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';
|
|
@@ -1535,6 +1535,11 @@ interface PrivyInterface {
|
|
|
1535
1535
|
* This will directly initiate the OAuth flow for Twitter.
|
|
1536
1536
|
*/
|
|
1537
1537
|
linkTwitter: () => void;
|
|
1538
|
+
/**
|
|
1539
|
+
* For users who are authenticated, prompts the user to link a Twitch OAuth account
|
|
1540
|
+
* This will directly initiate the OAuth flow for Twitch.
|
|
1541
|
+
*/
|
|
1542
|
+
linkTwitch: () => void;
|
|
1538
1543
|
/**
|
|
1539
1544
|
* For users who are authenticated, prompts the user to link Discord OAuth account
|
|
1540
1545
|
* This will directly initiate the OAuth flow for Discord.
|
|
@@ -1654,6 +1659,13 @@ interface PrivyInterface {
|
|
|
1654
1659
|
* @returns Promise for the {@link User} object after the provided Twitter account has been unlinked
|
|
1655
1660
|
*/
|
|
1656
1661
|
unlinkTwitter: (subject: string) => Promise<User>;
|
|
1662
|
+
/**
|
|
1663
|
+
* Unlink a Twitch social account from a user, by passing the Twitch subject ID. Note that you can only unlink a social account if the user has at least one other account.
|
|
1664
|
+
*
|
|
1665
|
+
* @param subject {string} twitch account's subject ID
|
|
1666
|
+
* @returns Promise for the {@link User} object after the provided Twitch account has been unlinked
|
|
1667
|
+
*/
|
|
1668
|
+
unlinkTwitch: (subject: string) => Promise<User>;
|
|
1657
1669
|
/**
|
|
1658
1670
|
* Unlink a Discord social account from a user, by passing the discord subject ID. Note that you can only unlink a social account if the user has at least one other account.
|
|
1659
1671
|
*
|
|
@@ -2343,6 +2355,14 @@ interface ResponseOAuthLine {
|
|
|
2343
2355
|
first_verified_at: number | null;
|
|
2344
2356
|
latest_verified_at: number | null;
|
|
2345
2357
|
}
|
|
2358
|
+
interface ResponseOAuthTwitch {
|
|
2359
|
+
type: 'twitch_oauth';
|
|
2360
|
+
subject: string;
|
|
2361
|
+
username: string | null;
|
|
2362
|
+
verified_at: number;
|
|
2363
|
+
first_verified_at: number | null;
|
|
2364
|
+
latest_verified_at: number | null;
|
|
2365
|
+
}
|
|
2346
2366
|
interface ResponseOAuthLinkedIn {
|
|
2347
2367
|
type: 'linkedin_oauth';
|
|
2348
2368
|
subject: string;
|
|
@@ -2416,7 +2436,7 @@ interface ResponseCrossAppAccount {
|
|
|
2416
2436
|
first_verified_at: number | null;
|
|
2417
2437
|
latest_verified_at: number | null;
|
|
2418
2438
|
}
|
|
2419
|
-
type LinkedAccountsResponseType = Array<ResponseEmailAccount | ResponsePhoneAccount | ResponseEthereumAccount | ResponseSmartWalletAccount | ResponseSolanaAccount | ResponseOAuthGoogle | ResponseOAuthTwitter | ResponseOAuthDiscord | ResponseOAuthGithub | ResponseOAuthSpotify | ResponseOAuthInstagram | ResponseOAuthTiktok | ResponseOAuthLine | ResponseOAuthLinkedIn | ResponseOAuthApple | ResponseOAuthCustom | ResponseCustomJwtAccount | ResponseFarcasterAccount | ResponsePasskeyAccount | ResponseTelegramAccount | ResponseCrossAppAccount>;
|
|
2439
|
+
type LinkedAccountsResponseType = Array<ResponseEmailAccount | ResponsePhoneAccount | ResponseEthereumAccount | ResponseSmartWalletAccount | ResponseSolanaAccount | ResponseOAuthGoogle | ResponseOAuthTwitter | ResponseOAuthDiscord | ResponseOAuthGithub | ResponseOAuthSpotify | ResponseOAuthInstagram | ResponseOAuthTiktok | ResponseOAuthLine | ResponseOAuthTwitch | ResponseOAuthLinkedIn | ResponseOAuthApple | ResponseOAuthCustom | ResponseCustomJwtAccount | ResponseFarcasterAccount | ResponsePasskeyAccount | ResponseTelegramAccount | ResponseCrossAppAccount>;
|
|
2420
2440
|
interface ResponseSmsMfaMethod {
|
|
2421
2441
|
type: 'sms';
|
|
2422
2442
|
verified_at: number;
|
|
@@ -3631,6 +3651,7 @@ declare function useRegisterMfaListener(callbacks: PrivyEvents['configureMfa']):
|
|
|
3631
3651
|
* @returns linkGoogle - immediately redirects to Google login page and prompts the user to link their account
|
|
3632
3652
|
* @returns linkApple - immediately redirects to Apple login page and prompts the user to link their account
|
|
3633
3653
|
* @returns linkTwitter - immediately redirects to Twitter login page and prompts the user to link their account
|
|
3654
|
+
* @returns linkTwitch - immediately redirects to Twitch login page and prompts the user to link their account
|
|
3634
3655
|
* @returns linkDiscord - immediately redirects to Discord login page and prompts the user to link their account
|
|
3635
3656
|
* @returns linkGithub - immediately redirects to Github login page and prompts the user to link their account
|
|
3636
3657
|
* @returns linkLinkedIn - immediately redirects to LinkedIn login page and prompts the user to link their account
|
|
@@ -3649,6 +3670,7 @@ declare function useLinkAccount(callbacks?: PrivyEvents['linkAccount']): {
|
|
|
3649
3670
|
linkGoogle: () => void;
|
|
3650
3671
|
linkApple: () => void;
|
|
3651
3672
|
linkTwitter: () => void;
|
|
3673
|
+
linkTwitch: () => void;
|
|
3652
3674
|
linkDiscord: () => void;
|
|
3653
3675
|
linkGithub: () => void;
|
|
3654
3676
|
linkLinkedIn: () => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import react__default from 'react';
|
|
3
|
-
import { a as SendTransactionModalUIOptions, b as SignMessageModalUIOptions } from './types-
|
|
3
|
+
import { a as SendTransactionModalUIOptions, b as SignMessageModalUIOptions } from './types-C97UOzaM.js';
|
|
4
4
|
import { SmartAccountClient } from 'permissionless';
|
|
5
5
|
import { SendTransactionParameters, Chain, Hash, SignableMessage, Hex, TypedData, SignTypedDataParameters, EIP1193Provider, PublicClient, HttpTransport, WalletClient, PaymasterRpcSchema } from 'viem';
|
|
6
6
|
import { SmartAccount, SendUserOperationParameters } from 'viem/account-abstraction';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import react__default from 'react';
|
|
3
|
-
import { a as SendTransactionModalUIOptions, b as SignMessageModalUIOptions } from './types-
|
|
3
|
+
import { a as SendTransactionModalUIOptions, b as SignMessageModalUIOptions } from './types-C97UOzaM.js';
|
|
4
4
|
import { SmartAccountClient } from 'permissionless';
|
|
5
5
|
import { SendTransactionParameters, Chain, Hash, SignableMessage, Hex, TypedData, SignTypedDataParameters, EIP1193Provider, PublicClient, HttpTransport, WalletClient, PaymasterRpcSchema } from 'viem';
|
|
6
6
|
import { SmartAccount, SendUserOperationParameters } from 'viem/account-abstraction';
|
package/dist/dts/solana.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as SessionSignerInput, W as Wallet, b as SignMessageModalUIOptions, S as SolanaChain, d as SolanaStandardWallet, C as CreateWalletOptions, a as SendTransactionModalUIOptions, e as SolanaFundingConfig } from './types-
|
|
2
|
-
export { f as SolanaAdapterConnector, t as toSolanaWalletConnectors } from './types-
|
|
1
|
+
import { c as SessionSignerInput, W as Wallet, b as SignMessageModalUIOptions, S as SolanaChain, d as SolanaStandardWallet, C as CreateWalletOptions, a as SendTransactionModalUIOptions, e as SolanaFundingConfig } from './types-C97UOzaM.js';
|
|
2
|
+
export { f as SolanaAdapterConnector, t as toSolanaWalletConnectors } from './types-C97UOzaM.js';
|
|
3
3
|
import { SolanaSignAndSendTransactionFeature, SolanaSignTransactionFeature, SolanaSignMessageFeature } from '@solana/wallet-standard-features';
|
|
4
4
|
import { WalletAccount, WalletIcon, WalletVersion } from '@wallet-standard/base';
|
|
5
5
|
import { StandardConnectFeature, StandardDisconnectFeature, StandardEventsFeature } from '@wallet-standard/features';
|
package/dist/dts/solana.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as SessionSignerInput, W as Wallet, b as SignMessageModalUIOptions, S as SolanaChain, d as SolanaStandardWallet, C as CreateWalletOptions, a as SendTransactionModalUIOptions, e as SolanaFundingConfig } from './types-
|
|
2
|
-
export { f as SolanaAdapterConnector, t as toSolanaWalletConnectors } from './types-
|
|
1
|
+
import { c as SessionSignerInput, W as Wallet, b as SignMessageModalUIOptions, S as SolanaChain, d as SolanaStandardWallet, C as CreateWalletOptions, a as SendTransactionModalUIOptions, e as SolanaFundingConfig } from './types-C97UOzaM.js';
|
|
2
|
+
export { f as SolanaAdapterConnector, t as toSolanaWalletConnectors } from './types-C97UOzaM.js';
|
|
3
3
|
import { SolanaSignAndSendTransactionFeature, SolanaSignTransactionFeature, SolanaSignMessageFeature } from '@solana/wallet-standard-features';
|
|
4
4
|
import { WalletAccount, WalletIcon, WalletVersion } from '@wallet-standard/base';
|
|
5
5
|
import { StandardConnectFeature, StandardDisconnectFeature, StandardEventsFeature } from '@wallet-standard/features';
|