@privy-io/react-auth 2.4.3 → 2.4.5
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/abstract-smart-wallets.js +1 -1
- package/dist/cjs/{importWallet-BvzASqsr.js → importWallet-DbohmIiw.js} +1 -1
- package/dist/cjs/index.js +21 -21
- package/dist/cjs/{prepareFundingModalData-C8wPeHar.js → prepareFundingModalData-BdtVxCug.js} +1 -1
- package/dist/cjs/{smart-wallets-DlC_5Y5l.js → smart-wallets-DR6SCvrN.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/useActiveWallet-BmSLq25D.js +5 -0
- package/dist/cjs/{useFundWallet-2Ezrz28N.js → useFundWallet-DNBXOQPj.js} +1 -1
- package/dist/cjs/useWallets-C7Zst89H.js +1 -0
- package/dist/dts/farcaster.d.mts +1 -1
- package/dist/dts/farcaster.d.ts +1 -1
- package/dist/dts/index.d.mts +8 -9
- package/dist/dts/index.d.ts +8 -9
- package/dist/dts/smart-wallets.d.mts +1 -1
- package/dist/dts/smart-wallets.d.ts +1 -1
- package/dist/dts/solana.d.mts +4 -4
- package/dist/dts/solana.d.ts +4 -4
- package/dist/dts/{types-CjeWF_LJ.d.mts → types-BKBPK3tN.d.mts} +4 -2
- package/dist/dts/{types-CjeWF_LJ.d.ts → types-BKBPK3tN.d.ts} +4 -2
- package/dist/dts/ui.d.mts +1 -1
- package/dist/dts/ui.d.ts +1 -1
- package/dist/dts/{useSolanaWallets-CXnYSqQR.d.mts → useSolanaWallets-BkzftCx7.d.mts} +1 -1
- package/dist/dts/{useSolanaWallets-CXnYSqQR.d.ts → useSolanaWallets-BkzftCx7.d.ts} +1 -1
- package/dist/esm/abstract-smart-wallets.mjs +1 -1
- package/dist/esm/{importWallet-DfwAobLp.mjs → importWallet-ylHVDCXz.mjs} +1 -1
- package/dist/esm/index.mjs +21 -21
- package/dist/esm/{prepareFundingModalData-R09VUVWm.mjs → prepareFundingModalData-CsN1TYQy.mjs} +1 -1
- package/dist/esm/{smart-wallets-BKO_VzqX.mjs → smart-wallets-gIJUc6-6.mjs} +1 -1
- package/dist/esm/smart-wallets.mjs +1 -1
- package/dist/esm/solana.mjs +1 -1
- package/dist/esm/ui.mjs +2 -2
- package/dist/esm/useActiveWallet-DvvTjRH_.mjs +5 -0
- package/dist/esm/{useFundWallet-vjrQZZWa.mjs → useFundWallet-DS1kytse.mjs} +1 -1
- package/dist/esm/useWallets-8w3LVxdW.mjs +1 -0
- package/package.json +6 -6
- package/dist/cjs/useActiveWallet-DUvjidjw.js +0 -5
- package/dist/cjs/useWallets-DobnZGpT.js +0 -1
- package/dist/esm/useActiveWallet-CRQOoJef.mjs +0 -5
- package/dist/esm/useWallets-Bm3b-V02.mjs +0 -1
package/dist/esm/{prepareFundingModalData-R09VUVWm.mjs → prepareFundingModalData-CsN1TYQy.mjs}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as e,j as t,l as n,u as a,P as s}from"./internal-context-DBDJ7qsa.mjs";import r from"eventemitter3";import{ProviderErrors as o}from"@privy-io/js-sdk-core";import{d as i,E as c,u as d,M as l,am as u,an as h,ao as p,ap as g,Q as f,aq as m,U as y,ar as C,X as w,as as E,T as b,at as S,ai as T,au as v,Y as A,av as _}from"./useWallets-Bm3b-V02.mjs";import{createContext as D,useEffect as R,useContext as x,useRef as O,useCallback as I,useState as W}from"react";import{jsx as F}from"react/jsx-runtime";import{ofetch as N}from"ofetch";class U{get(e){let t=localStorage.getItem(e);return null===t?void 0:JSON.parse(t)}put(e,t){void 0!==t?localStorage.setItem(e,JSON.stringify(t)):this.del(e)}del(e){localStorage.removeItem(e)}getKeys(){return Object.entries(localStorage).map((([e])=>e))}}function M(){try{let e="privy:__session_storage__test",t=new U;return t.put(e,"blobby"),t.del(e),!0}catch(e){return!1}}var P="undefined"!=typeof window&&window.localStorage?new U:new class{get(e){return this._cache[e]}put(e,t){void 0!==t?this._cache[e]=t:this.del(e)}del(e){delete this._cache[e]}getKeys(){return Object.keys(this._cache)}constructor(){this._cache={}}};class L extends e{constructor(){super("Wallet timeout"),this.type="wallet_error"}}class k extends e{constructor(){super("User rejected connection"),this.type="wallet_error"}}const B=t=>t instanceof e?t:t?.code?new $(t):new e("Unknown connector error",t);class j extends t{constructor(e,t,n){super(e),this.type="provider_error",this.code=t,this.data=n}}class $ extends j{constructor(e){super(e.message,e.code,e.data);let t=Object.values(o).find((t=>t.eipCode===e.code));this.details=t||o.UNKNOWN_ERROR,-32002===e.code&&(e.message?.includes("already pending for origin")?e.message?.includes("wallet_requestPermissions")?this.details=o.E32002_CONNECTION_ALREADY_PENDING:this.details=o.E32002_REQUEST_ALREADY_PENDING:e.message?.includes("Already processing")&&e.message.includes("eth_requestAccounts")&&(this.details=o.E32002_WALLET_LOCKED))}}const q={ERROR_USER_EXISTS:{message:"User already exists for this address",detail:"Try another address!",retryable:!1},ERROR_TIMED_OUT:{message:"Wallet request timed out",detail:"Please try connecting again.",retryable:!0},ERROR_WALLET_CONNECTION:{message:"Could not log in with wallet",detail:"Please try connecting again.",retryable:!0},ERROR_USER_REJECTED_CONNECTION:{message:"You rejected the request",detail:"Please try connecting again.",retryable:!0},ERROR_USER_LIMIT_REACHED:{message:"Unable to link",detail:"You've reached the maximum number of linked wallets.",retryable:!1},...o};class K extends r{constructor(e){super(),this.walletClientType=e,this.connected=!1,this.initialized=!1}}const z=()=>{let e=P.get(i);return e&&Array.isArray(e)&&e.map((e=>(e=>e&&"string"==typeof e.address&&"string"==typeof e.connectorType&&"string"==typeof e.walletClientType&&"number"==typeof e.connectedAt)(e))).every(Boolean)?e:[]};let G=["phantom","glow","solflare","backpack","okx_wallet"];function Y(e){return"solana"===e.chainType}function H(e){return"solana"===e.type}class J extends K{get isInstalled(){return"Installed"===this.adapter.readyState}buildConnectedWallet(e,t){let a,s,r;if("Installed"!==e.readyState||!e.publicKey)throw Error("Wallet is not connected.");return"signMessage"in e&&(a=async(...t)=>{if(!e.connected)throw Error("Wallet is not connected.");return await e.signMessage(t[0])}),"sendTransaction"in e&&(s=async(...t)=>await e.sendTransaction(t[0],t[1],t[2])),"signTransaction"in e&&(r=async t=>await e.signTransaction(t)),{type:"solana",address:e.publicKey.toBase58(),meta:t,imported:!1,connectedAt:Date.now(),walletClientType:this.walletClientType,connectorType:this.connectorType,isConnected:async()=>e.connected,disconnect:()=>{try{e.disconnect()}catch(e){console.error("Wallet does not support programmatic disconnect")}},getProvider:n(`${this.walletClientType||""} wallet does not support 'getProvider'`),signMessage:a??n(`${this.walletClientType||""} wallet does not support 'signMessage'`),sendTransaction:s??n(`${this.walletClientType||""} wallet does not support 'sendTransaction'`),signTransaction:r??n(`${this.walletClientType||""} wallet does not support 'signTransaction'`)}}async syncAccounts(){if("Installed"===this.adapter.readyState&&this.adapter.publicKey){let e={name:this.walletBranding.name,icon:"string"==typeof this.walletBranding.icon?this.walletBranding.icon:void 0,id:this.walletBranding.id};this.wallets.find((e=>this.adapter.publicKey&&e.address===this.adapter.publicKey.toBase58()))||(this.wallets=[this.buildConnectedWallet(this.adapter,e)],this.emit("walletsUpdated"))}else this.wallets.length>0&&(this.wallets=[],this.emit("walletsUpdated"))}get walletBranding(){return{id:this.adapter.name,name:this.adapter.name,icon:this.adapter.icon}}async initialize(){this.subscribeListeners(),await this.syncAccounts(),this.shouldAttemptAutoConnect()&&await this.adapter.autoConnect().catch((()=>{})),this.initialized=!0,this.emit("initialized")}async connect(e){return e.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}async getConnectedWallet(){return this.wallets.sort(((e,t)=>t.connectedAt-e.connectedAt))[0]||null}async isConnected(){return this.adapter.connected&&["Installed"].includes(this.adapter.readyState)}subscribeListeners(){this.adapter.addListener("disconnect",this.onDisconnect),this.adapter.addListener("connect",this.onConnect),this.adapter.addListener("error",this.onError),this.adapter.addListener("readyStateChange",this.onReadyStateChange)}unsubscribeListeners(){this.adapter.removeAllListeners()}shouldAttemptAutoConnect(){return!(!this.autoConnectEnabled||!G.includes(this.walletClientType))&&("phantom"!==this.walletClientType||z().some((({walletClientType:e})=>"phantom"===e)))}constructor(e,t){super(function(e){return e.name.toLowerCase().split(" ").join("_")}(e)),this.chainType="solana",this.connectorType="solana_adapter",this.disconnect=()=>{this.adapter.disconnect().then((()=>this.onDisconnect())).catch((e=>console.error("Error disconnecting",e)))},this.promptConnection=async()=>{try{await this.adapter.connect()}catch(e){throw B(e)}},this.onDisconnect=()=>{this.syncAccounts()},this.onConnect=e=>{this.syncAccounts()},this.onError=e=>{this.syncAccounts()},this.onReadyStateChange=e=>{"Installed"!==e&&(this.connected=!1),this.syncAccounts()},this.adapter=e,this.autoConnectEnabled=t,this.wallets=[]}}const Q={login:{onComplete:[],onError:[]},logout:{onSuccess:[]},connectWallet:{onSuccess:[],onError:[]},createWallet:{onSuccess:[],onError:[]},linkAccount:{onSuccess:[],onError:[]},update:{onSuccess:[],onError:[]},configureMfa:{onMfaRequired:[]},setWalletPassword:{onSuccess:[],onError:[]},setWalletRecovery:{onSuccess:[],onError:[]},signMessage:{onSuccess:[],onError:[]},signTypedData:{onSuccess:[],onError:[]},sendTransaction:{onSuccess:[],onError:[]},signTransaction:{onSuccess:[],onError:[]},signSolanaTransaction:{onSuccess:[],onError:[]},signSolanaMessage:{onSuccess:[],onError:[]},sendSolanaTransaction:{onSuccess:[],onError:[]},accessToken:{onAccessTokenGranted:[],onAccessTokenRemoved:[]},oAuthAuthorization:{onOAuthTokenGrant:[]},fundWallet:{onUserExited:[]},fundSolanaWallet:{onUserExited:[]},customAuth:{onAuthenticated:[],onUnauthenticated:[]}},X=/*#__PURE__*/D(void 0);let V=()=>x(X);function Z(e,t){if(!t)return;let n=V().current[e];return R((()=>{for(let[a,s]of Object.entries(t))Object.prototype.hasOwnProperty.call(n,a)||console.warn(`Invalid event type "${a}" for action "${e}"`),n[a]?.push(s);return()=>{for(let[a,s]of Object.entries(t))Object.prototype.hasOwnProperty.call(n,a)||console.warn(`Invalid event type "${a}" for action "${e}"`),n[a]=n[a]?.filter((e=>e!==s))}}),[t])}function ee(e,t,n,...a){for(let s of e.current[t][n])s(...a)}function te(){let e=V();return(t,n,...a)=>ee(e,t,n,...a)}const ne="sdk_fiat_on_ramp_completed_with_status";let ae=/*#__PURE__*/D({plugins:{current:{}}});const se=({children:e})=>{let t=O({});/*#__PURE__*/return F(ae.Provider,{value:{plugins:t},children:e})},re=(...e)=>{let{plugins:t}=x(ae);R((()=>{for(let n of e)t.current[n.id]=n;return()=>{for(let n of e)delete t.current[n.id]}}),[t])},oe=()=>{let{plugins:e}=x(ae);return I((t=>e.current[t]),[e])},ie=Symbol("solana-funding-plugin"),ce=()=>{let{exportSolanaWallet:e,createEmbeddedSolanaWallet:t,solanaWallets:n,embeddedSolanaWallets:s}=a(),{ready:r}=c();return{ready:r,createWallet:t,exportWallet:e,wallets:n.concat(s??[])}};function de(e){let t=new RegExp(RegExp("^eip155:(?<chainId>\\d+)$","gm")),n=t.exec(e)?.groups?.chainId;if(n)return parseInt(n);throw Error("Chain ID not compatible with CAIP-2 format.")}const le=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)))),ue="moonpay";function he(e){return parseFloat(e)}function pe(e){return!!e&&void 0!==e.config&&void 0!==e.provider}function ge(e){return!!e&&(void 0!==e.chain||void 0!==e.amount)}function fe(e,t=!1){let[n,s]=W(null),{createAnalyticsEvent:r}=a(),{data:o,navigate:i,setModalData:c}=d(),f=o?.funding,m=O(0);return R((()=>{let n=setInterval((async()=>{if(e)try{let[a]=await async function(e,t){return N(`${t?u:h}/transactions/ext/${e}`,{query:{apiKey:t?p:g}})}(e,t),o="waitingAuthorization"===a.status&&"credit_debit_card"===a.paymentMethod?"pending":a.status;if(["failed","completed","awaitingAuthorization"].includes(o)&&(r({eventName:ne,payload:{status:o,provider:ue,paymentMethod:a.paymentMethod,cardPaymentType:a.cardPaymentType,currency:a.currency?.code,baseCurrencyAmount:a.baseCurrencyAmount,quoteCurrencyAmount:a.quoteCurrencyAmount,feeAmount:a.feeAmount,extraFeeAmount:a.extraFeeAmount,networkFeeAmount:a.networkFeeAmount,isSandbox:t}}),clearInterval(n)),"failed"===o||"serviceFailure"===o)return c({funding:{...f,errorMessage:"Something went wrong adding funds from Moonpay. Please try again or use another method to fund your wallet."}}),void i(l.FUNDING_METHOD_SELECTION_SCREEN);s(o)}catch(e){404!==e.response?.status&&(m.current+=1),m.current>=3&&(r({eventName:ne,payload:{status:"serviceFailure",provider:ue}}),clearInterval(n),c({funding:{...f,errorMessage:"Something went wrong adding funds from Moonpay. Please try again or use another method to fund your wallet."}}),i(l.FUNDING_METHOD_SELECTION_SCREEN))}}),3e3);return()=>clearInterval(n)}),[e,m]),n}const me={[f.id]:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",[m.id]:"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",[y.id]:"0x0b2c639c533813f4aa9d7837caf62653d097ff85",[C.id]:"0x5fd84259d66Cd46123540766Be93DFE6D43130D7",[w.id]:"0x3c499c542cef5e3811e1192ce70d8cc03d5c3359",[E.id]:"0x41e94eb019c0762f9bfcf9fb1e58725bfb0e7582",[b.id]:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",[S.id]:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",[T.id]:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",[v.id]:"0x5425890298aed601595a70ab815c96711a31bc65",[A.id]:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",[_.id]:"0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d"},ye=({address:e,appConfig:t,fundWalletConfig:n,methodScreen:a,chainIdOverride:r,comingFromSendTransactionScreen:o=!1})=>{let i,c;if(!t.fundingConfig)throw Error("Wallet funding is not enabled");let d=le(t.fundingConfig.options);if(d.length<1)throw Error("Wallet funding is not enabled");i=r||(ge(n)&&n.chain?n.chain.id:de(t.fundingConfig.defaultRecommendedCurrency.chain));let l=t.chains.find((e=>e.id===i));if(!l)throw new s(`Funding chain ${i} is not in PrivyProvider chains list`);let u=ge(n)&&n.amount?n.amount:t.fundingConfig.defaultRecommendedAmount,h=!1;function p(){if(!i)return;let e=me[i];d.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."),c=e,h=!0}ge(n)&&"asset"in n?"USDC"===n.asset?p():"string"!=typeof n.asset&&"erc20"in n.asset&&(h=((e,t)=>e===me[t.id])(c=n.asset.erc20,l)):"USDC"===t.fundingConfig.defaultRecommendedCurrency.asset&&p();let g=n?.defaultFundingMethod;return{chainType:"ethereum",address:e,amount:u,chain:l,erc20Address:c,erc20ContractInfo:h?{symbol:"USDC",decimals:6}:void 0,isUSDC:h,methodScreen:a,supportedOptions:d,comingFromSendTransactionScreen:o,defaultFundingMethod:g,usingDefaultFundingMethod:!!g,preferredCardProvider:n?.card?.preferredProvider,crossChainBridgingEnabled:t.fundingConfig.crossChainBridgingEnabled??!1,cluster:{name:"mainnet-beta",rpcUrl:t.solanaClusters["mainnet-beta"]},...pe(n)?{moonpayConfigOverride:n.config}:{}}};function Ce({address:e,fundWalletConfig:t,appConfig:n,comingFromSendTransactionScreen:a,methodScreen:s}){if(!n.fundingConfig)throw Error("Wallet funding is not enabled");let r=le(n.fundingConfig.options);if(r.length<1)throw Error("Wallet funding is not enabled");let o=t?.amount??n.fundingConfig.defaultRecommendedAmount,i=t?.defaultFundingMethod;return{chainType:"solana",address:e,supportedOptions:r,amount:o,isUSDC:!1,methodScreen:s,comingFromSendTransactionScreen:a,cluster:{name:t?.cluster?.name??"mainnet-beta",rpcUrl:n.solanaClusters[t?.cluster?.name??"mainnet-beta"]},crossChainBridgingEnabled:n.fundingConfig.crossChainBridgingEnabled??!1,defaultFundingMethod:i,preferredCardProvider:t?.card?.preferredProvider,usingDefaultFundingMethod:!!i}}export{q as C,ne as O,$ as P,J as S,k as U,K as W,Y as a,oe as b,ie as c,ce as d,M as e,B as f,he as g,fe as h,P as i,j,te as k,z as l,le as m,se as n,ee as o,Q as p,Ce as q,ye as r,X as s,H as t,Z as u,de as v,L as w,re as x};
|
|
1
|
+
import{b as e,j as t,l as n,u as a,P as s}from"./internal-context-DBDJ7qsa.mjs";import r from"eventemitter3";import{ProviderErrors as o}from"@privy-io/js-sdk-core";import{d as i,E as c,u as d,M as l,am as u,an as h,ao as p,ap as g,Q as f,aq as m,U as y,ar as C,X as w,as as E,T as b,at as S,ai as T,au as v,Y as A,av as _}from"./useWallets-8w3LVxdW.mjs";import{createContext as D,useEffect as R,useContext as x,useRef as O,useCallback as I,useState as W}from"react";import{jsx as F}from"react/jsx-runtime";import{ofetch as N}from"ofetch";class U{get(e){let t=localStorage.getItem(e);return null===t?void 0:JSON.parse(t)}put(e,t){void 0!==t?localStorage.setItem(e,JSON.stringify(t)):this.del(e)}del(e){localStorage.removeItem(e)}getKeys(){return Object.entries(localStorage).map((([e])=>e))}}function M(){try{let e="privy:__session_storage__test",t=new U;return t.put(e,"blobby"),t.del(e),!0}catch(e){return!1}}var P="undefined"!=typeof window&&window.localStorage?new U:new class{get(e){return this._cache[e]}put(e,t){void 0!==t?this._cache[e]=t:this.del(e)}del(e){delete this._cache[e]}getKeys(){return Object.keys(this._cache)}constructor(){this._cache={}}};class L extends e{constructor(){super("Wallet timeout"),this.type="wallet_error"}}class k extends e{constructor(){super("User rejected connection"),this.type="wallet_error"}}const B=t=>t instanceof e?t:t?.code?new $(t):new e("Unknown connector error",t);class j extends t{constructor(e,t,n){super(e),this.type="provider_error",this.code=t,this.data=n}}class $ extends j{constructor(e){super(e.message,e.code,e.data);let t=Object.values(o).find((t=>t.eipCode===e.code));this.details=t||o.UNKNOWN_ERROR,-32002===e.code&&(e.message?.includes("already pending for origin")?e.message?.includes("wallet_requestPermissions")?this.details=o.E32002_CONNECTION_ALREADY_PENDING:this.details=o.E32002_REQUEST_ALREADY_PENDING:e.message?.includes("Already processing")&&e.message.includes("eth_requestAccounts")&&(this.details=o.E32002_WALLET_LOCKED))}}const q={ERROR_USER_EXISTS:{message:"User already exists for this address",detail:"Try another address!",retryable:!1},ERROR_TIMED_OUT:{message:"Wallet request timed out",detail:"Please try connecting again.",retryable:!0},ERROR_WALLET_CONNECTION:{message:"Could not log in with wallet",detail:"Please try connecting again.",retryable:!0},ERROR_USER_REJECTED_CONNECTION:{message:"You rejected the request",detail:"Please try connecting again.",retryable:!0},ERROR_USER_LIMIT_REACHED:{message:"Unable to link",detail:"You've reached the maximum number of linked wallets.",retryable:!1},...o};class K extends r{constructor(e){super(),this.walletClientType=e,this.connected=!1,this.initialized=!1}}const z=()=>{let e=P.get(i);return e&&Array.isArray(e)&&e.map((e=>(e=>e&&"string"==typeof e.address&&"string"==typeof e.connectorType&&"string"==typeof e.walletClientType&&"number"==typeof e.connectedAt)(e))).every(Boolean)?e:[]};let G=["phantom","glow","solflare","backpack","okx_wallet"];function Y(e){return"solana"===e.chainType}function H(e){return"solana"===e.type}class J extends K{get isInstalled(){return"Installed"===this.adapter.readyState}buildConnectedWallet(e,t){let a,s,r;if("Installed"!==e.readyState||!e.publicKey)throw Error("Wallet is not connected.");return"signMessage"in e&&(a=async(...t)=>{if(!e.connected)throw Error("Wallet is not connected.");return await e.signMessage(t[0])}),"sendTransaction"in e&&(s=async(...t)=>await e.sendTransaction(t[0],t[1],t[2])),"signTransaction"in e&&(r=async t=>await e.signTransaction(t)),{type:"solana",address:e.publicKey.toBase58(),meta:t,imported:!1,connectedAt:Date.now(),walletClientType:this.walletClientType,connectorType:this.connectorType,isConnected:async()=>e.connected,disconnect:()=>{try{e.disconnect()}catch(e){console.error("Wallet does not support programmatic disconnect")}},getProvider:n(`${this.walletClientType||""} wallet does not support 'getProvider'`),signMessage:a??n(`${this.walletClientType||""} wallet does not support 'signMessage'`),sendTransaction:s??n(`${this.walletClientType||""} wallet does not support 'sendTransaction'`),signTransaction:r??n(`${this.walletClientType||""} wallet does not support 'signTransaction'`)}}async syncAccounts(){if("Installed"===this.adapter.readyState&&this.adapter.publicKey){let e={name:this.walletBranding.name,icon:"string"==typeof this.walletBranding.icon?this.walletBranding.icon:void 0,id:this.walletBranding.id};this.wallets.find((e=>this.adapter.publicKey&&e.address===this.adapter.publicKey.toBase58()))||(this.wallets=[this.buildConnectedWallet(this.adapter,e)],this.emit("walletsUpdated"))}else this.wallets.length>0&&(this.wallets=[],this.emit("walletsUpdated"))}get walletBranding(){return{id:this.adapter.name,name:this.adapter.name,icon:this.adapter.icon}}async initialize(){this.subscribeListeners(),await this.syncAccounts(),this.shouldAttemptAutoConnect()&&await this.adapter.autoConnect().catch((()=>{})),this.initialized=!0,this.emit("initialized")}async connect(e){return e.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}async getConnectedWallet(){return this.wallets.sort(((e,t)=>t.connectedAt-e.connectedAt))[0]||null}async isConnected(){return this.adapter.connected&&["Installed"].includes(this.adapter.readyState)}subscribeListeners(){this.adapter.addListener("disconnect",this.onDisconnect),this.adapter.addListener("connect",this.onConnect),this.adapter.addListener("error",this.onError),this.adapter.addListener("readyStateChange",this.onReadyStateChange)}unsubscribeListeners(){this.adapter.removeAllListeners()}shouldAttemptAutoConnect(){return!(!this.autoConnectEnabled||!G.includes(this.walletClientType))&&("phantom"!==this.walletClientType||z().some((({walletClientType:e})=>"phantom"===e)))}constructor(e,t){super(function(e){return e.name.toLowerCase().split(" ").join("_")}(e)),this.chainType="solana",this.connectorType="solana_adapter",this.disconnect=()=>{this.adapter.disconnect().then((()=>this.onDisconnect())).catch((e=>console.error("Error disconnecting",e)))},this.promptConnection=async()=>{try{await this.adapter.connect()}catch(e){throw B(e)}},this.onDisconnect=()=>{this.syncAccounts()},this.onConnect=e=>{this.syncAccounts()},this.onError=e=>{this.syncAccounts()},this.onReadyStateChange=e=>{"Installed"!==e&&(this.connected=!1),this.syncAccounts()},this.adapter=e,this.autoConnectEnabled=t,this.wallets=[]}}const Q={login:{onComplete:[],onError:[]},logout:{onSuccess:[]},connectWallet:{onSuccess:[],onError:[]},createWallet:{onSuccess:[],onError:[]},linkAccount:{onSuccess:[],onError:[]},update:{onSuccess:[],onError:[]},configureMfa:{onMfaRequired:[]},setWalletPassword:{onSuccess:[],onError:[]},setWalletRecovery:{onSuccess:[],onError:[]},signMessage:{onSuccess:[],onError:[]},signTypedData:{onSuccess:[],onError:[]},sendTransaction:{onSuccess:[],onError:[]},signTransaction:{onSuccess:[],onError:[]},signSolanaTransaction:{onSuccess:[],onError:[]},signSolanaMessage:{onSuccess:[],onError:[]},sendSolanaTransaction:{onSuccess:[],onError:[]},accessToken:{onAccessTokenGranted:[],onAccessTokenRemoved:[]},oAuthAuthorization:{onOAuthTokenGrant:[]},fundWallet:{onUserExited:[]},fundSolanaWallet:{onUserExited:[]},customAuth:{onAuthenticated:[],onUnauthenticated:[]}},X=/*#__PURE__*/D(void 0);let V=()=>x(X);function Z(e,t){if(!t)return;let n=V().current[e];return R((()=>{for(let[a,s]of Object.entries(t))Object.prototype.hasOwnProperty.call(n,a)||console.warn(`Invalid event type "${a}" for action "${e}"`),n[a]?.push(s);return()=>{for(let[a,s]of Object.entries(t))Object.prototype.hasOwnProperty.call(n,a)||console.warn(`Invalid event type "${a}" for action "${e}"`),n[a]=n[a]?.filter((e=>e!==s))}}),[t])}function ee(e,t,n,...a){for(let s of e.current[t][n])s(...a)}function te(){let e=V();return(t,n,...a)=>ee(e,t,n,...a)}const ne="sdk_fiat_on_ramp_completed_with_status";let ae=/*#__PURE__*/D({plugins:{current:{}}});const se=({children:e})=>{let t=O({});/*#__PURE__*/return F(ae.Provider,{value:{plugins:t},children:e})},re=(...e)=>{let{plugins:t}=x(ae);R((()=>{for(let n of e)t.current[n.id]=n;return()=>{for(let n of e)delete t.current[n.id]}}),[t])},oe=()=>{let{plugins:e}=x(ae);return I((t=>e.current[t]),[e])},ie=Symbol("solana-funding-plugin"),ce=()=>{let{exportSolanaWallet:e,createEmbeddedSolanaWallet:t,solanaWallets:n,embeddedSolanaWallets:s}=a(),{ready:r}=c();return{ready:r,createWallet:t,exportWallet:e,wallets:n.concat(s??[])}};function de(e){let t=new RegExp(RegExp("^eip155:(?<chainId>\\d+)$","gm")),n=t.exec(e)?.groups?.chainId;if(n)return parseInt(n);throw Error("Chain ID not compatible with CAIP-2 format.")}const le=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)))),ue="moonpay";function he(e){return parseFloat(e)}function pe(e){return!!e&&void 0!==e.config&&void 0!==e.provider}function ge(e){return!!e&&(void 0!==e.chain||void 0!==e.amount)}function fe(e,t=!1){let[n,s]=W(null),{createAnalyticsEvent:r}=a(),{data:o,navigate:i,setModalData:c}=d(),f=o?.funding,m=O(0);return R((()=>{let n=setInterval((async()=>{if(e)try{let[a]=await async function(e,t){return N(`${t?u:h}/transactions/ext/${e}`,{query:{apiKey:t?p:g}})}(e,t),o="waitingAuthorization"===a.status&&"credit_debit_card"===a.paymentMethod?"pending":a.status;if(["failed","completed","awaitingAuthorization"].includes(o)&&(r({eventName:ne,payload:{status:o,provider:ue,paymentMethod:a.paymentMethod,cardPaymentType:a.cardPaymentType,currency:a.currency?.code,baseCurrencyAmount:a.baseCurrencyAmount,quoteCurrencyAmount:a.quoteCurrencyAmount,feeAmount:a.feeAmount,extraFeeAmount:a.extraFeeAmount,networkFeeAmount:a.networkFeeAmount,isSandbox:t}}),clearInterval(n)),"failed"===o||"serviceFailure"===o)return c({funding:{...f,errorMessage:"Something went wrong adding funds from Moonpay. Please try again or use another method to fund your wallet."}}),void i(l.FUNDING_METHOD_SELECTION_SCREEN);s(o)}catch(e){404!==e.response?.status&&(m.current+=1),m.current>=3&&(r({eventName:ne,payload:{status:"serviceFailure",provider:ue}}),clearInterval(n),c({funding:{...f,errorMessage:"Something went wrong adding funds from Moonpay. Please try again or use another method to fund your wallet."}}),i(l.FUNDING_METHOD_SELECTION_SCREEN))}}),3e3);return()=>clearInterval(n)}),[e,m]),n}const me={[f.id]:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",[m.id]:"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",[y.id]:"0x0b2c639c533813f4aa9d7837caf62653d097ff85",[C.id]:"0x5fd84259d66Cd46123540766Be93DFE6D43130D7",[w.id]:"0x3c499c542cef5e3811e1192ce70d8cc03d5c3359",[E.id]:"0x41e94eb019c0762f9bfcf9fb1e58725bfb0e7582",[b.id]:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",[S.id]:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",[T.id]:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",[v.id]:"0x5425890298aed601595a70ab815c96711a31bc65",[A.id]:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",[_.id]:"0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d"},ye=({address:e,appConfig:t,fundWalletConfig:n,methodScreen:a,chainIdOverride:r,comingFromSendTransactionScreen:o=!1})=>{let i,c;if(!t.fundingConfig)throw Error("Wallet funding is not enabled");let d=le(t.fundingConfig.options);if(d.length<1)throw Error("Wallet funding is not enabled");i=r||(ge(n)&&n.chain?n.chain.id:de(t.fundingConfig.defaultRecommendedCurrency.chain));let l=t.chains.find((e=>e.id===i));if(!l)throw new s(`Funding chain ${i} is not in PrivyProvider chains list`);let u=ge(n)&&n.amount?n.amount:t.fundingConfig.defaultRecommendedAmount,h=!1;function p(){if(!i)return;let e=me[i];d.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."),c=e,h=!0}ge(n)&&"asset"in n?"USDC"===n.asset?p():"string"!=typeof n.asset&&"erc20"in n.asset&&(h=((e,t)=>e===me[t.id])(c=n.asset.erc20,l)):"USDC"===t.fundingConfig.defaultRecommendedCurrency.asset&&p();let g=n?.defaultFundingMethod;return{chainType:"ethereum",address:e,amount:u,chain:l,erc20Address:c,erc20ContractInfo:h?{symbol:"USDC",decimals:6}:void 0,isUSDC:h,methodScreen:a,supportedOptions:d,comingFromSendTransactionScreen:o,defaultFundingMethod:g,usingDefaultFundingMethod:!!g,preferredCardProvider:n?.card?.preferredProvider,crossChainBridgingEnabled:t.fundingConfig.crossChainBridgingEnabled??!1,cluster:{name:"mainnet-beta",rpcUrl:t.solanaClusters["mainnet-beta"]},...pe(n)?{moonpayConfigOverride:n.config}:{}}};function Ce({address:e,fundWalletConfig:t,appConfig:n,comingFromSendTransactionScreen:a,methodScreen:s}){if(!n.fundingConfig)throw Error("Wallet funding is not enabled");let r=le(n.fundingConfig.options);if(r.length<1)throw Error("Wallet funding is not enabled");let o=t?.amount??n.fundingConfig.defaultRecommendedAmount,i=t?.defaultFundingMethod;return{chainType:"solana",address:e,supportedOptions:r,amount:o,isUSDC:!1,methodScreen:s,comingFromSendTransactionScreen:a,cluster:{name:t?.cluster?.name??"mainnet-beta",rpcUrl:n.solanaClusters[t?.cluster?.name??"mainnet-beta"]},crossChainBridgingEnabled:n.fundingConfig.crossChainBridgingEnabled??!1,defaultFundingMethod:i,preferredCardProvider:t?.card?.preferredProvider,usingDefaultFundingMethod:!!i}}export{q as C,ne as O,$ as P,J as S,k as U,K as W,Y as a,oe as b,ie as c,ce as d,M as e,B as f,he as g,fe as h,P as i,j,te as k,z as l,le as m,se as n,ee as o,Q as p,Ce as q,ye as r,X as s,H as t,Z as u,de as v,L as w,re as x};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useRef as e,useState as n,useCallback as t}from"react";import{http as a,createPublicClient as r}from"viem";import{q as i,u as s,r as o,E as l,ac as c,M as d}from"./useWallets-
|
|
1
|
+
import{useRef as e,useState as n,useCallback as t}from"react";import{http as a,createPublicClient as r}from"viem";import{q as i,u as s,r as o,E as l,ac as c,M as d}from"./useWallets-8w3LVxdW.mjs";import{P as u,u as p}from"./internal-context-DBDJ7qsa.mjs";import{a as m}from"./getPublicClient-BghjDv1y.mjs";import{g as y}from"./getEmbeddedConnectedWallet-CSSBWE2p.mjs";import{createSmartAccountClient as E}from"permissionless";import{toThirdwebSmartAccount as f,toLightSmartAccount as g,toBiconomySmartAccount as I,toEcdsaKernelSmartAccount as h,toSafeSmartAccount as w}from"permissionless/accounts";import{createPimlicoClient as C}from"permissionless/clients/pimlico";import{toCoinbaseSmartAccount as P,entryPoint06Address as T,entryPoint07Address as D}from"viem/account-abstraction";import{THIRDWEB as _,COINBASE_SMART_WALLET as N,LIGHT_ACCOUNT as W,BICONOMY as S,KERNEL as v,SAFE as F}from"@privy-io/js-sdk-core";let x={address:T,version:"0.6"},G={address:D,version:"0.7"},M=({owner:e,smartWalletType:n,publicClient:t})=>{switch(n){case F:return w({client:t,entryPoint:G,owners:[e],version:"1.4.1"});case v:return h({client:t,version:"0.3.1",entryPoint:G,owners:[e]});case S:return I({client:t,owners:[e],entryPoint:x});case W:return g({client:t,entryPoint:x,owner:e,version:"1.1.0"});case N:return async function({client:e,owner:n}){let[t]=await n.request({method:"eth_accounts"});if(!t)throw Error("Unable to request embedded owner for eth_accounts");return await P({client:e,owners:[{type:"local",source:"privy",address:t,sign:async({hash:e})=>await n.request({method:"secp256k1_sign",params:[e]})}]})}({client:t,owner:e});case _:return f({client:t,entryPoint:G,owner:e});default:throw Error(`Invalid smart account type: ${n}.`)}},b=["rpc.zerodev.app","public.pimlico.io","api.pimlico.io"];const A=({calls:e,chain:n,maxPriorityFeePerGas:t,maxFeePerGas:a,nonce:r})=>e.map((e=>({to:e.to||void 0,data:e.data,value:e.value,chainId:n.id,nonce:r,maxFeePerGas:a,maxPriorityFeePerGas:t}))),O=async({chain:e,paymasterContext:n,embeddedWallet:t,user:i,smartWalletsConfig:s,rpcConfig:o,privyAppId:l})=>{if(!s?.enabled||!i||!t)return;let c=await t.getEthereumProvider(),d=s?.configuredNetworks.find((n=>n.chainId===`eip155:${e.id}`));if(!d)throw new u(`The chain ${e.name} (eip155:${e.id}) must be configured in the smart wallet configuration in your dashboard`);let p=i.smartWallet?.smartWalletType??s.smartWalletType,y=m(e,o,l),f=r({chain:e,transport:a(y)}),g=n??d.paymasterContext,I=await(async({owner:e,smartWalletType:n,chain:t,publicClient:r,bundlerUrl:i,paymasterUrl:s,paymasterContext:o})=>{let l=await M({owner:e,smartWalletType:n,publicClient:r}),c=C({transport:a(i),entryPoint:l.entryPoint}),d=s?C({transport:a(s),entryPoint:l.entryPoint}):void 0;return E({account:l,chain:t,paymaster:d,paymasterContext:o,bundlerTransport:a(i),userOperation:{estimateFeesPerGas:async()=>{if(b.some((e=>i.includes(e))))return await c.getUserOperationGasPrice().then((e=>e.fast));{let e=await r.estimateFeesPerGas(),n=i.includes("api.developer.coinbase.com")?175n:150n;return{...e,maxFeePerGas:e.maxFeePerGas*n/100n,maxPriorityFeePerGas:e.maxPriorityFeePerGas*n/100n}}}}})})({owner:c,smartWalletType:p,chain:e,publicClient:f,paymasterContext:g,...d});if(!I)throw new u(`Failed to create smart wallet client for chain ${e.name} (eip155:${e.id})`);return I},L=({clientConfig:a,smartWalletsConfig:r})=>{let{hideWalletUIs:m,openPrivyModal:E,appId:f}=p(),g=i(),{setModalData:I}=s(),{user:h}=o(),{chains:w}=i(),{chainId:C,clients:P,setChainId:T,chainIdState:D}=(()=>{let t=e(),[a,r]=n();return{clients:e({}),setChainId:e=>{t.current=e,r(e)},chainId:t,chainIdState:a}})(),_=w.find((e=>e.id===D)),{wallets:N}=l(),W=t((async()=>C.current),[C]),S=t((async({id:e})=>{if(!P.current[e]){let n=y(N),t=await O({chain:w.find((n=>n.id===e)),embeddedWallet:n,user:h,paymasterContext:a?.paymasterContext,smartWalletsConfig:r,rpcConfig:g.rpcConfig,privyAppId:f});t&&(P.current[e]=t)}T(e)}),[w,a,N,h,r]);return{wrapSmartAccountClient:e=>{P.current[e.chain.id]=e,D||T(e.chain.id);return{...e,sendTransaction:async(e,n)=>{let t=P.current[C.current];if(!t)throw new u(`Smart wallet client for chain (eip155:${C.current}) not found`);if(delete e.account,!g.embeddedWallets.showWalletUIs)return m.current=!0,await t.sendTransaction(e).finally((()=>m.current=!1));let a=[];"calls"in e&&void 0!==e.calls?a=[...e.calls]:"to"in e&&(a=[{to:e.to,value:e.value||BigInt(0),data:e.data||"0x"}]);let r=async()=>{if(!t.paymaster)return!1;let{paymasterAndData:n,paymasterData:r}=await t.prepareUserOperation({calls:a,maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0});return Number(n??r??0)>0};return new Promise((async(i,s)=>{m.current=!0;let{entropyId:o,entropyIdVerifier:l}=c(h);I({connectWallet:{entropyId:o,entropyIdVerifier:l,onCompleteNavigateTo:d.EMBEDDED_WALLET_SEND_TRANSACTION_SCREEN,onFailure:()=>{}},sendTransaction:{transactionRequests:A({calls:a,chain:t.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),entropyId:o,entropyIdVerifier:l,transactingWallet:{address:t.account.address,walletIndex:null},getIsSponsored:r,signOnly:!1,onConfirm:()=>t.sendTransaction(e),onSuccess:e=>i(e.hash),onFailure:s,uiOptions:n?.uiOptions??{}}}),E(d.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{m.current=!1}))},signMessage:async(e,n)=>{let t=P.current[C.current];if(!t)throw new u(`Smart wallet client for chain (eip155:${C.current}) not found`);return g.embeddedWallets.showWalletUIs?new Promise((async(a,r)=>{let{entropyId:i,entropyIdVerifier:s}=c(h);m.current=!0,I({connectWallet:{entropyId:i,entropyIdVerifier:s,onCompleteNavigateTo:d.EMBEDDED_WALLET_SIGN_REQUEST_SCREEN,onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof e.message?e.message:e.message.raw.toString(),confirmAndSign:()=>t.signMessage(e),onSuccess:e=>a(e),onFailure:r,uiOptions:n?.uiOptions??{}}}),E(d.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{m.current=!1})):(m.current=!0,await t.signMessage(e).finally((()=>m.current=!1)))},signTypedData:async(e,n)=>{let t=P.current[C.current];if(!t)throw new u(`Smart wallet client for chain (eip155:${C.current}) not found`);return delete e.account,g.embeddedWallets.showWalletUIs?new Promise((async(a,r)=>{m.current=!0;let{entropyId:i,entropyIdVerifier:s}=c(h);I({connectWallet:{entropyId:i,entropyIdVerifier:s,onCompleteNavigateTo:d.EMBEDDED_WALLET_SIGN_REQUEST_SCREEN,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:e,confirmAndSign:()=>t.signTypedData(e),onSuccess:e=>a(e),onFailure:r,uiOptions:n?.uiOptions??{}}}),E(d.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{m.current=!1})):(m.current=!0,await t.signTypedData(e).finally((()=>m.current=!1)))},getChainId:W,chain:_,switchChain:S}}}},R=()=>{let{hideWalletUIs:e,openPrivyModal:n}=p(),t=i(),{setModalData:a}=s(),{user:r}=o();return{wrapSmartAccountClientWithUIs:i=>({...i,sendTransaction:async(s,o)=>{if(!t.embeddedWallets.showWalletUIs)return e.current=!0,await i.sendTransaction(s).finally((()=>e.current=!1));let l=[];"calls"in s&&void 0!==s.calls?l=[...s.calls]:"to"in s&&(l=[{to:s.to,value:s.value||BigInt(0),data:s.data||"0x"}]);let u=async()=>{if(!i.paymaster)return!1;let{paymasterAndData:e,paymasterData:n}=await i.prepareUserOperation({calls:l,maxFeePerGas:s.maxFeePerGas,maxPriorityFeePerGas:s.maxPriorityFeePerGas,nonce:s.nonce?BigInt(s.nonce):void 0});return Number(e??n??0)>0};return new Promise((async(t,p)=>{e.current=!0;let{entropyId:m,entropyIdVerifier:y}=c(r);a({connectWallet:{entropyId:m,entropyIdVerifier:y,onCompleteNavigateTo:d.EMBEDDED_WALLET_SEND_TRANSACTION_SCREEN,onFailure:()=>{}},sendTransaction:{transactionRequests:A({calls:l,chain:i.chain,maxPriorityFeePerGas:s.maxPriorityFeePerGas,maxFeePerGas:s.maxFeePerGas,nonce:s.nonce?BigInt(s.nonce):void 0}),entropyId:m,entropyIdVerifier:y,transactingWallet:{address:i.account.address,walletIndex:null},getIsSponsored:u,signOnly:!1,onConfirm:()=>i.sendTransaction(s),onSuccess:e=>t(e.hash),onFailure:p,uiOptions:o?.uiOptions??{}}}),n(d.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{e.current=!1}))},signMessage:async(s,o)=>t.embeddedWallets.showWalletUIs?new Promise((async(t,l)=>{let{entropyId:u,entropyIdVerifier:p}=c(r);e.current=!0,a({connectWallet:{entropyId:u,entropyIdVerifier:p,onCompleteNavigateTo:d.EMBEDDED_WALLET_SIGN_REQUEST_SCREEN,onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof s.message?s.message:s.message.raw.toString(),confirmAndSign:()=>i.signMessage(s),onSuccess:e=>t(e),onFailure:l,uiOptions:o?.uiOptions??{}}}),n(d.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{e.current=!1})):(e.current=!0,await i.signMessage(s).finally((()=>e.current=!1))),signTypedData:async(s,o)=>t.embeddedWallets.showWalletUIs?new Promise((async(t,l)=>{e.current=!0;let{entropyId:u,entropyIdVerifier:p}=c(r);a({connectWallet:{entropyId:u,entropyIdVerifier:p,onCompleteNavigateTo:d.EMBEDDED_WALLET_SIGN_REQUEST_SCREEN,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:s,confirmAndSign:()=>i.signTypedData(s),onSuccess:e=>t(e),onFailure:l,uiOptions:o?.uiOptions??{}}}),n(d.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{e.current=!1})):(e.current=!0,await i.signTypedData(s).finally((()=>e.current=!1)))})}};export{L as a,A as c,O as g,R as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{useContext as t,useState as i,useEffect as r,createContext as n}from"react";import{q as a,E as l,r as o}from"./useWallets-
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{useContext as t,useState as i,useEffect as r,createContext as n}from"react";import{q as a,E as l,r as o}from"./useWallets-8w3LVxdW.mjs";import{u as s,P as c,n as d}from"./internal-context-DBDJ7qsa.mjs";import{g as m}from"./getEmbeddedConnectedWallet-CSSBWE2p.mjs";import{u as g,g as f,a as p}from"./smart-wallets-gIJUc6-6.mjs";import"viem/utils";import"tinycolor2";import"ofetch";import"viem";import"./getPublicClient-BghjDv1y.mjs";import"permissionless";import"permissionless/accounts";import"permissionless/clients/pimlico";import"viem/account-abstraction";import"@privy-io/js-sdk-core";let h=/*#__PURE__*/n({client:void 0,getClientForChain:d});const u=({config:t,children:i})=>/*#__PURE__*/e(y,{children:/*#__PURE__*/e(W,{config:t,children:/*#__PURE__*/e(b,{children:i})})}),C=()=>{let{client:e,getClientForChain:i}=t(h);return{client:e,getClientForChain:i}};let w=/*#__PURE__*/n({config:void 0}),v=()=>{let{config:e}=t(w);return{config:e}},y=({children:t})=>{let[n,a]=i(void 0),{client:l}=s();return r((()=>{!n&&l&&(async()=>{try{if(!l)return void console.warn("No client found");let e=await l.getSmartWalletsConfig();a(e)}catch(e){console.warn("Error generating smart wallet config: ",e)}})()}),[!!l]),/*#__PURE__*/e(w.Provider,{value:{config:n},children:t})},W=({config:t,children:n})=>{let{config:d}=v(),{appId:p}=s(),{chains:h,defaultChain:u,rpcConfig:C}=a(),{wallets:w}=l(),{user:y}=o(),[W,b]=i(),{wrapSmartAccountClientWithUIs:I}=g(),P=m(w);r((()=>{(async()=>{if(!d?.enabled)return;let e=d.configuredNetworks.find((e=>e.chainId===`eip155:${u.id}`))?u:h.find((e=>d.configuredNetworks.map((e=>e.chainId)).includes(`eip155:${e.id}`)));if(!e)throw new c("Could not find smart wallets chain configurations for any Privy client configured chains. Please configure smart wallets for your chains in the Privy dashboard.");b(await f({chain:e,privyAppId:p,paymasterContext:t?.paymasterContext,rpcConfig:C,embeddedWallet:P,user:y,smartWalletsConfig:d}))})()}),[!!d?.enabled,!!y?.smartWallet,!!P]);/*#__PURE__*/return e(F.Provider,{value:{client:W,config:t,getClientForChain:async({id:e})=>{let i=m(w),r=await f({chain:h.find((t=>t.id===e)),privyAppId:p,paymasterContext:t?.paymasterContext,rpcConfig:C,embeddedWallet:i,user:y,smartWalletsConfig:d});if(!r)throw new c(`Failed to create smart wallet client for chain id: ${e}`);return I(r)}},children:n})},F=/*#__PURE__*/n({client:void 0,config:void 0,getClientForChain:d}),b=({children:i})=>{let{client:n,config:a,getClientForChain:l}=(()=>{let{client:e,config:i,getClientForChain:r}=t(F);return{client:e,config:i,getClientForChain:r}})(),{config:c}=v(),{wrapSmartAccountClient:d}=p({clientConfig:a,smartWalletsConfig:c}),{user:m}=o(),{generateSiweMessageForSmartWallet:g,linkSmartWallet:f,hideWalletUIs:u}=s();return r((()=>{(async()=>{if(n&&m&&!m?.smartWallet&&c?.enabled)try{let e=await g({address:n.account.address,chainId:`eip155:${n.chain.id}`});u.current=!0;let t=await n.signMessage({message:e});await f({signature:t,message:e,smartWalletType:c.smartWalletType})}catch(e){console.error("Error creating smart wallet:",e)}finally{u.current=!1}})()}),[!!n,!!m?.smartWallet,!!c?.enabled]),/*#__PURE__*/e(h.Provider,{value:{client:m?.smartWallet&&n?d(n):void 0,getClientForChain:l},children:i})};export{u as SmartWalletsProvider,C as useSmartWallets};
|
package/dist/esm/solana.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isWalletAdapterCompatibleStandardWallet as e}from"@solana/wallet-adapter-base";import{StandardWalletAdapter as t}from"@solana/wallet-standard-wallet-adapter-base";import{getWallets as a}from"@wallet-standard/app";import{S as n,k as r,x as o,u as s}from"./prepareFundingModalData-
|
|
1
|
+
import{isWalletAdapterCompatibleStandardWallet as e}from"@solana/wallet-adapter-base";import{StandardWalletAdapter as t}from"@solana/wallet-standard-wallet-adapter-base";import{getWallets as a}from"@wallet-standard/app";import{S as n,k as r,x as o,u as s}from"./prepareFundingModalData-CsN1TYQy.mjs";export{d as useSolanaWallets}from"./prepareFundingModalData-CsN1TYQy.mjs";import{useCallback as i}from"react";import{i as l}from"./importWallet-ylHVDCXz.mjs";import{u as m}from"./internal-context-DBDJ7qsa.mjs";import{r as p}from"./useWallets-8w3LVxdW.mjs";import{t as c}from"./useFundWallet-DS1kytse.mjs";export{u as useFundWallet}from"./useFundWallet-DS1kytse.mjs";import"eventemitter3";import"@privy-io/js-sdk-core";import"react/jsx-runtime";import"ofetch";import"viem/utils";import"tinycolor2";import"@solana/web3.js";const f=e=>{let t,{get:r,on:o}=a(),s=e?.shouldAutoConnect??!0,i=[],l=[];function m(...e){l=(i=i.concat(...g(e))).map((e=>new n(e,s))),t?.(l)}function p(...e){l=(i=i.filter((t=>e.some((e=>t.wallet===e))))).map((e=>new n(e,s))),t?.(l)}let u=[o("register",m),o("unregister",p)];return l=(i=g(r())).map((e=>new n(e,s))),{_setOnConnectorsUpdated:e=>{t=e},onMount:()=>{u[0]||(u[0]=o("register",m)),u[1]||(u[1]=o("unregister",p))},onUnmount:()=>{let e=u.pop();for(;e;)e(),e=u.pop()},get:()=>l}};let g=a=>a.filter(e).map((e=>new t({wallet:e})));const w=()=>{let{getAccessToken:e,user:t}=p(),{refreshSessionAndUser:a,initializeWalletProxy:n}=m(),o=r();return{importWallet:i((({privateKey:r})=>l({getAccessToken:e,user:t,initializeWalletProxy:n,refreshSessionAndUser:a,emitPrivyEvent:o},{privateKey:r,chainType:"solana"})),[t,e,a,n,o])}};var S=()=>o(c);function j(e){let{sendSolanaTransaction:t}=m();return s("sendSolanaTransaction",e),{sendTransaction:t}}function y(e){let{signSolanaTransaction:t}=m();return s("signSolanaTransaction",e),{signTransaction:t}}function T(e){let{solanaSignMessage:t}=m();return s("signSolanaMessage",e),{signMessage:async e=>{let a=Buffer.from(e.message).toString("base64"),n=await t({message:a,options:e.options});return new Uint8Array(Buffer.from(n.signature,"base64"))}}}export{n as SolanaAdapterConnector,f as toSolanaWalletConnectors,w as useImportWallet,j as useSendTransaction,T as useSignMessage,y as useSignTransaction,S as useSolanaFundingPlugin};
|