@privy-io/react-auth 2.4.3 → 2.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/cjs/abstract-smart-wallets.js +1 -1
  2. package/dist/cjs/{importWallet-BvzASqsr.js → importWallet-DnBwVibu.js} +1 -1
  3. package/dist/cjs/index.js +2 -2
  4. package/dist/cjs/{prepareFundingModalData-C8wPeHar.js → prepareFundingModalData-Cb2nv4dG.js} +1 -1
  5. package/dist/cjs/{smart-wallets-DlC_5Y5l.js → smart-wallets-CBoK3FJE.js} +1 -1
  6. package/dist/cjs/smart-wallets.js +1 -1
  7. package/dist/cjs/solana.js +1 -1
  8. package/dist/cjs/ui.js +1 -1
  9. package/dist/cjs/useActiveWallet-CcpSCPoL.js +5 -0
  10. package/dist/cjs/{useFundWallet-2Ezrz28N.js → useFundWallet-BhlJigGm.js} +1 -1
  11. package/dist/cjs/{useWallets-DobnZGpT.js → useWallets-y1wsvg5v.js} +1 -1
  12. package/dist/dts/farcaster.d.mts +1 -1
  13. package/dist/dts/farcaster.d.ts +1 -1
  14. package/dist/dts/index.d.mts +8 -7
  15. package/dist/dts/index.d.ts +8 -7
  16. package/dist/dts/smart-wallets.d.mts +1 -1
  17. package/dist/dts/smart-wallets.d.ts +1 -1
  18. package/dist/dts/solana.d.mts +4 -4
  19. package/dist/dts/solana.d.ts +4 -4
  20. package/dist/dts/{types-CjeWF_LJ.d.mts → types-vsXbDWiC.d.mts} +2 -0
  21. package/dist/dts/{types-CjeWF_LJ.d.ts → types-vsXbDWiC.d.ts} +2 -0
  22. package/dist/dts/ui.d.mts +1 -1
  23. package/dist/dts/ui.d.ts +1 -1
  24. package/dist/dts/{useSolanaWallets-CXnYSqQR.d.mts → useSolanaWallets-xlc6faTU.d.mts} +1 -1
  25. package/dist/dts/{useSolanaWallets-CXnYSqQR.d.ts → useSolanaWallets-xlc6faTU.d.ts} +1 -1
  26. package/dist/esm/abstract-smart-wallets.mjs +1 -1
  27. package/dist/esm/{importWallet-DfwAobLp.mjs → importWallet-C-D57oRC.mjs} +1 -1
  28. package/dist/esm/index.mjs +21 -21
  29. package/dist/esm/{prepareFundingModalData-R09VUVWm.mjs → prepareFundingModalData-CFokVw8r.mjs} +1 -1
  30. package/dist/esm/{smart-wallets-BKO_VzqX.mjs → smart-wallets-BvnCDN7T.mjs} +1 -1
  31. package/dist/esm/smart-wallets.mjs +1 -1
  32. package/dist/esm/solana.mjs +1 -1
  33. package/dist/esm/ui.mjs +1 -1
  34. package/dist/esm/{useActiveWallet-CRQOoJef.mjs → useActiveWallet-BzMUJJr8.mjs} +5 -5
  35. package/dist/esm/{useFundWallet-vjrQZZWa.mjs → useFundWallet-DAS_ErNP.mjs} +1 -1
  36. package/dist/esm/useWallets-0lCjD0UF.mjs +1 -0
  37. package/package.json +5 -5
  38. package/dist/cjs/useActiveWallet-DUvjidjw.js +0 -5
  39. package/dist/esm/useWallets-Bm3b-V02.mjs +0 -1
@@ -1 +1 @@
1
- "use strict";var e=require("./internal-context-BFE-DjTn.js"),t=require("eventemitter3"),n=require("@privy-io/js-sdk-core"),r=require("./useWallets-DobnZGpT.js"),o=require("react"),a=require("react/jsx-runtime"),s=require("ofetch");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=/*#__PURE__*/i(t);class l{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))}}var d="undefined"!=typeof window&&window.localStorage?new l: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 u extends e.PrivyConnectorError{constructor(){super("Wallet timeout"),this.type="wallet_error"}}class p extends e.PrivyConnectorError{constructor(){super("User rejected connection"),this.type="wallet_error"}}const h=t=>t instanceof e.PrivyConnectorError?t:t?.code?new f(t):new e.PrivyConnectorError("Unknown connector error",t);class g extends e.PrivyError{constructor(e,t,n){super(e),this.type="provider_error",this.code=t,this.data=n}}class f extends g{constructor(e){super(e.message,e.code,e.data);let t=Object.values(n.ProviderErrors).find((t=>t.eipCode===e.code));this.details=t||n.ProviderErrors.UNKNOWN_ERROR,-32002===e.code&&(e.message?.includes("already pending for origin")?e.message?.includes("wallet_requestPermissions")?this.details=n.ProviderErrors.E32002_CONNECTION_ALREADY_PENDING:this.details=n.ProviderErrors.E32002_REQUEST_ALREADY_PENDING:e.message?.includes("Already processing")&&e.message.includes("eth_requestAccounts")&&(this.details=n.ProviderErrors.E32002_WALLET_LOCKED))}}const m={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},...n.ProviderErrors};class y extends c.default{constructor(e){super(),this.walletClientType=e,this.connected=!1,this.initialized=!1}}const C=()=>{let e=d.get(r.CONNECTIONS_HISTORY_KEY);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 E=["phantom","glow","solflare","backpack","okx_wallet"];const w=/*#__PURE__*/o.createContext(void 0);let v=()=>o.useContext(w);function b(e,t,n,...r){for(let o of e.current[t][n])o(...r)}const S="sdk_fiat_on_ramp_completed_with_status";let x=/*#__PURE__*/o.createContext({plugins:{current:{}}});const A=Symbol("solana-funding-plugin");function _(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 T=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)))),P="moonpay";function I(e){return!!e&&void 0!==e.config&&void 0!==e.provider}function O(e){return!!e&&(void 0!==e.chain||void 0!==e.amount)}const R={[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"};exports.ConnectorErrors=m,exports.ON_RAMP_COMPLETE_ANALYTICS_EVENT=S,exports.PrivyEventsContext=w,exports.PrivyPluginProvider=({children:e})=>{let t=o.useRef({});/*#__PURE__*/return a.jsx(x.Provider,{value:{plugins:t},children:e})},exports.PrivyProviderRpcError=f,exports.ProviderRpcError=g,exports.SOLANA_FUNDING_PLUGIN_ID=A,exports.SolanaWalletConnector=class extends y{get isInstalled(){return"Installed"===this.adapter.readyState}buildConnectedWallet(t,n){let r,o,a;if("Installed"!==t.readyState||!t.publicKey)throw Error("Wallet is not connected.");return"signMessage"in t&&(r=async(...e)=>{if(!t.connected)throw Error("Wallet is not connected.");return await t.signMessage(e[0])}),"sendTransaction"in t&&(o=async(...e)=>await t.sendTransaction(e[0],e[1],e[2])),"signTransaction"in t&&(a=async e=>await t.signTransaction(e)),{type:"solana",address:t.publicKey.toBase58(),meta:n,imported:!1,connectedAt:Date.now(),walletClientType:this.walletClientType,connectorType:this.connectorType,isConnected:async()=>t.connected,disconnect:()=>{try{t.disconnect()}catch(e){console.error("Wallet does not support programmatic disconnect")}},getProvider:e.notImplementedWithMessage(`${this.walletClientType||""} wallet does not support 'getProvider'`),signMessage:r??e.notImplementedWithMessage(`${this.walletClientType||""} wallet does not support 'signMessage'`),sendTransaction:o??e.notImplementedWithMessage(`${this.walletClientType||""} wallet does not support 'sendTransaction'`),signTransaction:a??e.notImplementedWithMessage(`${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||!E.includes(this.walletClientType))&&("phantom"!==this.walletClientType||C().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 h(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=[]}},exports.UserRejectedConnectionError=p,exports.WalletConnector=y,exports.WalletTimeoutError=u,exports.amountToMoonpayAmount=function(e){return parseFloat(e)},exports.e=function(){try{let e="privy:__session_storage__test",t=new l;return t.put(e,"blobby"),t.del(e),!0}catch(e){return!1}},exports.emitPrivyEvent=b,exports.extractChainIdFromCAIP2=_,exports.filterSupportedOptions=T,exports.formatConnectorError=h,exports.i=d,exports.isBaseConnectedSolanaWallet=function(e){return"solana"===e.type},exports.isSolanaWalletConnector=function(e){return"solana"===e.chainType},exports.loadConnectionHistory=C,exports.prepareFundingModalData=({address:t,appConfig:n,fundWalletConfig:r,methodScreen:o,chainIdOverride:a,comingFromSendTransactionScreen:s=!1})=>{let i,c;if(!n.fundingConfig)throw Error("Wallet funding is not enabled");let l=T(n.fundingConfig.options);if(l.length<1)throw Error("Wallet funding is not enabled");i=a||(O(r)&&r.chain?r.chain.id:_(n.fundingConfig.defaultRecommendedCurrency.chain));let d=n.chains.find((e=>e.id===i));if(!d)throw new e.PrivyClientError(`Funding chain ${i} is not in PrivyProvider chains list`);let u=O(r)&&r.amount?r.amount:n.fundingConfig.defaultRecommendedAmount,p=!1;function h(){if(!i)return;let e=R[i];l.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,p=!0}O(r)&&"asset"in r?"USDC"===r.asset?h():"string"!=typeof r.asset&&"erc20"in r.asset&&(p=((e,t)=>e===R[t.id])(c=r.asset.erc20,d)):"USDC"===n.fundingConfig.defaultRecommendedCurrency.asset&&h();let g=r?.defaultFundingMethod;return{chainType:"ethereum",address:t,amount:u,chain:d,erc20Address:c,erc20ContractInfo:p?{symbol:"USDC",decimals:6}:void 0,isUSDC:p,methodScreen:o,supportedOptions:l,comingFromSendTransactionScreen:s,defaultFundingMethod:g,usingDefaultFundingMethod:!!g,preferredCardProvider:r?.card?.preferredProvider,crossChainBridgingEnabled:n.fundingConfig.crossChainBridgingEnabled??!1,cluster:{name:"mainnet-beta",rpcUrl:n.solanaClusters["mainnet-beta"]},...I(r)?{moonpayConfigOverride:r.config}:{}}},exports.prepareSolanaFundingModalData=function({address:e,fundWalletConfig:t,appConfig:n,comingFromSendTransactionScreen:r,methodScreen:o}){if(!n.fundingConfig)throw Error("Wallet funding is not enabled");let a=T(n.fundingConfig.options);if(a.length<1)throw Error("Wallet funding is not enabled");let s=t?.amount??n.fundingConfig.defaultRecommendedAmount,i=t?.defaultFundingMethod;return{chainType:"solana",address:e,supportedOptions:a,amount:s,isUSDC:!1,methodScreen:o,comingFromSendTransactionScreen:r,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}},exports.privyEventsDefault={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:[]}},exports.useEmitPrivyEvent=function(){let e=v();return(t,n,...r)=>b(e,t,n,...r)},exports.usePlugins=()=>{let{plugins:e}=o.useContext(x);return o.useCallback((t=>e.current[t]),[e])},exports.usePollMoonpayTransactionStatus=function(t,n=!1){let[a,i]=o.useState(null),{createAnalyticsEvent:c}=e.usePrivyInternal(),{data:l,navigate:d,setModalData:u}=r.usePrivyModal(),p=l?.funding,h=o.useRef(0);return o.useEffect((()=>{let e=setInterval((async()=>{if(t)try{let[o]=await async function(e,t){return s.ofetch(`${t?r.MOONPAY_API_URL_SANDBOX:r.MOONPAY_API_URL}/transactions/ext/${e}`,{query:{apiKey:t?r.MOONPAY_PUBLIC_KEY_SANDBOX:r.MOONPAY_PUBLIC_KEY}})}(t,n),a="waitingAuthorization"===o.status&&"credit_debit_card"===o.paymentMethod?"pending":o.status;if(["failed","completed","awaitingAuthorization"].includes(a)&&(c({eventName:S,payload:{status:a,provider:P,paymentMethod:o.paymentMethod,cardPaymentType:o.cardPaymentType,currency:o.currency?.code,baseCurrencyAmount:o.baseCurrencyAmount,quoteCurrencyAmount:o.quoteCurrencyAmount,feeAmount:o.feeAmount,extraFeeAmount:o.extraFeeAmount,networkFeeAmount:o.networkFeeAmount,isSandbox:n}}),clearInterval(e)),"failed"===a||"serviceFailure"===a)return u({funding:{...p,errorMessage:"Something went wrong adding funds from Moonpay. Please try again or use another method to fund your wallet."}}),void d(r.ModalScreen.FUNDING_METHOD_SELECTION_SCREEN);i(a)}catch(t){404!==t.response?.status&&(h.current+=1),h.current>=3&&(c({eventName:S,payload:{status:"serviceFailure",provider:P}}),clearInterval(e),u({funding:{...p,errorMessage:"Something went wrong adding funds from Moonpay. Please try again or use another method to fund your wallet."}}),d(r.ModalScreen.FUNDING_METHOD_SELECTION_SCREEN))}}),3e3);return()=>clearInterval(e)}),[t,h]),a},exports.usePrivyEventSubscription=function(e,t){if(!t)return;let n=v().current[e];return o.useEffect((()=>{for(let[r,o]of Object.entries(t))Object.prototype.hasOwnProperty.call(n,r)||console.warn(`Invalid event type "${r}" for action "${e}"`),n[r]?.push(o);return()=>{for(let[r,o]of Object.entries(t))Object.prototype.hasOwnProperty.call(n,r)||console.warn(`Invalid event type "${r}" for action "${e}"`),n[r]=n[r]?.filter((e=>e!==o))}}),[t])},exports.useRegisterPlugin=(...e)=>{let{plugins:t}=o.useContext(x);o.useEffect((()=>{for(let n of e)t.current[n.id]=n;return()=>{for(let n of e)delete t.current[n.id]}}),[t])},exports.useSolanaWallets=()=>{let{exportSolanaWallet:t,createEmbeddedSolanaWallet:n,solanaWallets:o,embeddedSolanaWallets:a}=e.usePrivyInternal(),{ready:s}=r.useWallets();return{ready:s,createWallet:n,exportWallet:t,wallets:o.concat(a??[])}};
1
+ "use strict";var e=require("./internal-context-BFE-DjTn.js"),t=require("eventemitter3"),n=require("@privy-io/js-sdk-core"),r=require("./useWallets-y1wsvg5v.js"),o=require("react"),a=require("react/jsx-runtime"),s=require("ofetch");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=/*#__PURE__*/i(t);class l{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))}}var d="undefined"!=typeof window&&window.localStorage?new l: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 u extends e.PrivyConnectorError{constructor(){super("Wallet timeout"),this.type="wallet_error"}}class p extends e.PrivyConnectorError{constructor(){super("User rejected connection"),this.type="wallet_error"}}const h=t=>t instanceof e.PrivyConnectorError?t:t?.code?new f(t):new e.PrivyConnectorError("Unknown connector error",t);class g extends e.PrivyError{constructor(e,t,n){super(e),this.type="provider_error",this.code=t,this.data=n}}class f extends g{constructor(e){super(e.message,e.code,e.data);let t=Object.values(n.ProviderErrors).find((t=>t.eipCode===e.code));this.details=t||n.ProviderErrors.UNKNOWN_ERROR,-32002===e.code&&(e.message?.includes("already pending for origin")?e.message?.includes("wallet_requestPermissions")?this.details=n.ProviderErrors.E32002_CONNECTION_ALREADY_PENDING:this.details=n.ProviderErrors.E32002_REQUEST_ALREADY_PENDING:e.message?.includes("Already processing")&&e.message.includes("eth_requestAccounts")&&(this.details=n.ProviderErrors.E32002_WALLET_LOCKED))}}const m={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},...n.ProviderErrors};class y extends c.default{constructor(e){super(),this.walletClientType=e,this.connected=!1,this.initialized=!1}}const C=()=>{let e=d.get(r.CONNECTIONS_HISTORY_KEY);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 E=["phantom","glow","solflare","backpack","okx_wallet"];const w=/*#__PURE__*/o.createContext(void 0);let v=()=>o.useContext(w);function b(e,t,n,...r){for(let o of e.current[t][n])o(...r)}const S="sdk_fiat_on_ramp_completed_with_status";let x=/*#__PURE__*/o.createContext({plugins:{current:{}}});const A=Symbol("solana-funding-plugin");function _(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 T=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)))),P="moonpay";function I(e){return!!e&&void 0!==e.config&&void 0!==e.provider}function O(e){return!!e&&(void 0!==e.chain||void 0!==e.amount)}const R={[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"};exports.ConnectorErrors=m,exports.ON_RAMP_COMPLETE_ANALYTICS_EVENT=S,exports.PrivyEventsContext=w,exports.PrivyPluginProvider=({children:e})=>{let t=o.useRef({});/*#__PURE__*/return a.jsx(x.Provider,{value:{plugins:t},children:e})},exports.PrivyProviderRpcError=f,exports.ProviderRpcError=g,exports.SOLANA_FUNDING_PLUGIN_ID=A,exports.SolanaWalletConnector=class extends y{get isInstalled(){return"Installed"===this.adapter.readyState}buildConnectedWallet(t,n){let r,o,a;if("Installed"!==t.readyState||!t.publicKey)throw Error("Wallet is not connected.");return"signMessage"in t&&(r=async(...e)=>{if(!t.connected)throw Error("Wallet is not connected.");return await t.signMessage(e[0])}),"sendTransaction"in t&&(o=async(...e)=>await t.sendTransaction(e[0],e[1],e[2])),"signTransaction"in t&&(a=async e=>await t.signTransaction(e)),{type:"solana",address:t.publicKey.toBase58(),meta:n,imported:!1,connectedAt:Date.now(),walletClientType:this.walletClientType,connectorType:this.connectorType,isConnected:async()=>t.connected,disconnect:()=>{try{t.disconnect()}catch(e){console.error("Wallet does not support programmatic disconnect")}},getProvider:e.notImplementedWithMessage(`${this.walletClientType||""} wallet does not support 'getProvider'`),signMessage:r??e.notImplementedWithMessage(`${this.walletClientType||""} wallet does not support 'signMessage'`),sendTransaction:o??e.notImplementedWithMessage(`${this.walletClientType||""} wallet does not support 'sendTransaction'`),signTransaction:a??e.notImplementedWithMessage(`${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||!E.includes(this.walletClientType))&&("phantom"!==this.walletClientType||C().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 h(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=[]}},exports.UserRejectedConnectionError=p,exports.WalletConnector=y,exports.WalletTimeoutError=u,exports.amountToMoonpayAmount=function(e){return parseFloat(e)},exports.e=function(){try{let e="privy:__session_storage__test",t=new l;return t.put(e,"blobby"),t.del(e),!0}catch(e){return!1}},exports.emitPrivyEvent=b,exports.extractChainIdFromCAIP2=_,exports.filterSupportedOptions=T,exports.formatConnectorError=h,exports.i=d,exports.isBaseConnectedSolanaWallet=function(e){return"solana"===e.type},exports.isSolanaWalletConnector=function(e){return"solana"===e.chainType},exports.loadConnectionHistory=C,exports.prepareFundingModalData=({address:t,appConfig:n,fundWalletConfig:r,methodScreen:o,chainIdOverride:a,comingFromSendTransactionScreen:s=!1})=>{let i,c;if(!n.fundingConfig)throw Error("Wallet funding is not enabled");let l=T(n.fundingConfig.options);if(l.length<1)throw Error("Wallet funding is not enabled");i=a||(O(r)&&r.chain?r.chain.id:_(n.fundingConfig.defaultRecommendedCurrency.chain));let d=n.chains.find((e=>e.id===i));if(!d)throw new e.PrivyClientError(`Funding chain ${i} is not in PrivyProvider chains list`);let u=O(r)&&r.amount?r.amount:n.fundingConfig.defaultRecommendedAmount,p=!1;function h(){if(!i)return;let e=R[i];l.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,p=!0}O(r)&&"asset"in r?"USDC"===r.asset?h():"string"!=typeof r.asset&&"erc20"in r.asset&&(p=((e,t)=>e===R[t.id])(c=r.asset.erc20,d)):"USDC"===n.fundingConfig.defaultRecommendedCurrency.asset&&h();let g=r?.defaultFundingMethod;return{chainType:"ethereum",address:t,amount:u,chain:d,erc20Address:c,erc20ContractInfo:p?{symbol:"USDC",decimals:6}:void 0,isUSDC:p,methodScreen:o,supportedOptions:l,comingFromSendTransactionScreen:s,defaultFundingMethod:g,usingDefaultFundingMethod:!!g,preferredCardProvider:r?.card?.preferredProvider,crossChainBridgingEnabled:n.fundingConfig.crossChainBridgingEnabled??!1,cluster:{name:"mainnet-beta",rpcUrl:n.solanaClusters["mainnet-beta"]},...I(r)?{moonpayConfigOverride:r.config}:{}}},exports.prepareSolanaFundingModalData=function({address:e,fundWalletConfig:t,appConfig:n,comingFromSendTransactionScreen:r,methodScreen:o}){if(!n.fundingConfig)throw Error("Wallet funding is not enabled");let a=T(n.fundingConfig.options);if(a.length<1)throw Error("Wallet funding is not enabled");let s=t?.amount??n.fundingConfig.defaultRecommendedAmount,i=t?.defaultFundingMethod;return{chainType:"solana",address:e,supportedOptions:a,amount:s,isUSDC:!1,methodScreen:o,comingFromSendTransactionScreen:r,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}},exports.privyEventsDefault={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:[]}},exports.useEmitPrivyEvent=function(){let e=v();return(t,n,...r)=>b(e,t,n,...r)},exports.usePlugins=()=>{let{plugins:e}=o.useContext(x);return o.useCallback((t=>e.current[t]),[e])},exports.usePollMoonpayTransactionStatus=function(t,n=!1){let[a,i]=o.useState(null),{createAnalyticsEvent:c}=e.usePrivyInternal(),{data:l,navigate:d,setModalData:u}=r.usePrivyModal(),p=l?.funding,h=o.useRef(0);return o.useEffect((()=>{let e=setInterval((async()=>{if(t)try{let[o]=await async function(e,t){return s.ofetch(`${t?r.MOONPAY_API_URL_SANDBOX:r.MOONPAY_API_URL}/transactions/ext/${e}`,{query:{apiKey:t?r.MOONPAY_PUBLIC_KEY_SANDBOX:r.MOONPAY_PUBLIC_KEY}})}(t,n),a="waitingAuthorization"===o.status&&"credit_debit_card"===o.paymentMethod?"pending":o.status;if(["failed","completed","awaitingAuthorization"].includes(a)&&(c({eventName:S,payload:{status:a,provider:P,paymentMethod:o.paymentMethod,cardPaymentType:o.cardPaymentType,currency:o.currency?.code,baseCurrencyAmount:o.baseCurrencyAmount,quoteCurrencyAmount:o.quoteCurrencyAmount,feeAmount:o.feeAmount,extraFeeAmount:o.extraFeeAmount,networkFeeAmount:o.networkFeeAmount,isSandbox:n}}),clearInterval(e)),"failed"===a||"serviceFailure"===a)return u({funding:{...p,errorMessage:"Something went wrong adding funds from Moonpay. Please try again or use another method to fund your wallet."}}),void d(r.ModalScreen.FUNDING_METHOD_SELECTION_SCREEN);i(a)}catch(t){404!==t.response?.status&&(h.current+=1),h.current>=3&&(c({eventName:S,payload:{status:"serviceFailure",provider:P}}),clearInterval(e),u({funding:{...p,errorMessage:"Something went wrong adding funds from Moonpay. Please try again or use another method to fund your wallet."}}),d(r.ModalScreen.FUNDING_METHOD_SELECTION_SCREEN))}}),3e3);return()=>clearInterval(e)}),[t,h]),a},exports.usePrivyEventSubscription=function(e,t){if(!t)return;let n=v().current[e];return o.useEffect((()=>{for(let[r,o]of Object.entries(t))Object.prototype.hasOwnProperty.call(n,r)||console.warn(`Invalid event type "${r}" for action "${e}"`),n[r]?.push(o);return()=>{for(let[r,o]of Object.entries(t))Object.prototype.hasOwnProperty.call(n,r)||console.warn(`Invalid event type "${r}" for action "${e}"`),n[r]=n[r]?.filter((e=>e!==o))}}),[t])},exports.useRegisterPlugin=(...e)=>{let{plugins:t}=o.useContext(x);o.useEffect((()=>{for(let n of e)t.current[n.id]=n;return()=>{for(let n of e)delete t.current[n.id]}}),[t])},exports.useSolanaWallets=()=>{let{exportSolanaWallet:t,createEmbeddedSolanaWallet:n,solanaWallets:o,embeddedSolanaWallets:a}=e.usePrivyInternal(),{ready:s}=r.useWallets();return{ready:s,createWallet:n,exportWallet:t,wallets:o.concat(a??[])}};
@@ -1 +1 @@
1
- "use strict";var e=require("react"),t=require("viem"),r=require("./useWallets-DobnZGpT.js"),n=require("./internal-context-BFE-DjTn.js"),a=require("./getPublicClient-BjV7zj03.js"),i=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js"),s=require("permissionless"),o=require("permissionless/accounts"),l=require("permissionless/clients/pimlico"),c=require("viem/account-abstraction"),d=require("@privy-io/js-sdk-core");let u={address:c.entryPoint06Address,version:"0.6"},p={address:c.entryPoint07Address,version:"0.7"},y=({owner:e,smartWalletType:t,publicClient:r})=>{switch(t){case d.SAFE:return o.toSafeSmartAccount({client:r,entryPoint:p,owners:[e],version:"1.4.1"});case d.KERNEL:return o.toEcdsaKernelSmartAccount({client:r,version:"0.3.1",entryPoint:p,owners:[e]});case d.BICONOMY:return o.toBiconomySmartAccount({client:r,owners:[e],entryPoint:u});case d.LIGHT_ACCOUNT:return o.toLightSmartAccount({client:r,entryPoint:u,owner:e,version:"1.1.0"});case d.COINBASE_SMART_WALLET:return async function({client:e,owner:t}){let[r]=await t.request({method:"eth_accounts"});if(!r)throw Error("Unable to request embedded owner for eth_accounts");return await c.toCoinbaseSmartAccount({client:e,owners:[{type:"local",source:"privy",address:r,sign:async({hash:e})=>await t.request({method:"secp256k1_sign",params:[e]})}]})}({client:r,owner:e});case d.THIRDWEB:return o.toThirdwebSmartAccount({client:r,entryPoint:p,owner:e});default:throw Error(`Invalid smart account type: ${t}.`)}},m=["rpc.zerodev.app","public.pimlico.io","api.pimlico.io"];const E=({calls:e,chain:t,maxPriorityFeePerGas:r,maxFeePerGas:n,nonce:a})=>e.map((e=>({to:e.to||void 0,data:e.data,value:e.value,chainId:t.id,nonce:a,maxFeePerGas:n,maxPriorityFeePerGas:r}))),g=async({chain:e,paymasterContext:r,embeddedWallet:i,user:o,smartWalletsConfig:c,rpcConfig:d,privyAppId:u})=>{if(!c?.enabled||!o||!i)return;let p=await i.getEthereumProvider(),E=c?.configuredNetworks.find((t=>t.chainId===`eip155:${e.id}`));if(!E)throw new n.PrivyClientError(`The chain ${e.name} (eip155:${e.id}) must be configured in the smart wallet configuration in your dashboard`);let g=o.smartWallet?.smartWalletType??c.smartWalletType,C=a.getJsonRpcEndpointFromChain(e,d,u),I=t.createPublicClient({chain:e,transport:t.http(C)}),f=r??E.paymasterContext,h=await(async({owner:e,smartWalletType:r,chain:n,publicClient:a,bundlerUrl:i,paymasterUrl:o,paymasterContext:c})=>{let d=await y({owner:e,smartWalletType:r,publicClient:a}),u=l.createPimlicoClient({transport:t.http(i),entryPoint:d.entryPoint}),p=o?l.createPimlicoClient({transport:t.http(o),entryPoint:d.entryPoint}):void 0;return s.createSmartAccountClient({account:d,chain:n,paymaster:p,paymasterContext:c,bundlerTransport:t.http(i),userOperation:{estimateFeesPerGas:async()=>{if(m.some((e=>i.includes(e))))return await u.getUserOperationGasPrice().then((e=>e.fast));{let e=await a.estimateFeesPerGas(),t=i.includes("api.developer.coinbase.com")?175n:150n;return{...e,maxFeePerGas:e.maxFeePerGas*t/100n,maxPriorityFeePerGas:e.maxPriorityFeePerGas*t/100n}}}}})})({owner:p,smartWalletType:g,chain:e,publicClient:I,paymasterContext:f,...E});if(!h)throw new n.PrivyClientError(`Failed to create smart wallet client for chain ${e.name} (eip155:${e.id})`);return h};exports.callsToTransactionRequests=E,exports.getSmartWalletClient=g,exports.useSmartWalletsUIWrapper=()=>{let{hideWalletUIs:e,openPrivyModal:t}=n.usePrivyInternal(),a=r.useAppConfig(),{setModalData:i}=r.usePrivyModal(),{user:s}=r.usePrivyContext();return{wrapSmartAccountClientWithUIs:n=>({...n,sendTransaction:async(o,l)=>{if(!a.embeddedWallets.showWalletUIs)return e.current=!0,await n.sendTransaction(o).finally((()=>e.current=!1));let c=[];"calls"in o&&void 0!==o.calls?c=[...o.calls]:"to"in o&&(c=[{to:o.to,value:o.value||BigInt(0),data:o.data||"0x"}]);let d=async()=>{if(!n.paymaster)return!1;let{paymasterAndData:e,paymasterData:t}=await n.prepareUserOperation({calls:c,maxFeePerGas:o.maxFeePerGas,maxPriorityFeePerGas:o.maxPriorityFeePerGas,nonce:o.nonce?BigInt(o.nonce):void 0});return Number(e??t??0)>0};return new Promise((async(a,u)=>{e.current=!0;let{entropyId:p,entropyIdVerifier:y}=r.getEntropyDetailsFromUser(s);i({connectWallet:{entropyId:p,entropyIdVerifier:y,onCompleteNavigateTo:r.ModalScreen.EMBEDDED_WALLET_SEND_TRANSACTION_SCREEN,onFailure:()=>{}},sendTransaction:{transactionRequests:E({calls:c,chain:n.chain,maxPriorityFeePerGas:o.maxPriorityFeePerGas,maxFeePerGas:o.maxFeePerGas,nonce:o.nonce?BigInt(o.nonce):void 0}),entropyId:p,entropyIdVerifier:y,transactingWallet:{address:n.account.address,walletIndex:null},getIsSponsored:d,signOnly:!1,onConfirm:()=>n.sendTransaction(o),onSuccess:e=>a(e.hash),onFailure:u,uiOptions:l?.uiOptions??{}}}),t(r.ModalScreen.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{e.current=!1}))},signMessage:async(o,l)=>a.embeddedWallets.showWalletUIs?new Promise((async(a,c)=>{let{entropyId:d,entropyIdVerifier:u}=r.getEntropyDetailsFromUser(s);e.current=!0,i({connectWallet:{entropyId:d,entropyIdVerifier:u,onCompleteNavigateTo:r.ModalScreen.EMBEDDED_WALLET_SIGN_REQUEST_SCREEN,onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof o.message?o.message:o.message.raw.toString(),confirmAndSign:()=>n.signMessage(o),onSuccess:e=>a(e),onFailure:c,uiOptions:l?.uiOptions??{}}}),t(r.ModalScreen.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{e.current=!1})):(e.current=!0,await n.signMessage(o).finally((()=>e.current=!1))),signTypedData:async(o,l)=>a.embeddedWallets.showWalletUIs?new Promise((async(a,c)=>{e.current=!0;let{entropyId:d,entropyIdVerifier:u}=r.getEntropyDetailsFromUser(s);i({connectWallet:{entropyId:d,entropyIdVerifier:u,onCompleteNavigateTo:r.ModalScreen.EMBEDDED_WALLET_SIGN_REQUEST_SCREEN,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:o,confirmAndSign:()=>n.signTypedData(o),onSuccess:e=>a(e),onFailure:c,uiOptions:l?.uiOptions??{}}}),t(r.ModalScreen.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{e.current=!1})):(e.current=!0,await n.signTypedData(o).finally((()=>e.current=!1)))})}},exports.useSmartWalletsWrapper=({clientConfig:t,smartWalletsConfig:a})=>{let{hideWalletUIs:s,openPrivyModal:o,appId:l}=n.usePrivyInternal(),c=r.useAppConfig(),{setModalData:d}=r.usePrivyModal(),{user:u}=r.usePrivyContext(),{chains:p}=r.useAppConfig(),{chainId:y,clients:m,setChainId:C,chainIdState:I}=(()=>{let t=e.useRef(),[r,n]=e.useState();return{clients:e.useRef({}),setChainId:e=>{t.current=e,n(e)},chainId:t,chainIdState:r}})(),f=p.find((e=>e.id===I)),{wallets:h}=r.useWallets(),P=e.useCallback((async()=>y.current),[y]),S=e.useCallback((async({id:e})=>{if(!m.current[e]){let r=i.getEmbeddedConnectedWallet(h),n=await g({chain:p.find((t=>t.id===e)),embeddedWallet:r,user:u,paymasterContext:t?.paymasterContext,smartWalletsConfig:a,rpcConfig:c.rpcConfig,privyAppId:l});n&&(m.current[e]=n)}C(e)}),[p,t,h,u,a]);return{wrapSmartAccountClient:e=>{m.current[e.chain.id]=e,I||C(e.chain.id);return{...e,sendTransaction:async(e,t)=>{let a=m.current[y.current];if(!a)throw new n.PrivyClientError(`Smart wallet client for chain (eip155:${y.current}) not found`);if(delete e.account,!c.embeddedWallets.showWalletUIs)return s.current=!0,await a.sendTransaction(e).finally((()=>s.current=!1));let i=[];"calls"in e&&void 0!==e.calls?i=[...e.calls]:"to"in e&&(i=[{to:e.to,value:e.value||BigInt(0),data:e.data||"0x"}]);let l=async()=>{if(!a.paymaster)return!1;let{paymasterAndData:t,paymasterData:r}=await a.prepareUserOperation({calls:i,maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0});return Number(t??r??0)>0};return new Promise((async(n,c)=>{s.current=!0;let{entropyId:p,entropyIdVerifier:y}=r.getEntropyDetailsFromUser(u);d({connectWallet:{entropyId:p,entropyIdVerifier:y,onCompleteNavigateTo:r.ModalScreen.EMBEDDED_WALLET_SEND_TRANSACTION_SCREEN,onFailure:()=>{}},sendTransaction:{transactionRequests:E({calls:i,chain:a.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),entropyId:p,entropyIdVerifier:y,transactingWallet:{address:a.account.address,walletIndex:null},getIsSponsored:l,signOnly:!1,onConfirm:()=>a.sendTransaction(e),onSuccess:e=>n(e.hash),onFailure:c,uiOptions:t?.uiOptions??{}}}),o(r.ModalScreen.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{s.current=!1}))},signMessage:async(e,t)=>{let a=m.current[y.current];if(!a)throw new n.PrivyClientError(`Smart wallet client for chain (eip155:${y.current}) not found`);return c.embeddedWallets.showWalletUIs?new Promise((async(n,i)=>{let{entropyId:l,entropyIdVerifier:c}=r.getEntropyDetailsFromUser(u);s.current=!0,d({connectWallet:{entropyId:l,entropyIdVerifier:c,onCompleteNavigateTo:r.ModalScreen.EMBEDDED_WALLET_SIGN_REQUEST_SCREEN,onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof e.message?e.message:e.message.raw.toString(),confirmAndSign:()=>a.signMessage(e),onSuccess:e=>n(e),onFailure:i,uiOptions:t?.uiOptions??{}}}),o(r.ModalScreen.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{s.current=!1})):(s.current=!0,await a.signMessage(e).finally((()=>s.current=!1)))},signTypedData:async(e,t)=>{let a=m.current[y.current];if(!a)throw new n.PrivyClientError(`Smart wallet client for chain (eip155:${y.current}) not found`);return delete e.account,c.embeddedWallets.showWalletUIs?new Promise((async(n,i)=>{s.current=!0;let{entropyId:l,entropyIdVerifier:c}=r.getEntropyDetailsFromUser(u);d({connectWallet:{entropyId:l,entropyIdVerifier:c,onCompleteNavigateTo:r.ModalScreen.EMBEDDED_WALLET_SIGN_REQUEST_SCREEN,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:e,confirmAndSign:()=>a.signTypedData(e),onSuccess:e=>n(e),onFailure:i,uiOptions:t?.uiOptions??{}}}),o(r.ModalScreen.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{s.current=!1})):(s.current=!0,await a.signTypedData(e).finally((()=>s.current=!1)))},getChainId:P,chain:f,switchChain:S}}}};
1
+ "use strict";var e=require("react"),t=require("viem"),r=require("./useWallets-y1wsvg5v.js"),n=require("./internal-context-BFE-DjTn.js"),a=require("./getPublicClient-BjV7zj03.js"),i=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js"),s=require("permissionless"),o=require("permissionless/accounts"),l=require("permissionless/clients/pimlico"),c=require("viem/account-abstraction"),d=require("@privy-io/js-sdk-core");let u={address:c.entryPoint06Address,version:"0.6"},p={address:c.entryPoint07Address,version:"0.7"},y=({owner:e,smartWalletType:t,publicClient:r})=>{switch(t){case d.SAFE:return o.toSafeSmartAccount({client:r,entryPoint:p,owners:[e],version:"1.4.1"});case d.KERNEL:return o.toEcdsaKernelSmartAccount({client:r,version:"0.3.1",entryPoint:p,owners:[e]});case d.BICONOMY:return o.toBiconomySmartAccount({client:r,owners:[e],entryPoint:u});case d.LIGHT_ACCOUNT:return o.toLightSmartAccount({client:r,entryPoint:u,owner:e,version:"1.1.0"});case d.COINBASE_SMART_WALLET:return async function({client:e,owner:t}){let[r]=await t.request({method:"eth_accounts"});if(!r)throw Error("Unable to request embedded owner for eth_accounts");return await c.toCoinbaseSmartAccount({client:e,owners:[{type:"local",source:"privy",address:r,sign:async({hash:e})=>await t.request({method:"secp256k1_sign",params:[e]})}]})}({client:r,owner:e});case d.THIRDWEB:return o.toThirdwebSmartAccount({client:r,entryPoint:p,owner:e});default:throw Error(`Invalid smart account type: ${t}.`)}},m=["rpc.zerodev.app","public.pimlico.io","api.pimlico.io"];const E=({calls:e,chain:t,maxPriorityFeePerGas:r,maxFeePerGas:n,nonce:a})=>e.map((e=>({to:e.to||void 0,data:e.data,value:e.value,chainId:t.id,nonce:a,maxFeePerGas:n,maxPriorityFeePerGas:r}))),g=async({chain:e,paymasterContext:r,embeddedWallet:i,user:o,smartWalletsConfig:c,rpcConfig:d,privyAppId:u})=>{if(!c?.enabled||!o||!i)return;let p=await i.getEthereumProvider(),E=c?.configuredNetworks.find((t=>t.chainId===`eip155:${e.id}`));if(!E)throw new n.PrivyClientError(`The chain ${e.name} (eip155:${e.id}) must be configured in the smart wallet configuration in your dashboard`);let g=o.smartWallet?.smartWalletType??c.smartWalletType,C=a.getJsonRpcEndpointFromChain(e,d,u),I=t.createPublicClient({chain:e,transport:t.http(C)}),f=r??E.paymasterContext,h=await(async({owner:e,smartWalletType:r,chain:n,publicClient:a,bundlerUrl:i,paymasterUrl:o,paymasterContext:c})=>{let d=await y({owner:e,smartWalletType:r,publicClient:a}),u=l.createPimlicoClient({transport:t.http(i),entryPoint:d.entryPoint}),p=o?l.createPimlicoClient({transport:t.http(o),entryPoint:d.entryPoint}):void 0;return s.createSmartAccountClient({account:d,chain:n,paymaster:p,paymasterContext:c,bundlerTransport:t.http(i),userOperation:{estimateFeesPerGas:async()=>{if(m.some((e=>i.includes(e))))return await u.getUserOperationGasPrice().then((e=>e.fast));{let e=await a.estimateFeesPerGas(),t=i.includes("api.developer.coinbase.com")?175n:150n;return{...e,maxFeePerGas:e.maxFeePerGas*t/100n,maxPriorityFeePerGas:e.maxPriorityFeePerGas*t/100n}}}}})})({owner:p,smartWalletType:g,chain:e,publicClient:I,paymasterContext:f,...E});if(!h)throw new n.PrivyClientError(`Failed to create smart wallet client for chain ${e.name} (eip155:${e.id})`);return h};exports.callsToTransactionRequests=E,exports.getSmartWalletClient=g,exports.useSmartWalletsUIWrapper=()=>{let{hideWalletUIs:e,openPrivyModal:t}=n.usePrivyInternal(),a=r.useAppConfig(),{setModalData:i}=r.usePrivyModal(),{user:s}=r.usePrivyContext();return{wrapSmartAccountClientWithUIs:n=>({...n,sendTransaction:async(o,l)=>{if(!a.embeddedWallets.showWalletUIs)return e.current=!0,await n.sendTransaction(o).finally((()=>e.current=!1));let c=[];"calls"in o&&void 0!==o.calls?c=[...o.calls]:"to"in o&&(c=[{to:o.to,value:o.value||BigInt(0),data:o.data||"0x"}]);let d=async()=>{if(!n.paymaster)return!1;let{paymasterAndData:e,paymasterData:t}=await n.prepareUserOperation({calls:c,maxFeePerGas:o.maxFeePerGas,maxPriorityFeePerGas:o.maxPriorityFeePerGas,nonce:o.nonce?BigInt(o.nonce):void 0});return Number(e??t??0)>0};return new Promise((async(a,u)=>{e.current=!0;let{entropyId:p,entropyIdVerifier:y}=r.getEntropyDetailsFromUser(s);i({connectWallet:{entropyId:p,entropyIdVerifier:y,onCompleteNavigateTo:r.ModalScreen.EMBEDDED_WALLET_SEND_TRANSACTION_SCREEN,onFailure:()=>{}},sendTransaction:{transactionRequests:E({calls:c,chain:n.chain,maxPriorityFeePerGas:o.maxPriorityFeePerGas,maxFeePerGas:o.maxFeePerGas,nonce:o.nonce?BigInt(o.nonce):void 0}),entropyId:p,entropyIdVerifier:y,transactingWallet:{address:n.account.address,walletIndex:null},getIsSponsored:d,signOnly:!1,onConfirm:()=>n.sendTransaction(o),onSuccess:e=>a(e.hash),onFailure:u,uiOptions:l?.uiOptions??{}}}),t(r.ModalScreen.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{e.current=!1}))},signMessage:async(o,l)=>a.embeddedWallets.showWalletUIs?new Promise((async(a,c)=>{let{entropyId:d,entropyIdVerifier:u}=r.getEntropyDetailsFromUser(s);e.current=!0,i({connectWallet:{entropyId:d,entropyIdVerifier:u,onCompleteNavigateTo:r.ModalScreen.EMBEDDED_WALLET_SIGN_REQUEST_SCREEN,onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof o.message?o.message:o.message.raw.toString(),confirmAndSign:()=>n.signMessage(o),onSuccess:e=>a(e),onFailure:c,uiOptions:l?.uiOptions??{}}}),t(r.ModalScreen.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{e.current=!1})):(e.current=!0,await n.signMessage(o).finally((()=>e.current=!1))),signTypedData:async(o,l)=>a.embeddedWallets.showWalletUIs?new Promise((async(a,c)=>{e.current=!0;let{entropyId:d,entropyIdVerifier:u}=r.getEntropyDetailsFromUser(s);i({connectWallet:{entropyId:d,entropyIdVerifier:u,onCompleteNavigateTo:r.ModalScreen.EMBEDDED_WALLET_SIGN_REQUEST_SCREEN,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:o,confirmAndSign:()=>n.signTypedData(o),onSuccess:e=>a(e),onFailure:c,uiOptions:l?.uiOptions??{}}}),t(r.ModalScreen.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{e.current=!1})):(e.current=!0,await n.signTypedData(o).finally((()=>e.current=!1)))})}},exports.useSmartWalletsWrapper=({clientConfig:t,smartWalletsConfig:a})=>{let{hideWalletUIs:s,openPrivyModal:o,appId:l}=n.usePrivyInternal(),c=r.useAppConfig(),{setModalData:d}=r.usePrivyModal(),{user:u}=r.usePrivyContext(),{chains:p}=r.useAppConfig(),{chainId:y,clients:m,setChainId:C,chainIdState:I}=(()=>{let t=e.useRef(),[r,n]=e.useState();return{clients:e.useRef({}),setChainId:e=>{t.current=e,n(e)},chainId:t,chainIdState:r}})(),f=p.find((e=>e.id===I)),{wallets:h}=r.useWallets(),P=e.useCallback((async()=>y.current),[y]),S=e.useCallback((async({id:e})=>{if(!m.current[e]){let r=i.getEmbeddedConnectedWallet(h),n=await g({chain:p.find((t=>t.id===e)),embeddedWallet:r,user:u,paymasterContext:t?.paymasterContext,smartWalletsConfig:a,rpcConfig:c.rpcConfig,privyAppId:l});n&&(m.current[e]=n)}C(e)}),[p,t,h,u,a]);return{wrapSmartAccountClient:e=>{m.current[e.chain.id]=e,I||C(e.chain.id);return{...e,sendTransaction:async(e,t)=>{let a=m.current[y.current];if(!a)throw new n.PrivyClientError(`Smart wallet client for chain (eip155:${y.current}) not found`);if(delete e.account,!c.embeddedWallets.showWalletUIs)return s.current=!0,await a.sendTransaction(e).finally((()=>s.current=!1));let i=[];"calls"in e&&void 0!==e.calls?i=[...e.calls]:"to"in e&&(i=[{to:e.to,value:e.value||BigInt(0),data:e.data||"0x"}]);let l=async()=>{if(!a.paymaster)return!1;let{paymasterAndData:t,paymasterData:r}=await a.prepareUserOperation({calls:i,maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0});return Number(t??r??0)>0};return new Promise((async(n,c)=>{s.current=!0;let{entropyId:p,entropyIdVerifier:y}=r.getEntropyDetailsFromUser(u);d({connectWallet:{entropyId:p,entropyIdVerifier:y,onCompleteNavigateTo:r.ModalScreen.EMBEDDED_WALLET_SEND_TRANSACTION_SCREEN,onFailure:()=>{}},sendTransaction:{transactionRequests:E({calls:i,chain:a.chain,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas,nonce:e.nonce?BigInt(e.nonce):void 0}),entropyId:p,entropyIdVerifier:y,transactingWallet:{address:a.account.address,walletIndex:null},getIsSponsored:l,signOnly:!1,onConfirm:()=>a.sendTransaction(e),onSuccess:e=>n(e.hash),onFailure:c,uiOptions:t?.uiOptions??{}}}),o(r.ModalScreen.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{s.current=!1}))},signMessage:async(e,t)=>{let a=m.current[y.current];if(!a)throw new n.PrivyClientError(`Smart wallet client for chain (eip155:${y.current}) not found`);return c.embeddedWallets.showWalletUIs?new Promise((async(n,i)=>{let{entropyId:l,entropyIdVerifier:c}=r.getEntropyDetailsFromUser(u);s.current=!0,d({connectWallet:{entropyId:l,entropyIdVerifier:c,onCompleteNavigateTo:r.ModalScreen.EMBEDDED_WALLET_SIGN_REQUEST_SCREEN,onFailure:()=>{}},signMessage:{method:"personal_sign",data:"string"==typeof e.message?e.message:e.message.raw.toString(),confirmAndSign:()=>a.signMessage(e),onSuccess:e=>n(e),onFailure:i,uiOptions:t?.uiOptions??{}}}),o(r.ModalScreen.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{s.current=!1})):(s.current=!0,await a.signMessage(e).finally((()=>s.current=!1)))},signTypedData:async(e,t)=>{let a=m.current[y.current];if(!a)throw new n.PrivyClientError(`Smart wallet client for chain (eip155:${y.current}) not found`);return delete e.account,c.embeddedWallets.showWalletUIs?new Promise((async(n,i)=>{s.current=!0;let{entropyId:l,entropyIdVerifier:c}=r.getEntropyDetailsFromUser(u);d({connectWallet:{entropyId:l,entropyIdVerifier:c,onCompleteNavigateTo:r.ModalScreen.EMBEDDED_WALLET_SIGN_REQUEST_SCREEN,onFailure:()=>{}},signMessage:{method:"eth_signTypedData_v4",data:e,confirmAndSign:()=>a.signTypedData(e),onSuccess:e=>n(e),onFailure:i,uiOptions:t?.uiOptions??{}}}),o(r.ModalScreen.EMBEDDED_WALLET_CONNECTING_SCREEN)})).finally((()=>{s.current=!1})):(s.current=!0,await a.signTypedData(e).finally((()=>s.current=!1)))},getChainId:P,chain:f,switchChain:S}}}};
@@ -1 +1 @@
1
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("./useWallets-DobnZGpT.js"),i=require("./internal-context-BFE-DjTn.js"),n=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js"),a=require("./smart-wallets-DlC_5Y5l.js");require("viem/utils"),require("tinycolor2"),require("ofetch"),require("viem"),require("./getPublicClient-BjV7zj03.js"),require("permissionless"),require("permissionless/accounts"),require("permissionless/clients/pimlico"),require("viem/account-abstraction"),require("@privy-io/js-sdk-core");let l=/*#__PURE__*/t.createContext({client:void 0,getClientForChain:i.notImplemented});let s=/*#__PURE__*/t.createContext({config:void 0}),o=()=>{let{config:e}=t.useContext(s);return{config:e}},c=({children:r})=>{let[n,a]=t.useState(void 0),{client:l}=i.usePrivyInternal();return t.useEffect((()=>{!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.jsx(s.Provider,{value:{config:n},children:r})},d=({config:l,children:s})=>{let{config:c}=o(),{appId:d}=i.usePrivyInternal(),{chains:g,defaultChain:f,rpcConfig:C}=r.useAppConfig(),{wallets:m}=r.useWallets(),{user:h}=r.usePrivyContext(),[p,v]=t.useState(),{wrapSmartAccountClientWithUIs:W}=a.useSmartWalletsUIWrapper(),y=n.getEmbeddedConnectedWallet(m);t.useEffect((()=>{(async()=>{if(!c?.enabled)return;let e=c.configuredNetworks.find((e=>e.chainId===`eip155:${f.id}`))?f:g.find((e=>c.configuredNetworks.map((e=>e.chainId)).includes(`eip155:${e.id}`)));if(!e)throw new i.PrivyClientError("Could not find smart wallets chain configurations for any Privy client configured chains. Please configure smart wallets for your chains in the Privy dashboard.");v(await a.getSmartWalletClient({chain:e,privyAppId:d,paymasterContext:l?.paymasterContext,rpcConfig:C,embeddedWallet:y,user:h,smartWalletsConfig:c}))})()}),[!!c?.enabled,!!h?.smartWallet,!!y]);/*#__PURE__*/return e.jsx(u.Provider,{value:{client:p,config:l,getClientForChain:async({id:e})=>{let t=n.getEmbeddedConnectedWallet(m),r=await a.getSmartWalletClient({chain:g.find((t=>t.id===e)),privyAppId:d,paymasterContext:l?.paymasterContext,rpcConfig:C,embeddedWallet:t,user:h,smartWalletsConfig:c});if(!r)throw new i.PrivyClientError(`Failed to create smart wallet client for chain id: ${e}`);return W(r)}},children:s})},u=/*#__PURE__*/t.createContext({client:void 0,config:void 0,getClientForChain:i.notImplemented}),g=({children:n})=>{let{client:s,config:c,getClientForChain:d}=(()=>{let{client:e,config:r,getClientForChain:i}=t.useContext(u);return{client:e,config:r,getClientForChain:i}})(),{config:g}=o(),{wrapSmartAccountClient:f}=a.useSmartWalletsWrapper({clientConfig:c,smartWalletsConfig:g}),{user:C}=r.usePrivyContext(),{generateSiweMessageForSmartWallet:m,linkSmartWallet:h,hideWalletUIs:p}=i.usePrivyInternal();return t.useEffect((()=>{(async()=>{if(s&&C&&!C?.smartWallet&&g?.enabled)try{let e=await m({address:s.account.address,chainId:`eip155:${s.chain.id}`});p.current=!0;let t=await s.signMessage({message:e});await h({signature:t,message:e,smartWalletType:g.smartWalletType})}catch(e){console.error("Error creating smart wallet:",e)}finally{p.current=!1}})()}),[!!s,!!C?.smartWallet,!!g?.enabled]),/*#__PURE__*/e.jsx(l.Provider,{value:{client:C?.smartWallet&&s?f(s):void 0,getClientForChain:d},children:n})};exports.SmartWalletsProvider=({config:t,children:r})=>/*#__PURE__*/e.jsx(c,{children:/*#__PURE__*/e.jsx(d,{config:t,children:/*#__PURE__*/e.jsx(g,{children:r})})}),exports.useSmartWallets=()=>{let{client:e,getClientForChain:r}=t.useContext(l);return{client:e,getClientForChain:r}};
1
+ "use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("./useWallets-y1wsvg5v.js"),i=require("./internal-context-BFE-DjTn.js"),n=require("./getEmbeddedConnectedWallet-DTU4T9TJ.js"),a=require("./smart-wallets-CBoK3FJE.js");require("viem/utils"),require("tinycolor2"),require("ofetch"),require("viem"),require("./getPublicClient-BjV7zj03.js"),require("permissionless"),require("permissionless/accounts"),require("permissionless/clients/pimlico"),require("viem/account-abstraction"),require("@privy-io/js-sdk-core");let l=/*#__PURE__*/t.createContext({client:void 0,getClientForChain:i.notImplemented});let s=/*#__PURE__*/t.createContext({config:void 0}),o=()=>{let{config:e}=t.useContext(s);return{config:e}},c=({children:r})=>{let[n,a]=t.useState(void 0),{client:l}=i.usePrivyInternal();return t.useEffect((()=>{!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.jsx(s.Provider,{value:{config:n},children:r})},d=({config:l,children:s})=>{let{config:c}=o(),{appId:d}=i.usePrivyInternal(),{chains:g,defaultChain:f,rpcConfig:C}=r.useAppConfig(),{wallets:m}=r.useWallets(),{user:h}=r.usePrivyContext(),[p,v]=t.useState(),{wrapSmartAccountClientWithUIs:W}=a.useSmartWalletsUIWrapper(),y=n.getEmbeddedConnectedWallet(m);t.useEffect((()=>{(async()=>{if(!c?.enabled)return;let e=c.configuredNetworks.find((e=>e.chainId===`eip155:${f.id}`))?f:g.find((e=>c.configuredNetworks.map((e=>e.chainId)).includes(`eip155:${e.id}`)));if(!e)throw new i.PrivyClientError("Could not find smart wallets chain configurations for any Privy client configured chains. Please configure smart wallets for your chains in the Privy dashboard.");v(await a.getSmartWalletClient({chain:e,privyAppId:d,paymasterContext:l?.paymasterContext,rpcConfig:C,embeddedWallet:y,user:h,smartWalletsConfig:c}))})()}),[!!c?.enabled,!!h?.smartWallet,!!y]);/*#__PURE__*/return e.jsx(u.Provider,{value:{client:p,config:l,getClientForChain:async({id:e})=>{let t=n.getEmbeddedConnectedWallet(m),r=await a.getSmartWalletClient({chain:g.find((t=>t.id===e)),privyAppId:d,paymasterContext:l?.paymasterContext,rpcConfig:C,embeddedWallet:t,user:h,smartWalletsConfig:c});if(!r)throw new i.PrivyClientError(`Failed to create smart wallet client for chain id: ${e}`);return W(r)}},children:s})},u=/*#__PURE__*/t.createContext({client:void 0,config:void 0,getClientForChain:i.notImplemented}),g=({children:n})=>{let{client:s,config:c,getClientForChain:d}=(()=>{let{client:e,config:r,getClientForChain:i}=t.useContext(u);return{client:e,config:r,getClientForChain:i}})(),{config:g}=o(),{wrapSmartAccountClient:f}=a.useSmartWalletsWrapper({clientConfig:c,smartWalletsConfig:g}),{user:C}=r.usePrivyContext(),{generateSiweMessageForSmartWallet:m,linkSmartWallet:h,hideWalletUIs:p}=i.usePrivyInternal();return t.useEffect((()=>{(async()=>{if(s&&C&&!C?.smartWallet&&g?.enabled)try{let e=await m({address:s.account.address,chainId:`eip155:${s.chain.id}`});p.current=!0;let t=await s.signMessage({message:e});await h({signature:t,message:e,smartWalletType:g.smartWalletType})}catch(e){console.error("Error creating smart wallet:",e)}finally{p.current=!1}})()}),[!!s,!!C?.smartWallet,!!g?.enabled]),/*#__PURE__*/e.jsx(l.Provider,{value:{client:C?.smartWallet&&s?f(s):void 0,getClientForChain:d},children:n})};exports.SmartWalletsProvider=({config:t,children:r})=>/*#__PURE__*/e.jsx(c,{children:/*#__PURE__*/e.jsx(d,{config:t,children:/*#__PURE__*/e.jsx(g,{children:r})})}),exports.useSmartWallets=()=>{let{client:e,getClientForChain:r}=t.useContext(l);return{client:e,getClientForChain:r}};
@@ -1 +1 @@
1
- "use strict";var e=require("@solana/wallet-adapter-base"),t=require("@solana/wallet-standard-wallet-adapter-base"),n=require("@wallet-standard/app"),r=require("./prepareFundingModalData-C8wPeHar.js"),a=require("react"),s=require("./importWallet-BvzASqsr.js"),l=require("./internal-context-BFE-DjTn.js"),i=require("./useWallets-DobnZGpT.js"),o=require("./useFundWallet-2Ezrz28N.js");require("eventemitter3"),require("@privy-io/js-sdk-core"),require("react/jsx-runtime"),require("ofetch"),require("viem/utils"),require("tinycolor2"),require("@solana/web3.js");let u=n=>n.filter(e.isWalletAdapterCompatibleStandardWallet).map((e=>new t.StandardWalletAdapter({wallet:e})));exports.SolanaAdapterConnector=r.SolanaWalletConnector,exports.useSolanaWallets=r.useSolanaWallets,exports.useFundWallet=o.useFundWallet,exports.toSolanaWalletConnectors=e=>{let t,{get:a,on:s}=n.getWallets(),l=e?.shouldAutoConnect??!0,i=[],o=[];function p(...e){o=(i=i.concat(...u(e))).map((e=>new r.SolanaWalletConnector(e,l))),t?.(o)}function c(...e){o=(i=i.filter((t=>e.some((e=>t.wallet===e))))).map((e=>new r.SolanaWalletConnector(e,l))),t?.(o)}let g=[s("register",p),s("unregister",c)];return o=(i=u(a())).map((e=>new r.SolanaWalletConnector(e,l))),{_setOnConnectorsUpdated:e=>{t=e},onMount:()=>{g[0]||(g[0]=s("register",p)),g[1]||(g[1]=s("unregister",c))},onUnmount:()=>{let e=g.pop();for(;e;)e(),e=g.pop()},get:()=>o}},exports.useImportWallet=()=>{let{getAccessToken:e,user:t}=i.usePrivyContext(),{refreshSessionAndUser:n,initializeWalletProxy:o}=l.usePrivyInternal(),u=r.useEmitPrivyEvent();return{importWallet:a.useCallback((({privateKey:r})=>s.importWallet({getAccessToken:e,user:t,initializeWalletProxy:o,refreshSessionAndUser:n,emitPrivyEvent:u},{privateKey:r,chainType:"solana"})),[t,e,n,o,u])}},exports.useSendTransaction=function(e){let{sendSolanaTransaction:t}=l.usePrivyInternal();return r.usePrivyEventSubscription("sendSolanaTransaction",e),{sendTransaction:t}},exports.useSignMessage=function(e){let{solanaSignMessage:t}=l.usePrivyInternal();return r.usePrivyEventSubscription("signSolanaMessage",e),{signMessage:async e=>{let n=Buffer.from(e.message).toString("base64"),r=await t({message:n,options:e.options});return new Uint8Array(Buffer.from(r.signature,"base64"))}}},exports.useSignTransaction=function(e){let{signSolanaTransaction:t}=l.usePrivyInternal();return r.usePrivyEventSubscription("signSolanaTransaction",e),{signTransaction:t}},exports.useSolanaFundingPlugin=()=>r.useRegisterPlugin(o.t);
1
+ "use strict";var e=require("@solana/wallet-adapter-base"),t=require("@solana/wallet-standard-wallet-adapter-base"),n=require("@wallet-standard/app"),r=require("./prepareFundingModalData-Cb2nv4dG.js"),a=require("react"),s=require("./importWallet-DnBwVibu.js"),l=require("./internal-context-BFE-DjTn.js"),i=require("./useWallets-y1wsvg5v.js"),o=require("./useFundWallet-BhlJigGm.js");require("eventemitter3"),require("@privy-io/js-sdk-core"),require("react/jsx-runtime"),require("ofetch"),require("viem/utils"),require("tinycolor2"),require("@solana/web3.js");let u=n=>n.filter(e.isWalletAdapterCompatibleStandardWallet).map((e=>new t.StandardWalletAdapter({wallet:e})));exports.SolanaAdapterConnector=r.SolanaWalletConnector,exports.useSolanaWallets=r.useSolanaWallets,exports.useFundWallet=o.useFundWallet,exports.toSolanaWalletConnectors=e=>{let t,{get:a,on:s}=n.getWallets(),l=e?.shouldAutoConnect??!0,i=[],o=[];function p(...e){o=(i=i.concat(...u(e))).map((e=>new r.SolanaWalletConnector(e,l))),t?.(o)}function c(...e){o=(i=i.filter((t=>e.some((e=>t.wallet===e))))).map((e=>new r.SolanaWalletConnector(e,l))),t?.(o)}let g=[s("register",p),s("unregister",c)];return o=(i=u(a())).map((e=>new r.SolanaWalletConnector(e,l))),{_setOnConnectorsUpdated:e=>{t=e},onMount:()=>{g[0]||(g[0]=s("register",p)),g[1]||(g[1]=s("unregister",c))},onUnmount:()=>{let e=g.pop();for(;e;)e(),e=g.pop()},get:()=>o}},exports.useImportWallet=()=>{let{getAccessToken:e,user:t}=i.usePrivyContext(),{refreshSessionAndUser:n,initializeWalletProxy:o}=l.usePrivyInternal(),u=r.useEmitPrivyEvent();return{importWallet:a.useCallback((({privateKey:r})=>s.importWallet({getAccessToken:e,user:t,initializeWalletProxy:o,refreshSessionAndUser:n,emitPrivyEvent:u},{privateKey:r,chainType:"solana"})),[t,e,n,o,u])}},exports.useSendTransaction=function(e){let{sendSolanaTransaction:t}=l.usePrivyInternal();return r.usePrivyEventSubscription("sendSolanaTransaction",e),{sendTransaction:t}},exports.useSignMessage=function(e){let{solanaSignMessage:t}=l.usePrivyInternal();return r.usePrivyEventSubscription("signSolanaMessage",e),{signMessage:async e=>{let n=Buffer.from(e.message).toString("base64"),r=await t({message:n,options:e.options});return new Uint8Array(Buffer.from(r.signature,"base64"))}}},exports.useSignTransaction=function(e){let{signSolanaTransaction:t}=l.usePrivyInternal();return r.usePrivyEventSubscription("signSolanaTransaction",e),{signTransaction:t}},exports.useSolanaFundingPlugin=()=>r.useRegisterPlugin(o.t);