@getpara/evm-wallet-connectors 1.4.3 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +802 -1
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -1,2 +1,803 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{createContext as Ne,useEffect as X,useMemo as K}from"react";import{useAccount as je,useSwitchChain as ue,useConnect as Te,useDisconnect as Ce,useEnsName as de,useEnsAvatar as ye}from"wagmi";var O=e=>!!(!e.isRainbowKitConnector&&e.icon?.startsWith("data:image")&&e.uid&&e.name);var H=async(e,t)=>{let i=await e.getProvider();return e.type==="coinbaseWallet"?i.qrUrl:new Promise(r=>i.once("display_uri",a=>{r(t?t(a):a)}))};import{isMobile as me,WalletType as Q}from"@getpara/react-sdk";import{normalize as pe}from"viem/ens";import{create as ge}from"zustand";import{syncTabs as De}from"zustand-sync-tabs";var U=ge(De(e=>({isConnecting:!1,updateState:t=>{e({...t})}}),{name:"para-evm-external-wallet-state"}));import{jsx as Ae}from"react/jsx-runtime";var xe={wallets:[],chains:[],chainId:void 0,username:void 0,avatar:void 0,disconnect:()=>Promise.resolve(),switchChain:()=>Promise.resolve({})},S=Ne(xe);function Y({children:e,para:t,onSwitchWallet:i}){let{connectAsync:r,connectors:a}=Te(),{address:o,isConnecting:I,isReconnecting:u,chainId:D,connector:N}=je(),{chains:j,switchChainAsync:A}=ue(),{disconnectAsync:l}=Ce(),{data:g}=de({address:o}),{data:T}=ye({name:pe(g)}),p=U(n=>n.isConnecting),C=U(n=>n.updateState),z=()=>{let n=localStorage.getItem("@CAPSULE/externalWallets"),M={};return n&&(M=JSON.parse(n)),M};X(()=>{let n=z()[o??""];!I&&!u&&!p&&o&&!n&&N?.id!=="para"&&d()},[I,u,p,o,N]),X(()=>{let n=z()[t.currentExternalWalletAddresses?.[0]??""];!p&&!I&&!u&&n?.type===Q.EVM&&n?.address!==o&&f(o)},[p,o,u,I]);let L=a,d=async()=>{await l(),await t.logout()},W=async n=>{let M;try{await A({chainId:n})}catch(s){if(s.details.includes("Missing or invalid."))M=["Network not supported.",`You may need to add ${j.find(k=>k.id===n)?.name} support to ${N?.paraDetails?.name??N?.name??"the wallet"} manually.`];else switch(s.name){case"UserRejectedRequestError":{M=["Change request rejected"];break}default:{M=["An unknown error occurred"];break}}}return{error:M}},E=async(n,M)=>{try{await t.externalWalletLogin({address:n,type:Q.EVM,provider:M})}catch{throw await l(),await t.logout(),"Error logging you in. Please try again."}},f=async n=>{C({isConnecting:!0});let M;if(!n)await t.logout();else try{await E(n,N?.name)}catch(s){M=s}i({address:n,error:M}),C({isConnecting:!1})},c=async n=>{C({isConnecting:!0}),await l();let M=await n.getChainId(),s,w;try{if(s=(await r({chainId:j.find(({id:Z})=>Z===M)?.id??j[0]?.id,connector:n})).accounts?.[0],s)try{await E(s,n.name)}catch(Z){s=void 0,w=Z}}catch(k){switch(k.name){case"UserRejectedRequestError":{w="Connection request rejected";break}case"ResourceUnavailableRpcError":{`${n.name}`;break}default:{w="An unknown error occurred";break}}}return C({isConnecting:!1}),{address:s,error:w}},R=async(n,M)=>{let s=M!==void 0?M:me(),w=n.walletConnectModalConnector&&s?n.walletConnectModalConnector:n;return await c(w)},se=n=>()=>H(n,n.paraDetails?.getUri),h={},b;L.filter(n=>!O(n)).forEach(n=>{n.paraDetails&&(h[n.paraDetails.rdns]=n.paraDetails,n.paraDetails.isWalletConnectModalConnector&&(b=n))});let le=L.filter(n=>O(n)).map(n=>n.id),B=L.map(n=>{if(!n.paraDetails?.isWalletConnectModalConnector&&!(!O(n)&&le.includes(n.paraDetails?.rdns))){if(O(n)){let M=h[n.id];return{...n,paraDetails:M}}return n.paraDetails?.id==="walletConnect"&&b?{...n,walletConnectModalConnector:b}:n}}).filter(n=>!!n).map(n=>{let M={...n,...n.paraDetails};return{...M,connect:()=>c(M),connectMobile:s=>R(M,s),type:Q.EVM,getQrUri:se(M)}}),F=j.map(n=>({id:n.id,name:n.name})),V=K(()=>g??o,[g,o]),J=l;return Ae(S.Provider,{value:K(()=>({wallets:B,chains:F,chainId:D,username:V,avatar:T,disconnect:J,switchChain:W}),[B,F,D,V,T,J,W]),children:e})}import{useCallback as we,useEffect as Le,useMemo as v}from"react";import{createConfig as Ee,WagmiProvider as ze}from"wagmi";function $(e,t){let i=[];for(let r of e)i.some(a=>a[t]===r[t])||i.push(r);return i}var P=({appName:e,appDescription:t,appUrl:i,appIcon:r})=>({name:e,description:t??e,url:i??(typeof window<"u"?window.location.href:""),icons:[...r?[r]:[]]});function _(e){return Object.fromEntries(Object.entries(e).filter(([t,i])=>i!==void 0))}var q=(e,{projectId:t,walletConnectParameters:i,appName:r,appDescription:a,appUrl:o,appIcon:I})=>{if(!e.length)throw new Error("No wallet list was provided");let u=-1,D=[],N=[],j=P({appName:r,appDescription:a,appUrl:o,appIcon:I});e.forEach(l=>{u++;let T={...l({projectId:t,appName:r,appIcon:I,options:{metadata:j,...i},walletConnectParameters:{metadata:j,...i}}),index:u};N.push(T)});let A=$([...N],"id");for(let{createConnector:l,...g}of A){let T=C=>({paraDetails:_({...g,isParaConnector:!0,...C||{}})});g.id==="walletConnect"&&D.push(l(T({isWalletConnectModalConnector:!0,showQrModal:!0}))),l&&D.push(l(T()))}return D};import{http as We}from"viem";import{useClient as Oe,useExternalWalletProviderStore as G}from"@getpara/react-sdk";import{connect as ee}from"wagmi/actions";import{paraConnector as fe}from"@getpara/wagmi-v2-integration";import{jsx as Pe}from"react/jsx-runtime";var ke=e=>e.reduce((i,r)=>{let a=r.id;return i[a]=We(),i},{});function Se({children:e,config:t,...i}){let r=G(c=>c.updateState),a=G(c=>c.EvmProvider),o=G(c=>c.evmContext),I=t.para??Oe(),{projectId:u,appName:D,appDescription:N,appIcon:j,appUrl:A,wallets:l,chains:g,transports:T,paraDisableModal:p,paraOptions:C,...z}=t,L=P({appName:D,appDescription:N,appUrl:A,appIcon:j}),d=v(()=>I?fe({para:I,chains:[...g],disableModal:p??!0,appName:D,options:C??{}}):void 0,[I,g,p,D,C]),W=v(()=>{let c=q(l,{projectId:u,appName:D,appDescription:N,appUrl:A,appIcon:j,walletConnectParameters:{metadata:L}});return d?[...c,d]:c},[l,u,D,N,A,j,L,d]),E=v(()=>Ee({...z,chains:g,transports:T||ke(g),connectors:W}),[z,g,T,W]),f=we(async()=>{if(!d)return{error:"No para connector instance"};try{return{result:await ee(E,{connector:d})}}catch(c){return{error:c instanceof Error?c.message:"Unknown error"}}},[d,E,ee]);return Le(()=>{r({EvmProvider:o&&a?a:Y,evmContext:o||S,connectParaEvmWallet:d?f:void 0})},[o,a,d,f,r]),!o||!a?null:Pe(ze,{config:E,...i,children:e})}import{isAndroid as he,isIOS as Be,isTelegram as Fe}from"@getpara/react-sdk";import{createConnector as be}from"wagmi";import{injected as Ze}from"wagmi/connectors";function te(e){let t=typeof window<"u"?window:void 0;if(typeof t>"u"||typeof t.ethereum>"u")return;let i=t.ethereum.providers;return i?i.find(r=>r[e]):t.ethereum[e]?t.ethereum:void 0}function ne(e){let t=(i,r)=>{let[a,...o]=r.split("."),I=i[a];if(I)return o.length===0?I:t(I,o.join("."))};if(typeof window<"u")return t(window,e)}function y({flag:e,namespace:t}){return!!(t&&typeof ne(t)<"u"||e&&typeof te(e)<"u")}function Ue({flag:e,namespace:t}){let i=typeof window<"u"?window:void 0;if(typeof i>"u")return;if(t){let a=ne(t);if(a)return a}let r=i.ethereum?.providers;if(e){let a=te(e);if(a)return a}return typeof r<"u"&&r.length>0?r[0]:i.ethereum}function Qe(e){return t=>{let i=e?{target:()=>({id:t.paraDetails.id,name:t.paraDetails.name,provider:e})}:{};return be(r=>({...Ze(i)(r),...t}))}}function x({flag:e,namespace:t,target:i}){let r=i||Ue({flag:e,namespace:t});return Qe(r)}import{createConnector as Ye}from"wagmi";import{walletConnect as ve}from"wagmi/connectors";var ie=new Map,Ge=({projectId:e,walletConnectParameters:t,paraDetailsShowQrModal:i})=>{let r={...t||{},projectId:e,showQrModal:!1};i&&(r={...r,showQrModal:!0});let a=JSON.stringify(r),o=ie.get(a);if(o)return o;let I=ve(r);return ie.set(a,I),I};function Re({projectId:e,walletDetails:t,walletConnectParameters:i}){return Ye(r=>({...Ge({projectId:e,walletConnectParameters:i,paraDetailsShowQrModal:t.paraDetails.showQrModal})(r),...t,id:t.paraDetails.id}))}function m({projectId:e,walletConnectParameters:t}){if(!e||e==="")throw new Error("No projectId found. Every dApp must now provide a WalletConnect Cloud projectId to enable WalletConnect v2. Sign up for your free key at https://cloud.walletconnect.com/sign-in");return i=>Re({projectId:e,walletDetails:i,walletConnectParameters:t})}var ae="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyMyIgdmlld0JveD0iMCAwIDI0IDIzIiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMjIuODA0OSAwTDEzLjQ0MDIgNi45NTUyOUwxNS4xNzE5IDIuODUxNzdMMjIuODA0OSAwWiIgZmlsbD0iI0UyNzYxQiIvPgogIDxwYXRoIGQ9Ik0xLjE4NTk5IDBMMTAuNDc1NCA3LjAyMTE4TDguODI4MzQgMi44NTE3N0wxLjE4NTk5IDBaTTE5LjQzNTQgMTYuMTIyNEwxNi45NDEzIDE5Ljk0MzVMMjIuMjc3OCAyMS40MTE4TDIzLjgxMTkgMTYuMjA3MUwxOS40MzU0IDE2LjEyMjRaTTAuMTk3NzU0IDE2LjIwNzFMMS43MjI0NiAyMS40MTE4TDcuMDU4OTMgMTkuOTQzNUw0LjU2NDgxIDE2LjEyMjRMMC4xOTc3NTQgMTYuMjA3MVoiIGZpbGw9IiNFNDc2MUIiLz4KICA8cGF0aCBkPSJNNi43NTgwNSA5LjY2NTg2TDUuMjcxIDExLjkxNTNMMTAuNTY5OCAxMi4xNTA2TDEwLjM4MTYgNi40NTY0NUw2Ljc1ODA1IDkuNjY1ODZaTTE3LjIzMzMgOS42NjU4NkwxMy41NjI4IDYuMzkwNTZMMTMuNDQwNCAxMi4xNTA2TDE4LjcyOTggMTEuOTE1M0wxNy4yMzMzIDkuNjY1ODZaTTcuMDU5MjMgMTkuOTQzNUwxMC4yNDA0IDE4LjM5MDZMNy40OTIxNyAxNi4yNDQ3TDcuMDU5MjMgMTkuOTQzNVpNMTMuNzUxIDE4LjM5MDZMMTYuOTQxNiAxOS45NDM1TDE2LjQ5OTIgMTYuMjQ0N0wxMy43NTEgMTguMzkwNloiIGZpbGw9IiNFNDc2MUIiLz4KICA8cGF0aCBkPSJNMTYuOTQxMiAxOS45NDM1TDEzLjc1MDYgMTguMzkwNkwxNC4wMDQ3IDIwLjQ3MDZMMTMuOTc2NSAyMS4zNDU5TDE2Ljk0MTIgMTkuOTQzNVpNNy4wNTg4NCAxOS45NDM1TDEwLjAyMzUgMjEuMzQ1OUwxMC4wMDQ3IDIwLjQ3MDZMMTAuMjQgMTguMzkwNkw3LjA1ODg0IDE5Ljk0MzVaIiBmaWxsPSIjRDdDMUIzIi8+CiAgPHBhdGggZD0iTTEwLjA3MDYgMTQuODcwNkw3LjQxNjUgMTQuMDg5NEw5LjI4OTQ1IDEzLjIzMjlMMTAuMDcwNiAxNC44NzA2Wk0xMy45MiAxNC44NzA2TDE0LjcwMTIgMTMuMjMyOUwxNi41ODM2IDE0LjA4OTRMMTMuOTIgMTQuODcwNloiIGZpbGw9IiMyMzM0NDciLz4KICA8cGF0aCBkPSJNNy4wNTg4MiAxOS45NDM1TDcuNTEwNTggMTYuMTIyM0w0LjU2NDcgMTYuMjA3TDcuMDU4ODIgMTkuOTQzNVpNMTYuNDg5NCAxNi4xMjIzTDE2Ljk0MTIgMTkuOTQzNUwxOS40MzUzIDE2LjIwN0wxNi40ODk0IDE2LjEyMjNaTTE4LjcyOTQgMTEuOTE1M0wxMy40NCAxMi4xNTA2TDEzLjkyOTQgMTQuODcwNkwxNC43MTA2IDEzLjIzMjlMMTYuNTkyOSAxNC4wODk0TDE4LjcyOTQgMTEuOTE1M1pNNy40MTY0NiAxNC4wODk0TDkuMjk4ODIgMTMuMjMyOUwxMC4wNzA2IDE0Ljg3MDZMMTAuNTY5NCAxMi4xNTA2TDUuMjcwNTggMTEuOTE1M0w3LjQxNjQ2IDE0LjA4OTRaIiBmaWxsPSIjQ0Q2MTE2Ii8+CiAgPHBhdGggZD0iTTUuMjcxIDExLjkxNTNMNy40OTIxNyAxNi4yNDQ3TDcuNDE2ODggMTQuMDg5NEw1LjI3MSAxMS45MTUzWk0xNi41OTMzIDE0LjA4OTRMMTYuNDk5MiAxNi4yNDQ3TDE4LjcyOTggMTEuOTE1M0wxNi41OTMzIDE0LjA4OTRaTTEwLjU2OTggMTIuMTUwNkwxMC4wNzEgMTQuODcwNkwxMC42OTIyIDE4LjA4TDEwLjgzMzMgMTMuODU0MUwxMC41Njk4IDEyLjE1MDZaTTEzLjQ0MDQgMTIuMTUwNkwxMy4xODYzIDEzLjg0NDdMMTMuMjk5MiAxOC4wOEwxMy45Mjk4IDE0Ljg3MDZMMTMuNDQwNCAxMi4xNTA2WiIgZmlsbD0iI0U0NzUxRiIvPgogIDxwYXRoIGQ9Ik0xMy45Mjk0IDE0Ljg3MDVMMTMuMjk4OSAxOC4wNzk5TDEzLjc1MDYgMTguMzkwNUwxNi40OTg5IDE2LjI0NDdMMTYuNTkzIDE0LjA4OTRMMTMuOTI5NCAxNC44NzA1Wk03LjQxNjUgMTQuMDg5NEw3LjQ5MTggMTYuMjQ0N0wxMC4yNCAxOC4zOTA1TDEwLjY5MTggMTguMDc5OUwxMC4wNzA2IDE0Ljg3MDVMNy40MTY1IDE0LjA4OTRaIiBmaWxsPSIjRjY4NTFCIi8+CiAgPHBhdGggZD0iTTEzLjk3NjUgMjEuMzQ1OUwxNC4wMDQ3IDIwLjQ3MDZMMTMuNzY5NCAyMC4yNjM1SDEwLjIyMTJMMTAuMDA0NyAyMC40NzA2TDEwLjAyMzUgMjEuMzQ1OUw3LjA1ODg0IDE5Ljk0MzVMOC4wOTQxMyAyMC43OTA2TDEwLjE5MyAyMi4yNDk0SDEzLjc5NzdMMTUuOTA1OSAyMC43OTA2TDE2Ljk0MTIgMTkuOTQzNUwxMy45NzY1IDIxLjM0NTlaIiBmaWxsPSIjQzBBRDlFIi8+CiAgPHBhdGggZD0iTTEzLjc1MDggMTguMzkwNkwxMy4yOTkgMTguMDhIMTAuNjkxOUwxMC4yNDAyIDE4LjM5MDZMMTAuMDA0OSAyMC40NzA2TDEwLjIyMTQgMjAuMjYzNUgxMy43Njk2TDE0LjAwNDkgMjAuNDcwNkwxMy43NTA4IDE4LjM5MDZaIiBmaWxsPSIjMTYxNjE2Ii8+CiAgPHBhdGggZD0iTTIzLjIgNy40MDcwNkwyNCAzLjU2NzA2TDIyLjgwNDcgMEwxMy43NTA2IDYuNzJMMTcuMjMyOSA5LjY2NTg4TDIyLjE1NTMgMTEuMTA1OUwyMy4yNDcxIDkuODM1MjlMMjIuNzc2NSA5LjQ5NjQ3TDIzLjUyOTQgOC44MDk0MUwyMi45NDU5IDguMzU3NjVMMjMuNjk4OCA3Ljc4MzUzTDIzLjIgNy40MDcwNlpNMCAzLjU2NzA2TDAuOCA3LjQwNzA2TDAuMjkxNzY1IDcuNzgzNTNMMS4wNDQ3MSA4LjM1NzY1TDAuNDcwNTg4IDguODA5NDFMMS4yMjM1MyA5LjQ5NjQ3TDAuNzUyOTQxIDkuODM1MjlMMS44MzUyOSAxMS4xMDU5TDYuNzU3NjUgOS42NjU4OEwxMC4yNCA2LjcyTDEuMTg1ODggMEwwIDMuNTY3MDZaIiBmaWxsPSIjNzYzRDE2Ii8+CiAgPHBhdGggZD0iTTIyLjE1NTQgMTEuMTA1OUwxNy4yMzMgOS42NjU5MkwxOC43Mjk1IDExLjkxNTNMMTYuNDk4OSAxNi4yNDQ3TDE5LjQzNTQgMTYuMjA3MUgyMy44MTE5TDIyLjE1NTQgMTEuMTA1OVpNNi43NTc3NSA5LjY2NTkyTDEuODM1NCAxMS4xMDU5TDAuMTk3NzU0IDE2LjIwNzFINC41NjQ4MUw3LjQ5MTg3IDE2LjI0NDdMNS4yNzA3IDExLjkxNTNMNi43NTc3NSA5LjY2NTkyWk0xMy40NDAxIDEyLjE1MDZMMTMuNzUwNyA2LjcyMDA0TDE1LjE4MTMgMi44NTE4MUg4LjgyODM0TDEwLjI0MDEgNi43MjAwNEwxMC41Njk1IDEyLjE1MDZMMTAuNjgyNSAxMy44NjM2TDEwLjY5MTkgMTguMDhIMTMuMjk4OUwxMy4zMTc4IDEzLjg2MzZMMTMuNDQwMSAxMi4xNTA2WiIgZmlsbD0iI0Y2ODUxQiIvPgo8L3N2Zz4=";function Ve(e){return!(!e?.isMetaMask||e.isBraveWallet&&!e._events&&!e._state||e.isApexWallet||e.isAvalanche||e.isBackpack||e.isBifrost||e.isBitKeep||e.isBitski||e.isBlockWallet||e.isCoinbaseWallet||e.isDawn||e.isEnkrypt||e.isExodus||e.isFrame||e.isFrontier||e.isGamestop||e.isHyperPay||e.isImToken||e.isKuCoinWallet||e.isMathWallet||e.isNestWallet||e.isOkxWallet||e.isOKExWallet||e.isOneInchIOSWallet||e.isOneInchAndroidWallet||e.isOpera||e.isPhantom||e.isPortal||e.isRabby||e.isRainbow||e.isStatus||e.isTalisman||e.isTally||e.isTokenPocket||e.isTokenary||e.isTrust||e.isTrustWallet||e.isXDEFI||e.isZeal||e.isZerion||e.__seif)}var Je=({projectId:e,walletConnectParameters:t})=>{let i=y({flag:"isMetaMask"});return{id:"metaMask",name:"MetaMask",rdns:"io.metamask",iconUrl:ae,installed:i,isExtension:!0,isMobile:!0,downloadUrl:"https://metamask.io/download/",getUri:a=>he()?`metamask://wc?uri=${encodeURIComponent(a)}`:Be()?Fe()?`https://metamask.app.link/wc?uri=${encodeURIComponent(a)}`:`metamask://wc?uri=${encodeURIComponent(a)}`:`https://metamask.app.link/wc?uri=${encodeURIComponent(a)}`,createConnector:i?x({target:typeof window<"u"?window.ethereum?.providers?.find(Ve)??window.ethereum:void 0}):m({projectId:e,walletConnectParameters:t})}};import{isAndroid as He,isIOS as Xe,isTelegram as Ke}from"@getpara/react-sdk";var re="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMCA1LjRIMS44QzExLjA3ODQgNS40IDE4LjYgMTIuOTIxNiAxOC42IDIyLjJWMjRIMjIuMkMyMy4xOTQxIDI0IDI0IDIzLjE5NDEgMjQgMjIuMkMyNCA5LjkzOTI3IDE0LjA2MDcgMCAxLjggMEMwLjgwNTg4NyAwIDAgMC44MDU4ODcgMCAxLjhWNS40WiIgZmlsbD0idXJsKCNwYWludDBfcmFkaWFsXzQ0Ml84MjcpIi8+CiAgPHBhdGggZD0iTTE5LjIgMjIuMkgyMy45OTk5QzIzLjk5OTkgMjMuMTk0MSAyMy4xOTQxIDI0IDIyLjE5OTkgMjRIMTkuMlYyMi4yWiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzQ0Ml84MjcpIi8+CiAgPHBhdGggZD0iTTEuOCAwTDEuOCA0LjhIMEwxLjMxMTM0ZS0wNyAxLjhDMS43NDU4OGUtMDcgMC44MDU4ODcgMC44MDU4ODcgLTQuMzQ1NGUtMDggMS44IDBaIiBmaWxsPSJ1cmwoI3BhaW50Ml9saW5lYXJfNDQyXzgyNykiLz4KICA8cGF0aCBkPSJNMCA0Ljc5OTk5SDEuOEMxMS40MDk3IDQuNzk5OTkgMTkuMiAxMi41OTAyIDE5LjIgMjIuMlYyNEgxMy44VjIyLjJDMTMuOCAxNS41NzI2IDguNDI3NDEgMTAuMiAxLjggMTAuMkgwVjQuNzk5OTlaIiBmaWxsPSJ1cmwoI3BhaW50M19yYWRpYWxfNDQyXzgyNykiLz4KICA8cGF0aCBkPSJNMTQuMzk5OSAyMi4ySDE5LjE5OTlWMjRIMTQuMzk5OVYyMi4yWiIgZmlsbD0idXJsKCNwYWludDRfbGluZWFyXzQ0Ml84MjcpIi8+CiAgPHBhdGggZD0iTTIuMDk4MTVlLTA3IDkuNTk5OTlMMCA0Ljc5OTk5TDEuOCA0Ljc5OTk5TDEuOCA5LjU5OTk5SDIuMDk4MTVlLTA3WiIgZmlsbD0idXJsKCNwYWludDVfbGluZWFyXzQ0Ml84MjcpIi8+CiAgPHBhdGggZD0iTTAgMTIuNkMwIDEzLjU5NDEgMC44MDU4ODcgMTQuNCAxLjggMTQuNEM2LjEwNzgyIDE0LjQgOS42IDE3Ljg5MjEgOS42IDIyLjJDOS42IDIzLjE5NDEgMTAuNDA1OSAyNCAxMS40IDI0SDE0LjRWMjIuMkMxNC40IDE1LjI0MTIgOC43NTg3OCA5LjU5OTk4IDEuOCA5LjU5OTk4SDBWMTIuNloiIGZpbGw9InVybCgjcGFpbnQ2X3JhZGlhbF80NDJfODI3KSIvPgogIDxwYXRoIGQ9Ik05LjYwMDEgMjIuMkgxNC40MDAxVjI0SDExLjQwMDFDMTAuNDA2IDI0IDkuNjAwMSAyMy4xOTQxIDkuNjAwMSAyMi4yWiIgZmlsbD0idXJsKCNwYWludDdfcmFkaWFsXzQ0Ml84MjcpIi8+CiAgPHBhdGggZD0iTTEuOCAxNC40QzAuODA1ODg3IDE0LjQgMS43NDU4OGUtMDcgMTMuNTk0MSAxLjMxMTM0ZS0wNyAxMi42TDAgOS41OTk5OEwxLjggOS41OTk5OEwxLjggMTQuNFoiIGZpbGw9InVybCgjcGFpbnQ4X3JhZGlhbF80NDJfODI3KSIvPgogIDxkZWZzPgogICAgPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDBfcmFkaWFsXzQ0Ml84MjciIGN4PSIwIiBjeT0iMCIgcj0iMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS44IDIyLjIpIHJvdGF0ZSgtOTApIHNjYWxlKDIyLjIpIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwLjc3MDI3NyIgc3RvcC1jb2xvcj0iI0ZGNDAwMCIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM4NzU0QzkiLz4KICAgIDwvcmFkaWFsR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MV9saW5lYXJfNDQyXzgyNyIgeDE9IjE4LjkiIHkxPSIyMy4xIiB4Mj0iMjMuOTk5OSIgeTI9IjIzLjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iI0ZGNDAwMCIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM4NzU0QzkiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50Ml9saW5lYXJfNDQyXzgyNyIgeDE9IjAuOSIgeTE9Ii0zLjkzMzllLTA3IiB4Mj0iMC44OTk5OTgiIHkyPSI1LjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzg3NTRDOSIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGRjQwMDAiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8cmFkaWFsR3JhZGllbnQgaWQ9InBhaW50M19yYWRpYWxfNDQyXzgyNyIgY3g9IjAiIGN5PSIwIiByPSIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgxLjggMjIuMikgcm90YXRlKC05MCkgc2NhbGUoMTcuNCkiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAuNzIzOTI5IiBzdG9wLWNvbG9yPSIjRkZGNzAwIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0ZGOTkwMSIvPgogICAgPC9yYWRpYWxHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQ0X2xpbmVhcl80NDJfODI3IiB4MT0iMTQuMzk5OSIgeTE9IjIzLjEiIHgyPSIxOS4xOTk5IiB5Mj0iMjMuMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjRkZGNzAwIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0ZGOTkwMSIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQ1X2xpbmVhcl80NDJfODI3IiB4MT0iMC45MDAwMDEiIHkxPSI5LjU5OTk5IiB4Mj0iMC44OTk5OTkiIHkyPSI0Ljc5OTk5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiNGRkY3MDAiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkY5OTAxIi8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDZfcmFkaWFsXzQ0Ml84MjciIGN4PSIwIiBjeT0iMCIgcj0iMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS44IDIyLjIpIHJvdGF0ZSgtOTApIHNjYWxlKDEyLjYpIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwLjU5NTEzIiBzdG9wLWNvbG9yPSIjMDBBQUZGIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAxREE0MCIvPgogICAgPC9yYWRpYWxHcmFkaWVudD4KICAgIDxyYWRpYWxHcmFkaWVudCBpZD0icGFpbnQ3X3JhZGlhbF80NDJfODI3IiBjeD0iMCIgY3k9IjAiIHI9IjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDkuMzAwMSAyMy4xKSBzY2FsZSg1LjEgMTMuNikiPgogICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMDBBQUZGIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAxREE0MCIvPgogICAgPC9yYWRpYWxHcmFkaWVudD4KICAgIDxyYWRpYWxHcmFkaWVudCBpZD0icGFpbnQ4X3JhZGlhbF80NDJfODI3IiBjeD0iMCIgY3k9IjAiIHI9IjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDAuODk5OTk5IDE0LjcpIHJvdGF0ZSgtOTApIHNjYWxlKDUuMSA5Ni43MTEpIj4KICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzAwQUFGRiIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMURBNDAiLz4KICAgIDwvcmFkaWFsR3JhZGllbnQ+CiAgPC9kZWZzPgo8L3N2Zz4=";var $e=({projectId:e,walletConnectParameters:t})=>{let i=y({flag:"isRainbow"});return{id:"rainbow",name:"Rainbow",rdns:"me.rainbow",iconUrl:re,installed:i,isExtension:!0,isMobile:!0,downloadUrl:"https://rainbow.me/",getUri:a=>He()?`rainbow://wc?uri=${encodeURIComponent(a)}`:Xe()?Ke()?`https://rnbwapp.com/wc?uri=${encodeURIComponent(a)}`:`rainbow://wc?uri=${encodeURIComponent(a)}`:`https://rnbwapp.com/wc?uri=${encodeURIComponent(a)}`,createConnector:i?x({flag:"isRainbow"}):m({projectId:e,walletConnectParameters:t})}};var oe="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNNC45MTMzIDYuOTM1NDFDOC44MjcxOCAzLjAyMTUzIDE1LjE3MjggMy4wMjE1MyAxOS4wODY3IDYuOTM1NDFMMTkuNTU3OCA3LjQwNjQ2QzE5Ljc1MzUgNy42MDIxNSAxOS43NTM1IDcuOTE5NDMgMTkuNTU3OCA4LjExNTEzTDE3Ljk0NjQgOS43MjY0N0MxNy44NDg2IDkuODI0MzIgMTcuNjg5OSA5LjgyNDMyIDE3LjU5MjEgOS43MjY0N0wxNi45NDM5IDkuMDc4MjZDMTQuMjEzNSA2LjM0Nzg0IDkuNzg2NTcgNi4zNDc4NCA3LjA1NjE0IDkuMDc4MjZMNi4zNjE5NiA5Ljc3MjQ0QzYuMjY0MTIgOS44NzAyOCA2LjEwNTQ4IDkuODcwMjggNi4wMDc2MyA5Ljc3MjQ0TDQuMzk2MjkgOC4xNjExQzQuMjAwNTkgNy45NjU0IDQuMjAwNTkgNy42NDgxMiA0LjM5NjI5IDcuNDUyNDNMNC45MTMzIDYuOTM1NDFaTTIyLjQxOTEgMTAuMjY3OEwyMy44NTMyIDExLjcwMTlDMjQuMDQ4OSAxMS44OTc2IDI0LjA0ODkgMTIuMjE0OSAyMy44NTMyIDEyLjQxMDZMMTcuMzg2OCAxOC44NzcyQzE3LjE5MTEgMTkuMDcyOCAxNi44NzM4IDE5LjA3MjkgMTYuNjc4MSAxOC44NzcyQzE2LjY3ODEgMTguODc3MiAxNi42NzgxIDE4Ljg3NzIgMTYuNjc4MSAxOC44NzcyTDEyLjA4ODYgMTQuMjg3N0MxMi4wMzk3IDE0LjIzODcgMTEuOTYwNCAxNC4yMzg3IDExLjkxMTUgMTQuMjg3N0MxMS45MTE1IDE0LjI4NzcgMTEuOTExNSAxNC4yODc3IDExLjkxMTUgMTQuMjg3N0w3LjMyMjA3IDE4Ljg3NzJDNy4xMjYzOCAxOS4wNzI4IDYuODA5MDkgMTkuMDcyOSA2LjYxMzQgMTguODc3MkM2LjYxMzQgMTguODc3MiA2LjYxMzM5IDE4Ljg3NzIgNi42MTMzOSAxOC44NzcyTDAuMTQ2NzcxIDEyLjQxMDVDLTAuMDQ4OTIzNiAxMi4yMTQ4IC0wLjA0ODkyMzYgMTEuODk3NSAwLjE0Njc3MSAxMS43MDE5TDEuNTgwODcgMTAuMjY3OEMxLjc3NjU2IDEwLjA3MjEgMi4wOTM4NSAxMC4wNzIxIDIuMjg5NTQgMTAuMjY3OEw2Ljg3OTEgMTQuODU3M0M2LjkyODAyIDE0LjkwNjIgNy4wMDczNCAxNC45MDYyIDcuMDU2MjYgMTQuODU3M0M3LjA1NjI2IDE0Ljg1NzMgNy4wNTYyNiAxNC44NTczIDcuMDU2MjcgMTQuODU3M0wxMS42NDU2IDEwLjI2NzhDMTEuODQxMyAxMC4wNzIxIDEyLjE1ODYgMTAuMDcyIDEyLjM1NDMgMTAuMjY3N0MxMi4zNTQzIDEwLjI2NzcgMTIuMzU0MyAxMC4yNjc3IDEyLjM1NDMgMTAuMjY3N0wxNi45NDM4IDE0Ljg1NzNDMTYuOTkyNyAxNC45MDYyIDE3LjA3MjEgMTQuOTA2MiAxNy4xMjEgMTQuODU3M0wyMS43MTA1IDEwLjI2NzhDMjEuOTA2MiAxMC4wNzIxIDIyLjIyMzQgMTAuMDcyMSAyMi40MTkxIDEwLjI2NzhaIiBmaWxsPSIjM0I5OUZDIi8+Cjwvc3ZnPg==";var _e=({projectId:e,options:t})=>({id:"walletConnect",name:"WalletConnect",installed:void 0,iconUrl:oe,isMobile:!0,getUri:r=>r,createConnector:m({projectId:e,walletConnectParameters:t})});import{createConnector as qe}from"wagmi";import{coinbaseWallet as et}from"wagmi/connectors";var Me="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfNDQyXzg1NCkiPgogICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMiAyNEMxOC42Mjc0IDI0IDI0IDE4LjYyNzQgMjQgMTJDMjQgNS4zNzI1OCAxOC42Mjc0IDAgMTIgMEM1LjM3MjU4IDAgMCA1LjM3MjU4IDAgMTJDMCAxOC42Mjc0IDUuMzcyNTggMjQgMTIgMjRaTTguODMxNzUgOC4wODE2MkM4LjQxNzU0IDguMDgxNjIgOC4wODE3NSA4LjQxNzQxIDguMDgxNzUgOC44MzE2MlYxNS4xNjg0QzguMDgxNzUgMTUuNTgyNiA4LjQxNzU0IDE1LjkxODQgOC44MzE3NSAxNS45MTg0SDE1LjE2ODVDMTUuNTgyNyAxNS45MTg0IDE1LjkxODUgMTUuNTgyNiAxNS45MTg1IDE1LjE2ODRWOC44MzE2MkMxNS45MTg1IDguNDE3NDEgMTUuNTgyNyA4LjA4MTYyIDE1LjE2ODUgOC4wODE2Mkg4LjgzMTc1WiIgZmlsbD0iIzJDNUZGNiIvPgogIDwvZz4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcDBfNDQyXzg1NCI+CiAgICAgIDxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiLz4KICAgIDwvY2xpcFBhdGg+CiAgPC9kZWZzPgo8L3N2Zz4=";var tt=({appName:e,appIcon:t})=>{let i=y({flag:"isCoinbaseWallet"});return{id:"coinbase",name:"Coinbase Wallet",rdns:"com.coinbase.wallet",iconUrl:Me,installed:i,isExtension:!0,isMobile:!0,downloadUrl:"https://www.coinbase.com/wallet/downloads",getUri:a=>a,createConnector:a=>qe(o=>({...et({version:"4",appName:e,appLogoUrl:t,preference:"eoaOnly"})(o),...a}))}};import{isIOS as nt,isTelegram as it}from"@getpara/react-sdk";var Ie="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyOCAyOCI+PHBhdGggZmlsbD0iIzI5NjJFRiIgZD0iTTAgMGgyOHYyOEgweiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik02LjA3MyA3Yy0uNDggMC0uNjY1LjU5My0uMjYyLjg0MWwxMC4wNzMgNi4wNzRhLjU3Ny41NzcgMCAwIDAgLjc1OC0uMTM5bDQuNDMtNS44MTRjLjMtLjQwNC0uMDA0LS45NjItLjUyNS0uOTYySDYuMDczWk0yMS45MDQgMjFjLjQ4IDAgLjY3LS41OTYuMjY3LS44NDRsLTEwLjA3NS02LjA3M2EuNTY5LjU2OSAwIDAgMC0uNzUxLjE0NmwtNC40MzcgNS44MTNjLS4zMDEuNDA0LjAxMi45NTguNTM0Ljk1OGgxNC40NjJaIi8+PC9zdmc+";var at=({projectId:e,walletConnectParameters:t})=>{let i=y({namespace:"zerionWallet",flag:"isZerion"});return{id:"zerion",name:"Zerion",rdns:"io.zerion.wallet",iconUrl:Ie,installed:i,isExtension:!0,isMobile:!0,getUri:a=>it()&&nt()?`https://app.zerion.io/wc?uri=${encodeURIComponent(a)}`:`zerion://wc?uri=${encodeURIComponent(a)}`,downloadUrl:"https://zerion.io/download",createConnector:i?x({namespace:"zerionWallet",flag:"isZerion"}):m({projectId:e,walletConnectParameters:t})}};var ce="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyOCAyOCI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsPSIjODY5N0ZGIiBkPSJNMjggMEgwdjI4aDI4VjBaIi8+PHBhdGggZmlsbD0idXJsKCNiKSIgZD0iTTIyLjU0IDE1LjA3OGMuNjc3LTEuNTE0LTIuNjczLTUuNzQ0LTUuODc0LTcuNTA2LTIuMDE3LTEuMzY1LTQuMTItMS4xNzgtNC41NDUtLjU3OS0uOTM1IDEuMzE2IDMuMDk0IDIuNDMgNS43ODggMy43MzEtLjU4LjI1Mi0xLjEyNS43MDMtMS40NDYgMS4yOC0xLjAwNC0xLjA5Ni0zLjIwOS0yLjA0LTUuNzk2LTEuMjgtMS43NDMuNTEzLTMuMTkxIDEuNzIxLTMuNzUxIDMuNTQ2YTEuMDk3IDEuMDk3IDAgMSAwLS40NDUgMi4xYy4xMTIgMCAuNDYzLS4wNzUuNDYzLS4wNzVsNS42MTIuMDQxYy0yLjI0NCAzLjU2LTQuMDE4IDQuMDgxLTQuMDE4IDQuNjk4czEuNjk3LjQ1IDIuMzM1LjIyYzMuMDUtMS4xIDYuMzI3LTQuNTMxIDYuODktNS41MTkgMi4zNi4yOTUgNC4zNDUuMzMgNC43ODYtLjY1N1oiLz48cGF0aCBmaWxsPSJ1cmwoI2MpIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Im0xNy44ODUgMTAuNzEzLjAyNS4wMWMuMTI1LS4wNDkuMTA1LS4yMzMuMDctLjM3OC0uMDc4LS4zMzMtMS40MzgtMS42NzYtMi43MTUtMi4yNzctMS43NDMtLjgyLTMuMDI1LS43NzctMy4yMTItLjM5OC4zNTYuNzI2IDEuOTk4IDEuNDA4IDMuNzE0IDIuMTIuNzIzLjMgMS40Ni42MDYgMi4xMTguOTIzWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0idXJsKCNkKSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTUuNzAxIDE4LjAzNmExMC4yOTYgMTAuMjk2IDAgMCAwLTEuMi0uMzdjLjQ4Mi0uODYyLjU4My0yLjEzOC4xMjgtMi45NDUtLjYzOS0xLjEzMy0xLjQ0LTEuNzM2LTMuMzA0LTEuNzM2LTEuMDI0IDAtMy43ODMuMzQ2LTMuODMyIDIuNjQ4LS4wMDUuMjQyIDAgLjQ2NC4wMTcuNjY3bDUuMDM2LjAzN2ExNy4yNjQgMTcuMjY0IDAgMCAxLTEuODcxIDIuNDgzYy42NjkuMTcyIDEuMjIxLjMxNiAxLjcyOC40NDguNDguMTI1LjkyLjI0IDEuMzguMzU3YTIxLjAwMyAyMS4wMDMgMCAwIDAgMS45MTgtMS41OVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9InVybCgjZSkiIGQ9Ik02Ljg0OCAxNi4wNjNjLjIwNiAxLjc1IDEuMiAyLjQzNSAzLjIzMiAyLjYzOCAyLjAzMi4yMDMgMy4xOTcuMDY3IDQuNzQ5LjIwOCAxLjI5Ni4xMTggMi40NTMuNzc4IDIuODgyLjU1LjM4Ni0uMjA1LjE3LS45NDctLjM0Ny0xLjQyMy0uNjctLjYxNy0xLjU5Ny0xLjA0Ni0zLjIyOS0xLjE5OS4zMjUtLjg5LjIzNC0yLjEzOC0uMjctMi44MTctLjczMS0uOTgyLTIuMDc5LTEuNDI2LTMuNzg1LTEuMjMyLTEuNzgyLjIwMi0zLjQ5IDEuMDgtMy4yMzIgMy4yNzVaIi8+PC9nPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9IjEwLjQ2NCIgeDI9IjIyLjM5NCIgeTE9IjEzLjczNyIgeTI9IjE3LjEyIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJjIiB4MT0iMjAuMzg2IiB4Mj0iMTEuNzc5IiB5MT0iMTMuNTA5IiB5Mj0iNC44NzkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjNzI1OERDIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNzk3REVBIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iZCIgeDE9IjE1Ljk0IiB4Mj0iNy42NzMiIHkxPSIxOC4zMzciIHkyPSIxMy41ODQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjNzQ2MUVBIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjQkZDMkZGIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iZSIgeDE9IjExLjE3NyIgeDI9IjE2Ljc2NSIgeTE9IjEzLjY0OCIgeTI9IjIwLjc0OSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9Ii45ODQiIHN0b3AtY29sb3I9IiNENUNFRkYiLz48L2xpbmVhckdyYWRpZW50PjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgyOHYyOEgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==";var rt=({projectId:e,walletConnectParameters:t})=>{let i=y({flag:"isRabby"});return{id:"rabby",name:"Rabby Wallet",rdns:"io.rabby",iconUrl:ce,installed:i,isExtension:!0,isMobile:!1,downloadUrl:"https://rabby.io",createConnector:i?x({flag:"isRabby"}):m({projectId:e,walletConnectParameters:t})}};export{S as EvmExternalWalletContext,Y as EvmExternalWalletProvider,Se as ParaEvmProvider,tt as coinbaseWallet,Je as metaMaskWallet,rt as rabbyWallet,$e as rainbowWallet,_e as walletConnectWallet,at as zerionWallet};
|
|
2
|
+
|
|
3
|
+
// src/providers/EvmExternalWalletContext.tsx
|
|
4
|
+
import { createContext, useEffect, useMemo } from "react";
|
|
5
|
+
import { useAccount, useSwitchChain, useConnect, useDisconnect, useEnsName, useEnsAvatar } from "wagmi";
|
|
6
|
+
|
|
7
|
+
// src/utils/isEIP6963Connector.ts
|
|
8
|
+
var isEIP6963Connector = (wallet) => {
|
|
9
|
+
return !!(!wallet.isRainbowKitConnector && wallet.icon?.startsWith("data:image") && wallet.uid && wallet.name);
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
// src/utils/getWalletConnectUri.ts
|
|
13
|
+
var getWalletConnectUri = async (connector, uriConverter) => {
|
|
14
|
+
const provider = await connector.getProvider();
|
|
15
|
+
if (connector.type === "coinbaseWallet") {
|
|
16
|
+
return provider.qrUrl;
|
|
17
|
+
}
|
|
18
|
+
return new Promise(
|
|
19
|
+
(resolve) => (
|
|
20
|
+
// Wagmi v2 doesn't have a return type for provider yet
|
|
21
|
+
// @ts-expect-error
|
|
22
|
+
provider.once("display_uri", (uri) => {
|
|
23
|
+
resolve(uriConverter ? uriConverter(uri) : uri);
|
|
24
|
+
})
|
|
25
|
+
)
|
|
26
|
+
);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// src/providers/EvmExternalWalletContext.tsx
|
|
30
|
+
import { isMobile, WalletType } from "@getpara/react-sdk";
|
|
31
|
+
import { normalize } from "viem/ens";
|
|
32
|
+
|
|
33
|
+
// src/stores/useStore.ts
|
|
34
|
+
import { create } from "zustand";
|
|
35
|
+
import { syncTabs } from "zustand-sync-tabs";
|
|
36
|
+
var useExternalWalletStore = create(
|
|
37
|
+
syncTabs(
|
|
38
|
+
(set) => ({
|
|
39
|
+
isConnecting: false,
|
|
40
|
+
updateState: (state) => {
|
|
41
|
+
set({ ...state });
|
|
42
|
+
}
|
|
43
|
+
}),
|
|
44
|
+
{
|
|
45
|
+
name: "para-evm-external-wallet-state"
|
|
46
|
+
}
|
|
47
|
+
)
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
// src/providers/EvmExternalWalletContext.tsx
|
|
51
|
+
import { jsx } from "react/jsx-runtime";
|
|
52
|
+
var defaultEvmExternalWallet = {
|
|
53
|
+
wallets: [],
|
|
54
|
+
chains: [],
|
|
55
|
+
chainId: void 0,
|
|
56
|
+
username: void 0,
|
|
57
|
+
avatar: void 0,
|
|
58
|
+
disconnect: () => Promise.resolve(),
|
|
59
|
+
switchChain: () => Promise.resolve({})
|
|
60
|
+
};
|
|
61
|
+
var EvmExternalWalletContext = createContext(defaultEvmExternalWallet);
|
|
62
|
+
function EvmExternalWalletProvider({ children, para, onSwitchWallet }) {
|
|
63
|
+
const { connectAsync, connectors: untypedConnectors } = useConnect();
|
|
64
|
+
const { address: wagmiAddress, isConnecting, isReconnecting, chainId, connector: connectedConnector } = useAccount();
|
|
65
|
+
const { chains, switchChainAsync } = useSwitchChain();
|
|
66
|
+
const { disconnectAsync } = useDisconnect();
|
|
67
|
+
const { data: ensName } = useEnsName({ address: wagmiAddress });
|
|
68
|
+
const { data: ensAvatar } = useEnsAvatar({
|
|
69
|
+
name: normalize(ensName)
|
|
70
|
+
});
|
|
71
|
+
const isLocalConnecting = useExternalWalletStore((state) => state.isConnecting);
|
|
72
|
+
const updateExternalWalletState = useExternalWalletStore((state) => state.updateState);
|
|
73
|
+
const getStoredExternalWallets = () => {
|
|
74
|
+
const storedExternalWalletsString = localStorage.getItem("@CAPSULE/externalWallets");
|
|
75
|
+
let storedExternalWallets = {};
|
|
76
|
+
if (storedExternalWalletsString) {
|
|
77
|
+
storedExternalWallets = JSON.parse(storedExternalWalletsString);
|
|
78
|
+
}
|
|
79
|
+
return storedExternalWallets;
|
|
80
|
+
};
|
|
81
|
+
useEffect(() => {
|
|
82
|
+
const storedExternalWallet = getStoredExternalWallets()[wagmiAddress ?? ""];
|
|
83
|
+
if (!isConnecting && !isReconnecting && !isLocalConnecting && !!wagmiAddress && !storedExternalWallet && !(connectedConnector?.id === "para")) {
|
|
84
|
+
reset();
|
|
85
|
+
}
|
|
86
|
+
}, [isConnecting, isReconnecting, isLocalConnecting, wagmiAddress, connectedConnector]);
|
|
87
|
+
useEffect(() => {
|
|
88
|
+
const storedExternalWallet = Object.values(para.externalWallets || {})[0];
|
|
89
|
+
if (!isLocalConnecting && !isConnecting && !isReconnecting && storedExternalWallet?.type === WalletType.EVM && storedExternalWallet?.address !== wagmiAddress) {
|
|
90
|
+
switchWallet(wagmiAddress);
|
|
91
|
+
}
|
|
92
|
+
}, [isLocalConnecting, wagmiAddress, isReconnecting, isConnecting]);
|
|
93
|
+
const connectors = untypedConnectors;
|
|
94
|
+
const reset = async () => {
|
|
95
|
+
await disconnectAsync();
|
|
96
|
+
await para.logout();
|
|
97
|
+
};
|
|
98
|
+
const switchChain = async (chainId2) => {
|
|
99
|
+
let error;
|
|
100
|
+
try {
|
|
101
|
+
await switchChainAsync({ chainId: chainId2 });
|
|
102
|
+
} catch (e) {
|
|
103
|
+
if (e.details.includes("Missing or invalid.")) {
|
|
104
|
+
const chain = chains.find((c) => c.id === chainId2);
|
|
105
|
+
error = [
|
|
106
|
+
"Network not supported.",
|
|
107
|
+
`You may need to add ${chain?.name} support to ${connectedConnector?.paraDetails?.name ?? connectedConnector?.name ?? "the wallet"} manually.`
|
|
108
|
+
];
|
|
109
|
+
} else {
|
|
110
|
+
switch (e.name) {
|
|
111
|
+
case "UserRejectedRequestError": {
|
|
112
|
+
error = ["Change request rejected"];
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
default: {
|
|
116
|
+
error = ["An unknown error occurred"];
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return { error };
|
|
123
|
+
};
|
|
124
|
+
const login = async (address, connectorName) => {
|
|
125
|
+
try {
|
|
126
|
+
await para.externalWalletLogin({ address, type: WalletType.EVM, provider: connectorName });
|
|
127
|
+
} catch (err) {
|
|
128
|
+
await disconnectAsync();
|
|
129
|
+
await para.logout();
|
|
130
|
+
throw "Error logging you in. Please try again.";
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
const switchWallet = async (address) => {
|
|
134
|
+
updateExternalWalletState({ isConnecting: true });
|
|
135
|
+
let error;
|
|
136
|
+
if (!address) {
|
|
137
|
+
await para.logout();
|
|
138
|
+
} else {
|
|
139
|
+
try {
|
|
140
|
+
await login(address, connectedConnector?.name);
|
|
141
|
+
} catch (err) {
|
|
142
|
+
error = err;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
onSwitchWallet({ address, error });
|
|
146
|
+
updateExternalWalletState({ isConnecting: false });
|
|
147
|
+
};
|
|
148
|
+
const connect2 = async (connector) => {
|
|
149
|
+
updateExternalWalletState({ isConnecting: true });
|
|
150
|
+
await disconnectAsync();
|
|
151
|
+
const walletChainId = await connector.getChainId();
|
|
152
|
+
let address;
|
|
153
|
+
let error;
|
|
154
|
+
try {
|
|
155
|
+
const data = await connectAsync({
|
|
156
|
+
// If the wallet is already on a supported chain, use that to avoid a chain switch prompt.
|
|
157
|
+
chainId: chains.find(({ id }) => id === walletChainId)?.id ?? // Fall back to the first chain provided.
|
|
158
|
+
chains[0]?.id,
|
|
159
|
+
connector
|
|
160
|
+
});
|
|
161
|
+
address = data.accounts?.[0];
|
|
162
|
+
if (address) {
|
|
163
|
+
try {
|
|
164
|
+
await login(address, connector.name);
|
|
165
|
+
} catch (err) {
|
|
166
|
+
address = void 0;
|
|
167
|
+
error = err;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
} catch (e) {
|
|
171
|
+
switch (e.name) {
|
|
172
|
+
case "UserRejectedRequestError": {
|
|
173
|
+
error = "Connection request rejected";
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
case "ResourceUnavailableRpcError": {
|
|
177
|
+
`${connector.name} not detected`;
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
default: {
|
|
181
|
+
error = "An unknown error occurred";
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
updateExternalWalletState({ isConnecting: false });
|
|
187
|
+
return { address, error };
|
|
188
|
+
};
|
|
189
|
+
const connectMobile = async (connector, isManualWalletConnect) => {
|
|
190
|
+
const _isMobile = isManualWalletConnect !== void 0 ? isManualWalletConnect : isMobile();
|
|
191
|
+
const _connector = connector.walletConnectModalConnector && _isMobile ? connector.walletConnectModalConnector : connector;
|
|
192
|
+
return await connect2(_connector);
|
|
193
|
+
};
|
|
194
|
+
const getQrUri = (connector) => () => {
|
|
195
|
+
return getWalletConnectUri(connector, connector.paraDetails?.getUri);
|
|
196
|
+
};
|
|
197
|
+
const nonEip6963ConnectorsByRdns = {};
|
|
198
|
+
let walletConnectModalConnector;
|
|
199
|
+
connectors.filter((c) => !isEIP6963Connector(c)).forEach((c) => {
|
|
200
|
+
if (c.paraDetails) {
|
|
201
|
+
nonEip6963ConnectorsByRdns[c.paraDetails.rdns] = c.paraDetails;
|
|
202
|
+
if (c.paraDetails.isWalletConnectModalConnector) {
|
|
203
|
+
walletConnectModalConnector = c;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
const eip6963ids = connectors.filter((c) => isEIP6963Connector(c)).map((c) => c.id);
|
|
208
|
+
const dedupedConnectors = connectors.map((c) => {
|
|
209
|
+
if (c.paraDetails?.isWalletConnectModalConnector) {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
if (!isEIP6963Connector(c) && eip6963ids.includes(c.paraDetails?.rdns)) {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
if (isEIP6963Connector(c)) {
|
|
216
|
+
const paraMetadata = nonEip6963ConnectorsByRdns[c.id];
|
|
217
|
+
return { ...c, paraDetails: paraMetadata };
|
|
218
|
+
}
|
|
219
|
+
if (c.paraDetails?.id === "walletConnect" && walletConnectModalConnector) {
|
|
220
|
+
return { ...c, walletConnectModalConnector };
|
|
221
|
+
}
|
|
222
|
+
return c;
|
|
223
|
+
}).filter((c) => !!c);
|
|
224
|
+
const wallets = dedupedConnectors.map((c) => {
|
|
225
|
+
const connector = { ...c, ...c.paraDetails };
|
|
226
|
+
return {
|
|
227
|
+
...connector,
|
|
228
|
+
connect: () => connect2(connector),
|
|
229
|
+
connectMobile: (isManualWalletConnect) => connectMobile(connector, isManualWalletConnect),
|
|
230
|
+
type: WalletType.EVM,
|
|
231
|
+
getQrUri: getQrUri(connector)
|
|
232
|
+
};
|
|
233
|
+
});
|
|
234
|
+
const formattedChains = chains.map((c) => {
|
|
235
|
+
return {
|
|
236
|
+
id: c.id,
|
|
237
|
+
name: c.name
|
|
238
|
+
};
|
|
239
|
+
});
|
|
240
|
+
const username = useMemo(() => ensName ?? wagmiAddress, [ensName, wagmiAddress]);
|
|
241
|
+
const disconnect = disconnectAsync;
|
|
242
|
+
return /* @__PURE__ */ jsx(
|
|
243
|
+
EvmExternalWalletContext.Provider,
|
|
244
|
+
{
|
|
245
|
+
value: useMemo(
|
|
246
|
+
() => ({ wallets, chains: formattedChains, chainId, username, avatar: ensAvatar, disconnect, switchChain }),
|
|
247
|
+
[wallets, formattedChains, chainId, username, ensAvatar, disconnect, switchChain]
|
|
248
|
+
),
|
|
249
|
+
children
|
|
250
|
+
}
|
|
251
|
+
);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
// src/providers/ParaEvmContext.tsx
|
|
255
|
+
import { useCallback, useEffect as useEffect2, useMemo as useMemo2 } from "react";
|
|
256
|
+
import { createConfig, WagmiProvider } from "wagmi";
|
|
257
|
+
|
|
258
|
+
// src/utils/uniqueBy.ts
|
|
259
|
+
function uniqueBy(items, key) {
|
|
260
|
+
const filtered = [];
|
|
261
|
+
for (const item of items) {
|
|
262
|
+
if (!filtered.some((x) => x[key] === item[key])) {
|
|
263
|
+
filtered.push(item);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return filtered;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
// src/utils/computeWalletConnectMetaData.ts
|
|
270
|
+
var computeWalletConnectMetaData = ({
|
|
271
|
+
appName,
|
|
272
|
+
appDescription,
|
|
273
|
+
appUrl,
|
|
274
|
+
appIcon
|
|
275
|
+
}) => {
|
|
276
|
+
return {
|
|
277
|
+
name: appName,
|
|
278
|
+
description: appDescription ?? appName,
|
|
279
|
+
url: appUrl ?? (typeof window !== "undefined" ? window.location.href : ""),
|
|
280
|
+
icons: [...appIcon ? [appIcon] : []]
|
|
281
|
+
};
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
// src/utils/omitUndefinedValues.ts
|
|
285
|
+
function omitUndefinedValues(obj) {
|
|
286
|
+
return Object.fromEntries(
|
|
287
|
+
//@ts-ignore
|
|
288
|
+
Object.entries(obj).filter(([_key, value]) => value !== void 0)
|
|
289
|
+
);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
// src/wallets/connectorsForWallets.ts
|
|
293
|
+
var connectorsForWallets = (walletList, { projectId, walletConnectParameters, appName, appDescription, appUrl, appIcon }) => {
|
|
294
|
+
if (!walletList.length) {
|
|
295
|
+
throw new Error("No wallet list was provided");
|
|
296
|
+
}
|
|
297
|
+
let index = -1;
|
|
298
|
+
const connectors = [];
|
|
299
|
+
const wallets = [];
|
|
300
|
+
const walletConnectMetaData = computeWalletConnectMetaData({
|
|
301
|
+
appName,
|
|
302
|
+
appDescription,
|
|
303
|
+
appUrl,
|
|
304
|
+
appIcon
|
|
305
|
+
});
|
|
306
|
+
walletList.forEach((createWallet) => {
|
|
307
|
+
index++;
|
|
308
|
+
const wallet = createWallet({
|
|
309
|
+
projectId,
|
|
310
|
+
appName,
|
|
311
|
+
appIcon,
|
|
312
|
+
// `option` is being used only for `walletConnectWallet` wallet
|
|
313
|
+
options: {
|
|
314
|
+
metadata: walletConnectMetaData,
|
|
315
|
+
...walletConnectParameters
|
|
316
|
+
},
|
|
317
|
+
// Every other wallet that supports walletConnect flow and is not
|
|
318
|
+
// `walletConnectWallet` wallet will have `walletConnectParameters` property
|
|
319
|
+
walletConnectParameters: {
|
|
320
|
+
metadata: walletConnectMetaData,
|
|
321
|
+
...walletConnectParameters
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
const walletListItem = {
|
|
325
|
+
...wallet,
|
|
326
|
+
index
|
|
327
|
+
};
|
|
328
|
+
wallets.push(walletListItem);
|
|
329
|
+
});
|
|
330
|
+
const walletListItems = uniqueBy([...wallets], "id");
|
|
331
|
+
for (const { createConnector: createConnector4, ...walletMeta } of walletListItems) {
|
|
332
|
+
const walletMetaData = (additionalParaParams) => {
|
|
333
|
+
return {
|
|
334
|
+
paraDetails: omitUndefinedValues({
|
|
335
|
+
...walletMeta,
|
|
336
|
+
isParaConnector: true,
|
|
337
|
+
// These additional params will be used in Para react tree to
|
|
338
|
+
// merge `walletConnectWallet` and `walletConnect` connector from wagmi with
|
|
339
|
+
// showQrModal: true. This way we can let the user choose if they want to
|
|
340
|
+
// connect via QR code or open the official walletConnect modal instead
|
|
341
|
+
...additionalParaParams ? additionalParaParams : {}
|
|
342
|
+
})
|
|
343
|
+
};
|
|
344
|
+
};
|
|
345
|
+
const isWalletConnectConnector = walletMeta.id === "walletConnect";
|
|
346
|
+
if (isWalletConnectConnector) {
|
|
347
|
+
connectors.push(
|
|
348
|
+
createConnector4(
|
|
349
|
+
walletMetaData({
|
|
350
|
+
isWalletConnectModalConnector: true,
|
|
351
|
+
showQrModal: true
|
|
352
|
+
})
|
|
353
|
+
)
|
|
354
|
+
);
|
|
355
|
+
}
|
|
356
|
+
if (createConnector4) {
|
|
357
|
+
connectors.push(createConnector4(walletMetaData()));
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
return connectors;
|
|
361
|
+
};
|
|
362
|
+
|
|
363
|
+
// src/providers/ParaEvmContext.tsx
|
|
364
|
+
import { http } from "viem";
|
|
365
|
+
import { useClient, useExternalWalletProviderStore } from "@getpara/react-sdk";
|
|
366
|
+
import { connect } from "wagmi/actions";
|
|
367
|
+
import { paraConnector } from "@getpara/wagmi-v2-integration";
|
|
368
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
369
|
+
var createDefaultTransports = (chains) => {
|
|
370
|
+
const transportsObject = chains.reduce((acc, chain) => {
|
|
371
|
+
const key = chain.id;
|
|
372
|
+
acc[key] = http();
|
|
373
|
+
return acc;
|
|
374
|
+
}, {});
|
|
375
|
+
return transportsObject;
|
|
376
|
+
};
|
|
377
|
+
function ParaEvmProvider({ children, config: _config, ...wagmiProviderProps }) {
|
|
378
|
+
const updateExternalWalletProviderState = useExternalWalletProviderStore((state) => state.updateState);
|
|
379
|
+
const EvmProvider = useExternalWalletProviderStore((state) => state.EvmProvider);
|
|
380
|
+
const evmContext = useExternalWalletProviderStore((state) => state.evmContext);
|
|
381
|
+
const para = _config.para ?? useClient();
|
|
382
|
+
const {
|
|
383
|
+
projectId,
|
|
384
|
+
appName,
|
|
385
|
+
appDescription,
|
|
386
|
+
appIcon,
|
|
387
|
+
appUrl,
|
|
388
|
+
wallets,
|
|
389
|
+
chains,
|
|
390
|
+
transports,
|
|
391
|
+
paraDisableModal,
|
|
392
|
+
paraOptions,
|
|
393
|
+
...wagmiConfigParams
|
|
394
|
+
} = _config;
|
|
395
|
+
const wcMetadata = computeWalletConnectMetaData({ appName, appDescription, appUrl, appIcon });
|
|
396
|
+
const paraConnectorInstance = useMemo2(() => {
|
|
397
|
+
if (!para) return void 0;
|
|
398
|
+
const instance = paraConnector({
|
|
399
|
+
para,
|
|
400
|
+
chains: [...chains],
|
|
401
|
+
disableModal: paraDisableModal ?? true,
|
|
402
|
+
appName,
|
|
403
|
+
options: paraOptions ?? {}
|
|
404
|
+
});
|
|
405
|
+
return instance;
|
|
406
|
+
}, [para, chains, paraDisableModal, appName, paraOptions]);
|
|
407
|
+
const allConnectors = useMemo2(() => {
|
|
408
|
+
const baseConnectors = connectorsForWallets(wallets, {
|
|
409
|
+
projectId,
|
|
410
|
+
appName,
|
|
411
|
+
appDescription,
|
|
412
|
+
appUrl,
|
|
413
|
+
appIcon,
|
|
414
|
+
walletConnectParameters: { metadata: wcMetadata }
|
|
415
|
+
});
|
|
416
|
+
return paraConnectorInstance ? [...baseConnectors, paraConnectorInstance] : baseConnectors;
|
|
417
|
+
}, [wallets, projectId, appName, appDescription, appUrl, appIcon, wcMetadata, paraConnectorInstance]);
|
|
418
|
+
const config = useMemo2(
|
|
419
|
+
() => createConfig({
|
|
420
|
+
...wagmiConfigParams,
|
|
421
|
+
chains,
|
|
422
|
+
transports: transports || createDefaultTransports(chains),
|
|
423
|
+
connectors: allConnectors
|
|
424
|
+
}),
|
|
425
|
+
[wagmiConfigParams, chains, transports, allConnectors]
|
|
426
|
+
);
|
|
427
|
+
const connectParaEvmWallet = useCallback(async () => {
|
|
428
|
+
if (!paraConnectorInstance) {
|
|
429
|
+
return { error: "No para connector instance" };
|
|
430
|
+
}
|
|
431
|
+
try {
|
|
432
|
+
const result = await connect(config, { connector: paraConnectorInstance });
|
|
433
|
+
return { result };
|
|
434
|
+
} catch (err) {
|
|
435
|
+
const error = err instanceof Error ? err.message : "Unknown error";
|
|
436
|
+
return { error };
|
|
437
|
+
}
|
|
438
|
+
}, [paraConnectorInstance, config, connect]);
|
|
439
|
+
useEffect2(() => {
|
|
440
|
+
updateExternalWalletProviderState({
|
|
441
|
+
EvmProvider: evmContext && EvmProvider ? EvmProvider : EvmExternalWalletProvider,
|
|
442
|
+
evmContext: evmContext || EvmExternalWalletContext,
|
|
443
|
+
connectParaEvmWallet: paraConnectorInstance ? connectParaEvmWallet : void 0
|
|
444
|
+
});
|
|
445
|
+
}, [evmContext, EvmProvider, paraConnectorInstance, connectParaEvmWallet, updateExternalWalletProviderState]);
|
|
446
|
+
if (!evmContext || !EvmProvider) {
|
|
447
|
+
return null;
|
|
448
|
+
}
|
|
449
|
+
return /* @__PURE__ */ jsx2(WagmiProvider, { config, ...wagmiProviderProps, children });
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
// src/wallets/connectors/metaMask/metaMask.ts
|
|
453
|
+
import { isAndroid, isIOS, isTelegram } from "@getpara/react-sdk";
|
|
454
|
+
|
|
455
|
+
// src/utils/getInjectedConnector.ts
|
|
456
|
+
import { createConnector } from "wagmi";
|
|
457
|
+
import { injected } from "wagmi/connectors";
|
|
458
|
+
function getExplicitInjectedProvider(flag) {
|
|
459
|
+
const _window = typeof window !== "undefined" ? window : void 0;
|
|
460
|
+
if (typeof _window === "undefined" || typeof _window.ethereum === "undefined") return;
|
|
461
|
+
const providers = _window.ethereum.providers;
|
|
462
|
+
return providers ? providers.find((provider) => provider[flag]) : _window.ethereum[flag] ? _window.ethereum : void 0;
|
|
463
|
+
}
|
|
464
|
+
function getWindowProviderNamespace(namespace) {
|
|
465
|
+
const providerSearch = (provider, namespace2) => {
|
|
466
|
+
const [property, ...path] = namespace2.split(".");
|
|
467
|
+
const _provider = provider[property];
|
|
468
|
+
if (_provider) {
|
|
469
|
+
if (path.length === 0) return _provider;
|
|
470
|
+
return providerSearch(_provider, path.join("."));
|
|
471
|
+
}
|
|
472
|
+
};
|
|
473
|
+
if (typeof window !== "undefined") return providerSearch(window, namespace);
|
|
474
|
+
}
|
|
475
|
+
function hasInjectedProvider({ flag, namespace }) {
|
|
476
|
+
if (namespace && typeof getWindowProviderNamespace(namespace) !== "undefined") return true;
|
|
477
|
+
if (flag && typeof getExplicitInjectedProvider(flag) !== "undefined") return true;
|
|
478
|
+
return false;
|
|
479
|
+
}
|
|
480
|
+
function getInjectedProvider({ flag, namespace }) {
|
|
481
|
+
const _window = typeof window !== "undefined" ? window : void 0;
|
|
482
|
+
if (typeof _window === "undefined") return;
|
|
483
|
+
if (namespace) {
|
|
484
|
+
const windowProvider = getWindowProviderNamespace(namespace);
|
|
485
|
+
if (windowProvider) return windowProvider;
|
|
486
|
+
}
|
|
487
|
+
const providers = _window.ethereum?.providers;
|
|
488
|
+
if (flag) {
|
|
489
|
+
const provider = getExplicitInjectedProvider(flag);
|
|
490
|
+
if (provider) return provider;
|
|
491
|
+
}
|
|
492
|
+
if (typeof providers !== "undefined" && providers.length > 0) return providers[0];
|
|
493
|
+
return _window.ethereum;
|
|
494
|
+
}
|
|
495
|
+
function createInjectedConnector(provider) {
|
|
496
|
+
return (walletDetails) => {
|
|
497
|
+
const injectedConfig = provider ? {
|
|
498
|
+
target: () => ({
|
|
499
|
+
id: walletDetails.paraDetails.id,
|
|
500
|
+
name: walletDetails.paraDetails.name,
|
|
501
|
+
provider
|
|
502
|
+
})
|
|
503
|
+
} : {};
|
|
504
|
+
return createConnector((config) => ({
|
|
505
|
+
// Spread the injectedConfig object, which may be empty or contain the target function
|
|
506
|
+
...injected(injectedConfig)(config),
|
|
507
|
+
...walletDetails
|
|
508
|
+
}));
|
|
509
|
+
};
|
|
510
|
+
}
|
|
511
|
+
function getInjectedConnector({
|
|
512
|
+
flag,
|
|
513
|
+
namespace,
|
|
514
|
+
target
|
|
515
|
+
}) {
|
|
516
|
+
const provider = target ? target : getInjectedProvider({ flag, namespace });
|
|
517
|
+
return createInjectedConnector(provider);
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
// src/utils/getWalletConnectConnector.ts
|
|
521
|
+
import { createConnector as createConnector2 } from "wagmi";
|
|
522
|
+
import { walletConnect } from "wagmi/connectors";
|
|
523
|
+
var walletConnectInstances = /* @__PURE__ */ new Map();
|
|
524
|
+
var getOrCreateWalletConnectInstance = ({
|
|
525
|
+
projectId,
|
|
526
|
+
walletConnectParameters,
|
|
527
|
+
paraDetailsShowQrModal
|
|
528
|
+
}) => {
|
|
529
|
+
let config = {
|
|
530
|
+
...walletConnectParameters ? walletConnectParameters : {},
|
|
531
|
+
projectId,
|
|
532
|
+
showQrModal: false
|
|
533
|
+
// Required. Otherwise WalletConnect modal (Web3Modal) will popup during time of connection for a wallet
|
|
534
|
+
};
|
|
535
|
+
if (paraDetailsShowQrModal) {
|
|
536
|
+
config = { ...config, showQrModal: true };
|
|
537
|
+
}
|
|
538
|
+
const serializedConfig = JSON.stringify(config);
|
|
539
|
+
const sharedWalletConnector = walletConnectInstances.get(serializedConfig);
|
|
540
|
+
if (sharedWalletConnector) {
|
|
541
|
+
return sharedWalletConnector;
|
|
542
|
+
}
|
|
543
|
+
const newWalletConnectInstance = walletConnect(config);
|
|
544
|
+
walletConnectInstances.set(serializedConfig, newWalletConnectInstance);
|
|
545
|
+
return newWalletConnectInstance;
|
|
546
|
+
};
|
|
547
|
+
function createWalletConnectConnector({
|
|
548
|
+
projectId,
|
|
549
|
+
walletDetails,
|
|
550
|
+
walletConnectParameters
|
|
551
|
+
}) {
|
|
552
|
+
return createConnector2((config) => ({
|
|
553
|
+
...getOrCreateWalletConnectInstance({
|
|
554
|
+
projectId,
|
|
555
|
+
walletConnectParameters,
|
|
556
|
+
// Used in `connectorsForWallets` to add another
|
|
557
|
+
// walletConnect wallet into Para with modal popup option
|
|
558
|
+
paraDetailsShowQrModal: walletDetails.paraDetails.showQrModal
|
|
559
|
+
})(config),
|
|
560
|
+
...walletDetails,
|
|
561
|
+
id: walletDetails.paraDetails.id
|
|
562
|
+
}));
|
|
563
|
+
}
|
|
564
|
+
function getWalletConnectConnector({
|
|
565
|
+
projectId,
|
|
566
|
+
walletConnectParameters
|
|
567
|
+
}) {
|
|
568
|
+
if (!projectId || projectId === "") {
|
|
569
|
+
throw new Error(
|
|
570
|
+
"No projectId found. Every dApp must now provide a WalletConnect Cloud projectId to enable WalletConnect v2. Sign up for your free key at https://cloud.walletconnect.com/sign-in"
|
|
571
|
+
);
|
|
572
|
+
}
|
|
573
|
+
return (walletDetails) => createWalletConnectConnector({
|
|
574
|
+
projectId,
|
|
575
|
+
walletDetails,
|
|
576
|
+
walletConnectParameters
|
|
577
|
+
});
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
// src/wallets/connectors/metaMask/metaMaskIcon.ts
|
|
581
|
+
var icon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyMyIgdmlld0JveD0iMCAwIDI0IDIzIiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMjIuODA0OSAwTDEzLjQ0MDIgNi45NTUyOUwxNS4xNzE5IDIuODUxNzdMMjIuODA0OSAwWiIgZmlsbD0iI0UyNzYxQiIvPgogIDxwYXRoIGQ9Ik0xLjE4NTk5IDBMMTAuNDc1NCA3LjAyMTE4TDguODI4MzQgMi44NTE3N0wxLjE4NTk5IDBaTTE5LjQzNTQgMTYuMTIyNEwxNi45NDEzIDE5Ljk0MzVMMjIuMjc3OCAyMS40MTE4TDIzLjgxMTkgMTYuMjA3MUwxOS40MzU0IDE2LjEyMjRaTTAuMTk3NzU0IDE2LjIwNzFMMS43MjI0NiAyMS40MTE4TDcuMDU4OTMgMTkuOTQzNUw0LjU2NDgxIDE2LjEyMjRMMC4xOTc3NTQgMTYuMjA3MVoiIGZpbGw9IiNFNDc2MUIiLz4KICA8cGF0aCBkPSJNNi43NTgwNSA5LjY2NTg2TDUuMjcxIDExLjkxNTNMMTAuNTY5OCAxMi4xNTA2TDEwLjM4MTYgNi40NTY0NUw2Ljc1ODA1IDkuNjY1ODZaTTE3LjIzMzMgOS42NjU4NkwxMy41NjI4IDYuMzkwNTZMMTMuNDQwNCAxMi4xNTA2TDE4LjcyOTggMTEuOTE1M0wxNy4yMzMzIDkuNjY1ODZaTTcuMDU5MjMgMTkuOTQzNUwxMC4yNDA0IDE4LjM5MDZMNy40OTIxNyAxNi4yNDQ3TDcuMDU5MjMgMTkuOTQzNVpNMTMuNzUxIDE4LjM5MDZMMTYuOTQxNiAxOS45NDM1TDE2LjQ5OTIgMTYuMjQ0N0wxMy43NTEgMTguMzkwNloiIGZpbGw9IiNFNDc2MUIiLz4KICA8cGF0aCBkPSJNMTYuOTQxMiAxOS45NDM1TDEzLjc1MDYgMTguMzkwNkwxNC4wMDQ3IDIwLjQ3MDZMMTMuOTc2NSAyMS4zNDU5TDE2Ljk0MTIgMTkuOTQzNVpNNy4wNTg4NCAxOS45NDM1TDEwLjAyMzUgMjEuMzQ1OUwxMC4wMDQ3IDIwLjQ3MDZMMTAuMjQgMTguMzkwNkw3LjA1ODg0IDE5Ljk0MzVaIiBmaWxsPSIjRDdDMUIzIi8+CiAgPHBhdGggZD0iTTEwLjA3MDYgMTQuODcwNkw3LjQxNjUgMTQuMDg5NEw5LjI4OTQ1IDEzLjIzMjlMMTAuMDcwNiAxNC44NzA2Wk0xMy45MiAxNC44NzA2TDE0LjcwMTIgMTMuMjMyOUwxNi41ODM2IDE0LjA4OTRMMTMuOTIgMTQuODcwNloiIGZpbGw9IiMyMzM0NDciLz4KICA8cGF0aCBkPSJNNy4wNTg4MiAxOS45NDM1TDcuNTEwNTggMTYuMTIyM0w0LjU2NDcgMTYuMjA3TDcuMDU4ODIgMTkuOTQzNVpNMTYuNDg5NCAxNi4xMjIzTDE2Ljk0MTIgMTkuOTQzNUwxOS40MzUzIDE2LjIwN0wxNi40ODk0IDE2LjEyMjNaTTE4LjcyOTQgMTEuOTE1M0wxMy40NCAxMi4xNTA2TDEzLjkyOTQgMTQuODcwNkwxNC43MTA2IDEzLjIzMjlMMTYuNTkyOSAxNC4wODk0TDE4LjcyOTQgMTEuOTE1M1pNNy40MTY0NiAxNC4wODk0TDkuMjk4ODIgMTMuMjMyOUwxMC4wNzA2IDE0Ljg3MDZMMTAuNTY5NCAxMi4xNTA2TDUuMjcwNTggMTEuOTE1M0w3LjQxNjQ2IDE0LjA4OTRaIiBmaWxsPSIjQ0Q2MTE2Ii8+CiAgPHBhdGggZD0iTTUuMjcxIDExLjkxNTNMNy40OTIxNyAxNi4yNDQ3TDcuNDE2ODggMTQuMDg5NEw1LjI3MSAxMS45MTUzWk0xNi41OTMzIDE0LjA4OTRMMTYuNDk5MiAxNi4yNDQ3TDE4LjcyOTggMTEuOTE1M0wxNi41OTMzIDE0LjA4OTRaTTEwLjU2OTggMTIuMTUwNkwxMC4wNzEgMTQuODcwNkwxMC42OTIyIDE4LjA4TDEwLjgzMzMgMTMuODU0MUwxMC41Njk4IDEyLjE1MDZaTTEzLjQ0MDQgMTIuMTUwNkwxMy4xODYzIDEzLjg0NDdMMTMuMjk5MiAxOC4wOEwxMy45Mjk4IDE0Ljg3MDZMMTMuNDQwNCAxMi4xNTA2WiIgZmlsbD0iI0U0NzUxRiIvPgogIDxwYXRoIGQ9Ik0xMy45Mjk0IDE0Ljg3MDVMMTMuMjk4OSAxOC4wNzk5TDEzLjc1MDYgMTguMzkwNUwxNi40OTg5IDE2LjI0NDdMMTYuNTkzIDE0LjA4OTRMMTMuOTI5NCAxNC44NzA1Wk03LjQxNjUgMTQuMDg5NEw3LjQ5MTggMTYuMjQ0N0wxMC4yNCAxOC4zOTA1TDEwLjY5MTggMTguMDc5OUwxMC4wNzA2IDE0Ljg3MDVMNy40MTY1IDE0LjA4OTRaIiBmaWxsPSIjRjY4NTFCIi8+CiAgPHBhdGggZD0iTTEzLjk3NjUgMjEuMzQ1OUwxNC4wMDQ3IDIwLjQ3MDZMMTMuNzY5NCAyMC4yNjM1SDEwLjIyMTJMMTAuMDA0NyAyMC40NzA2TDEwLjAyMzUgMjEuMzQ1OUw3LjA1ODg0IDE5Ljk0MzVMOC4wOTQxMyAyMC43OTA2TDEwLjE5MyAyMi4yNDk0SDEzLjc5NzdMMTUuOTA1OSAyMC43OTA2TDE2Ljk0MTIgMTkuOTQzNUwxMy45NzY1IDIxLjM0NTlaIiBmaWxsPSIjQzBBRDlFIi8+CiAgPHBhdGggZD0iTTEzLjc1MDggMTguMzkwNkwxMy4yOTkgMTguMDhIMTAuNjkxOUwxMC4yNDAyIDE4LjM5MDZMMTAuMDA0OSAyMC40NzA2TDEwLjIyMTQgMjAuMjYzNUgxMy43Njk2TDE0LjAwNDkgMjAuNDcwNkwxMy43NTA4IDE4LjM5MDZaIiBmaWxsPSIjMTYxNjE2Ii8+CiAgPHBhdGggZD0iTTIzLjIgNy40MDcwNkwyNCAzLjU2NzA2TDIyLjgwNDcgMEwxMy43NTA2IDYuNzJMMTcuMjMyOSA5LjY2NTg4TDIyLjE1NTMgMTEuMTA1OUwyMy4yNDcxIDkuODM1MjlMMjIuNzc2NSA5LjQ5NjQ3TDIzLjUyOTQgOC44MDk0MUwyMi45NDU5IDguMzU3NjVMMjMuNjk4OCA3Ljc4MzUzTDIzLjIgNy40MDcwNlpNMCAzLjU2NzA2TDAuOCA3LjQwNzA2TDAuMjkxNzY1IDcuNzgzNTNMMS4wNDQ3MSA4LjM1NzY1TDAuNDcwNTg4IDguODA5NDFMMS4yMjM1MyA5LjQ5NjQ3TDAuNzUyOTQxIDkuODM1MjlMMS44MzUyOSAxMS4xMDU5TDYuNzU3NjUgOS42NjU4OEwxMC4yNCA2LjcyTDEuMTg1ODggMEwwIDMuNTY3MDZaIiBmaWxsPSIjNzYzRDE2Ii8+CiAgPHBhdGggZD0iTTIyLjE1NTQgMTEuMTA1OUwxNy4yMzMgOS42NjU5MkwxOC43Mjk1IDExLjkxNTNMMTYuNDk4OSAxNi4yNDQ3TDE5LjQzNTQgMTYuMjA3MUgyMy44MTE5TDIyLjE1NTQgMTEuMTA1OVpNNi43NTc3NSA5LjY2NTkyTDEuODM1NCAxMS4xMDU5TDAuMTk3NzU0IDE2LjIwNzFINC41NjQ4MUw3LjQ5MTg3IDE2LjI0NDdMNS4yNzA3IDExLjkxNTNMNi43NTc3NSA5LjY2NTkyWk0xMy40NDAxIDEyLjE1MDZMMTMuNzUwNyA2LjcyMDA0TDE1LjE4MTMgMi44NTE4MUg4LjgyODM0TDEwLjI0MDEgNi43MjAwNEwxMC41Njk1IDEyLjE1MDZMMTAuNjgyNSAxMy44NjM2TDEwLjY5MTkgMTguMDhIMTMuMjk4OUwxMy4zMTc4IDEzLjg2MzZMMTMuNDQwMSAxMi4xNTA2WiIgZmlsbD0iI0Y2ODUxQiIvPgo8L3N2Zz4=";
|
|
582
|
+
|
|
583
|
+
// src/wallets/connectors/metaMask/metaMask.ts
|
|
584
|
+
function isMetaMask(ethereum) {
|
|
585
|
+
if (!ethereum?.isMetaMask) return false;
|
|
586
|
+
if (ethereum.isBraveWallet && !ethereum._events && !ethereum._state) return false;
|
|
587
|
+
if (ethereum.isApexWallet) return false;
|
|
588
|
+
if (ethereum.isAvalanche) return false;
|
|
589
|
+
if (ethereum.isBackpack) return false;
|
|
590
|
+
if (ethereum.isBifrost) return false;
|
|
591
|
+
if (ethereum.isBitKeep) return false;
|
|
592
|
+
if (ethereum.isBitski) return false;
|
|
593
|
+
if (ethereum.isBlockWallet) return false;
|
|
594
|
+
if (ethereum.isCoinbaseWallet) return false;
|
|
595
|
+
if (ethereum.isDawn) return false;
|
|
596
|
+
if (ethereum.isEnkrypt) return false;
|
|
597
|
+
if (ethereum.isExodus) return false;
|
|
598
|
+
if (ethereum.isFrame) return false;
|
|
599
|
+
if (ethereum.isFrontier) return false;
|
|
600
|
+
if (ethereum.isGamestop) return false;
|
|
601
|
+
if (ethereum.isHyperPay) return false;
|
|
602
|
+
if (ethereum.isImToken) return false;
|
|
603
|
+
if (ethereum.isKuCoinWallet) return false;
|
|
604
|
+
if (ethereum.isMathWallet) return false;
|
|
605
|
+
if (ethereum.isNestWallet) return false;
|
|
606
|
+
if (ethereum.isOkxWallet || ethereum.isOKExWallet) return false;
|
|
607
|
+
if (ethereum.isOneInchIOSWallet || ethereum.isOneInchAndroidWallet) return false;
|
|
608
|
+
if (ethereum.isOpera) return false;
|
|
609
|
+
if (ethereum.isPhantom) return false;
|
|
610
|
+
if (ethereum.isPortal) return false;
|
|
611
|
+
if (ethereum.isRabby) return false;
|
|
612
|
+
if (ethereum.isRainbow) return false;
|
|
613
|
+
if (ethereum.isStatus) return false;
|
|
614
|
+
if (ethereum.isTalisman) return false;
|
|
615
|
+
if (ethereum.isTally) return false;
|
|
616
|
+
if (ethereum.isTokenPocket) return false;
|
|
617
|
+
if (ethereum.isTokenary) return false;
|
|
618
|
+
if (ethereum.isTrust || ethereum.isTrustWallet) return false;
|
|
619
|
+
if (ethereum.isXDEFI) return false;
|
|
620
|
+
if (ethereum.isZeal) return false;
|
|
621
|
+
if (ethereum.isZerion) return false;
|
|
622
|
+
if (ethereum.__seif) return false;
|
|
623
|
+
return true;
|
|
624
|
+
}
|
|
625
|
+
var metaMaskWallet = ({ projectId, walletConnectParameters }) => {
|
|
626
|
+
const isMetaMaskInjected = hasInjectedProvider({ flag: "isMetaMask" });
|
|
627
|
+
const getUri = (uri) => {
|
|
628
|
+
return isAndroid() ? `metamask://wc?uri=${encodeURIComponent(uri)}` : isIOS() ? !isTelegram() ? (
|
|
629
|
+
// currently broken in MetaMask v6.5.0 https://github.com/MetaMask/metamask-mobile/issues/6457
|
|
630
|
+
`metamask://wc?uri=${encodeURIComponent(uri)}`
|
|
631
|
+
) : `https://metamask.app.link/wc?uri=${encodeURIComponent(uri)}` : `https://metamask.app.link/wc?uri=${encodeURIComponent(uri)}`;
|
|
632
|
+
};
|
|
633
|
+
return {
|
|
634
|
+
id: "metaMask",
|
|
635
|
+
name: "MetaMask",
|
|
636
|
+
rdns: "io.metamask",
|
|
637
|
+
iconUrl: icon,
|
|
638
|
+
installed: isMetaMaskInjected,
|
|
639
|
+
isExtension: true,
|
|
640
|
+
isMobile: true,
|
|
641
|
+
downloadUrl: "https://metamask.io/download/",
|
|
642
|
+
getUri,
|
|
643
|
+
createConnector: isMetaMaskInjected ? getInjectedConnector({
|
|
644
|
+
target: typeof window !== "undefined" ? window.ethereum?.providers?.find(isMetaMask) ?? window.ethereum : void 0
|
|
645
|
+
}) : getWalletConnectConnector({
|
|
646
|
+
projectId,
|
|
647
|
+
walletConnectParameters
|
|
648
|
+
})
|
|
649
|
+
};
|
|
650
|
+
};
|
|
651
|
+
|
|
652
|
+
// src/wallets/connectors/rainbow/rainbow.ts
|
|
653
|
+
import { isAndroid as isAndroid2, isIOS as isIOS2, isTelegram as isTelegram2 } from "@getpara/react-sdk";
|
|
654
|
+
|
|
655
|
+
// src/wallets/connectors/rainbow/rainbowIcon.ts
|
|
656
|
+
var icon2 = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMCA1LjRIMS44QzExLjA3ODQgNS40IDE4LjYgMTIuOTIxNiAxOC42IDIyLjJWMjRIMjIuMkMyMy4xOTQxIDI0IDI0IDIzLjE5NDEgMjQgMjIuMkMyNCA5LjkzOTI3IDE0LjA2MDcgMCAxLjggMEMwLjgwNTg4NyAwIDAgMC44MDU4ODcgMCAxLjhWNS40WiIgZmlsbD0idXJsKCNwYWludDBfcmFkaWFsXzQ0Ml84MjcpIi8+CiAgPHBhdGggZD0iTTE5LjIgMjIuMkgyMy45OTk5QzIzLjk5OTkgMjMuMTk0MSAyMy4xOTQxIDI0IDIyLjE5OTkgMjRIMTkuMlYyMi4yWiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzQ0Ml84MjcpIi8+CiAgPHBhdGggZD0iTTEuOCAwTDEuOCA0LjhIMEwxLjMxMTM0ZS0wNyAxLjhDMS43NDU4OGUtMDcgMC44MDU4ODcgMC44MDU4ODcgLTQuMzQ1NGUtMDggMS44IDBaIiBmaWxsPSJ1cmwoI3BhaW50Ml9saW5lYXJfNDQyXzgyNykiLz4KICA8cGF0aCBkPSJNMCA0Ljc5OTk5SDEuOEMxMS40MDk3IDQuNzk5OTkgMTkuMiAxMi41OTAyIDE5LjIgMjIuMlYyNEgxMy44VjIyLjJDMTMuOCAxNS41NzI2IDguNDI3NDEgMTAuMiAxLjggMTAuMkgwVjQuNzk5OTlaIiBmaWxsPSJ1cmwoI3BhaW50M19yYWRpYWxfNDQyXzgyNykiLz4KICA8cGF0aCBkPSJNMTQuMzk5OSAyMi4ySDE5LjE5OTlWMjRIMTQuMzk5OVYyMi4yWiIgZmlsbD0idXJsKCNwYWludDRfbGluZWFyXzQ0Ml84MjcpIi8+CiAgPHBhdGggZD0iTTIuMDk4MTVlLTA3IDkuNTk5OTlMMCA0Ljc5OTk5TDEuOCA0Ljc5OTk5TDEuOCA5LjU5OTk5SDIuMDk4MTVlLTA3WiIgZmlsbD0idXJsKCNwYWludDVfbGluZWFyXzQ0Ml84MjcpIi8+CiAgPHBhdGggZD0iTTAgMTIuNkMwIDEzLjU5NDEgMC44MDU4ODcgMTQuNCAxLjggMTQuNEM2LjEwNzgyIDE0LjQgOS42IDE3Ljg5MjEgOS42IDIyLjJDOS42IDIzLjE5NDEgMTAuNDA1OSAyNCAxMS40IDI0SDE0LjRWMjIuMkMxNC40IDE1LjI0MTIgOC43NTg3OCA5LjU5OTk4IDEuOCA5LjU5OTk4SDBWMTIuNloiIGZpbGw9InVybCgjcGFpbnQ2X3JhZGlhbF80NDJfODI3KSIvPgogIDxwYXRoIGQ9Ik05LjYwMDEgMjIuMkgxNC40MDAxVjI0SDExLjQwMDFDMTAuNDA2IDI0IDkuNjAwMSAyMy4xOTQxIDkuNjAwMSAyMi4yWiIgZmlsbD0idXJsKCNwYWludDdfcmFkaWFsXzQ0Ml84MjcpIi8+CiAgPHBhdGggZD0iTTEuOCAxNC40QzAuODA1ODg3IDE0LjQgMS43NDU4OGUtMDcgMTMuNTk0MSAxLjMxMTM0ZS0wNyAxMi42TDAgOS41OTk5OEwxLjggOS41OTk5OEwxLjggMTQuNFoiIGZpbGw9InVybCgjcGFpbnQ4X3JhZGlhbF80NDJfODI3KSIvPgogIDxkZWZzPgogICAgPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDBfcmFkaWFsXzQ0Ml84MjciIGN4PSIwIiBjeT0iMCIgcj0iMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS44IDIyLjIpIHJvdGF0ZSgtOTApIHNjYWxlKDIyLjIpIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwLjc3MDI3NyIgc3RvcC1jb2xvcj0iI0ZGNDAwMCIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM4NzU0QzkiLz4KICAgIDwvcmFkaWFsR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MV9saW5lYXJfNDQyXzgyNyIgeDE9IjE4LjkiIHkxPSIyMy4xIiB4Mj0iMjMuOTk5OSIgeTI9IjIzLjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iI0ZGNDAwMCIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM4NzU0QzkiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50Ml9saW5lYXJfNDQyXzgyNyIgeDE9IjAuOSIgeTE9Ii0zLjkzMzllLTA3IiB4Mj0iMC44OTk5OTgiIHkyPSI1LjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzg3NTRDOSIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGRjQwMDAiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8cmFkaWFsR3JhZGllbnQgaWQ9InBhaW50M19yYWRpYWxfNDQyXzgyNyIgY3g9IjAiIGN5PSIwIiByPSIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgxLjggMjIuMikgcm90YXRlKC05MCkgc2NhbGUoMTcuNCkiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAuNzIzOTI5IiBzdG9wLWNvbG9yPSIjRkZGNzAwIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0ZGOTkwMSIvPgogICAgPC9yYWRpYWxHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQ0X2xpbmVhcl80NDJfODI3IiB4MT0iMTQuMzk5OSIgeTE9IjIzLjEiIHgyPSIxOS4xOTk5IiB5Mj0iMjMuMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjRkZGNzAwIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0ZGOTkwMSIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQ1X2xpbmVhcl80NDJfODI3IiB4MT0iMC45MDAwMDEiIHkxPSI5LjU5OTk5IiB4Mj0iMC44OTk5OTkiIHkyPSI0Ljc5OTk5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiNGRkY3MDAiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkY5OTAxIi8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDZfcmFkaWFsXzQ0Ml84MjciIGN4PSIwIiBjeT0iMCIgcj0iMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS44IDIyLjIpIHJvdGF0ZSgtOTApIHNjYWxlKDEyLjYpIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwLjU5NTEzIiBzdG9wLWNvbG9yPSIjMDBBQUZGIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAxREE0MCIvPgogICAgPC9yYWRpYWxHcmFkaWVudD4KICAgIDxyYWRpYWxHcmFkaWVudCBpZD0icGFpbnQ3X3JhZGlhbF80NDJfODI3IiBjeD0iMCIgY3k9IjAiIHI9IjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDkuMzAwMSAyMy4xKSBzY2FsZSg1LjEgMTMuNikiPgogICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMDBBQUZGIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAxREE0MCIvPgogICAgPC9yYWRpYWxHcmFkaWVudD4KICAgIDxyYWRpYWxHcmFkaWVudCBpZD0icGFpbnQ4X3JhZGlhbF80NDJfODI3IiBjeD0iMCIgY3k9IjAiIHI9IjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDAuODk5OTk5IDE0LjcpIHJvdGF0ZSgtOTApIHNjYWxlKDUuMSA5Ni43MTEpIj4KICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzAwQUFGRiIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMURBNDAiLz4KICAgIDwvcmFkaWFsR3JhZGllbnQ+CiAgPC9kZWZzPgo8L3N2Zz4=";
|
|
657
|
+
|
|
658
|
+
// src/wallets/connectors/rainbow/rainbow.ts
|
|
659
|
+
var rainbowWallet = ({ projectId, walletConnectParameters }) => {
|
|
660
|
+
const isRainbowInjected = hasInjectedProvider({ flag: "isRainbow" });
|
|
661
|
+
const getUri = (uri) => {
|
|
662
|
+
return isAndroid2() ? `rainbow://wc?uri=${encodeURIComponent(uri)}` : isIOS2() ? !isTelegram2() ? `rainbow://wc?uri=${encodeURIComponent(uri)}` : `https://rnbwapp.com/wc?uri=${encodeURIComponent(uri)}` : `https://rnbwapp.com/wc?uri=${encodeURIComponent(uri)}`;
|
|
663
|
+
};
|
|
664
|
+
return {
|
|
665
|
+
id: "rainbow",
|
|
666
|
+
name: "Rainbow",
|
|
667
|
+
rdns: "me.rainbow",
|
|
668
|
+
iconUrl: icon2,
|
|
669
|
+
installed: isRainbowInjected,
|
|
670
|
+
isExtension: true,
|
|
671
|
+
isMobile: true,
|
|
672
|
+
downloadUrl: "https://rainbow.me/",
|
|
673
|
+
getUri,
|
|
674
|
+
createConnector: isRainbowInjected ? getInjectedConnector({ flag: "isRainbow" }) : getWalletConnectConnector({
|
|
675
|
+
projectId,
|
|
676
|
+
walletConnectParameters
|
|
677
|
+
})
|
|
678
|
+
};
|
|
679
|
+
};
|
|
680
|
+
|
|
681
|
+
// src/wallets/connectors/walletConnect/walletConnectIcon.ts
|
|
682
|
+
var icon3 = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNNC45MTMzIDYuOTM1NDFDOC44MjcxOCAzLjAyMTUzIDE1LjE3MjggMy4wMjE1MyAxOS4wODY3IDYuOTM1NDFMMTkuNTU3OCA3LjQwNjQ2QzE5Ljc1MzUgNy42MDIxNSAxOS43NTM1IDcuOTE5NDMgMTkuNTU3OCA4LjExNTEzTDE3Ljk0NjQgOS43MjY0N0MxNy44NDg2IDkuODI0MzIgMTcuNjg5OSA5LjgyNDMyIDE3LjU5MjEgOS43MjY0N0wxNi45NDM5IDkuMDc4MjZDMTQuMjEzNSA2LjM0Nzg0IDkuNzg2NTcgNi4zNDc4NCA3LjA1NjE0IDkuMDc4MjZMNi4zNjE5NiA5Ljc3MjQ0QzYuMjY0MTIgOS44NzAyOCA2LjEwNTQ4IDkuODcwMjggNi4wMDc2MyA5Ljc3MjQ0TDQuMzk2MjkgOC4xNjExQzQuMjAwNTkgNy45NjU0IDQuMjAwNTkgNy42NDgxMiA0LjM5NjI5IDcuNDUyNDNMNC45MTMzIDYuOTM1NDFaTTIyLjQxOTEgMTAuMjY3OEwyMy44NTMyIDExLjcwMTlDMjQuMDQ4OSAxMS44OTc2IDI0LjA0ODkgMTIuMjE0OSAyMy44NTMyIDEyLjQxMDZMMTcuMzg2OCAxOC44NzcyQzE3LjE5MTEgMTkuMDcyOCAxNi44NzM4IDE5LjA3MjkgMTYuNjc4MSAxOC44NzcyQzE2LjY3ODEgMTguODc3MiAxNi42NzgxIDE4Ljg3NzIgMTYuNjc4MSAxOC44NzcyTDEyLjA4ODYgMTQuMjg3N0MxMi4wMzk3IDE0LjIzODcgMTEuOTYwNCAxNC4yMzg3IDExLjkxMTUgMTQuMjg3N0MxMS45MTE1IDE0LjI4NzcgMTEuOTExNSAxNC4yODc3IDExLjkxMTUgMTQuMjg3N0w3LjMyMjA3IDE4Ljg3NzJDNy4xMjYzOCAxOS4wNzI4IDYuODA5MDkgMTkuMDcyOSA2LjYxMzQgMTguODc3MkM2LjYxMzQgMTguODc3MiA2LjYxMzM5IDE4Ljg3NzIgNi42MTMzOSAxOC44NzcyTDAuMTQ2NzcxIDEyLjQxMDVDLTAuMDQ4OTIzNiAxMi4yMTQ4IC0wLjA0ODkyMzYgMTEuODk3NSAwLjE0Njc3MSAxMS43MDE5TDEuNTgwODcgMTAuMjY3OEMxLjc3NjU2IDEwLjA3MjEgMi4wOTM4NSAxMC4wNzIxIDIuMjg5NTQgMTAuMjY3OEw2Ljg3OTEgMTQuODU3M0M2LjkyODAyIDE0LjkwNjIgNy4wMDczNCAxNC45MDYyIDcuMDU2MjYgMTQuODU3M0M3LjA1NjI2IDE0Ljg1NzMgNy4wNTYyNiAxNC44NTczIDcuMDU2MjcgMTQuODU3M0wxMS42NDU2IDEwLjI2NzhDMTEuODQxMyAxMC4wNzIxIDEyLjE1ODYgMTAuMDcyIDEyLjM1NDMgMTAuMjY3N0MxMi4zNTQzIDEwLjI2NzcgMTIuMzU0MyAxMC4yNjc3IDEyLjM1NDMgMTAuMjY3N0wxNi45NDM4IDE0Ljg1NzNDMTYuOTkyNyAxNC45MDYyIDE3LjA3MjEgMTQuOTA2MiAxNy4xMjEgMTQuODU3M0wyMS43MTA1IDEwLjI2NzhDMjEuOTA2MiAxMC4wNzIxIDIyLjIyMzQgMTAuMDcyMSAyMi40MTkxIDEwLjI2NzhaIiBmaWxsPSIjM0I5OUZDIi8+Cjwvc3ZnPg==";
|
|
683
|
+
|
|
684
|
+
// src/wallets/connectors/walletConnect/walletConnect.ts
|
|
685
|
+
var walletConnectWallet = ({ projectId, options }) => {
|
|
686
|
+
const getUri = (uri) => uri;
|
|
687
|
+
return {
|
|
688
|
+
id: "walletConnect",
|
|
689
|
+
name: "WalletConnect",
|
|
690
|
+
installed: void 0,
|
|
691
|
+
iconUrl: icon3,
|
|
692
|
+
isMobile: true,
|
|
693
|
+
getUri,
|
|
694
|
+
createConnector: getWalletConnectConnector({
|
|
695
|
+
projectId,
|
|
696
|
+
walletConnectParameters: options
|
|
697
|
+
})
|
|
698
|
+
};
|
|
699
|
+
};
|
|
700
|
+
|
|
701
|
+
// src/wallets/connectors/coinbase/coinbase.ts
|
|
702
|
+
import { createConnector as createConnector3 } from "wagmi";
|
|
703
|
+
import { coinbaseWallet as coinbaseWagmiWallet } from "wagmi/connectors";
|
|
704
|
+
|
|
705
|
+
// src/wallets/connectors/coinbase/coinbaseIcon.ts
|
|
706
|
+
var icon4 = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfNDQyXzg1NCkiPgogICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMiAyNEMxOC42Mjc0IDI0IDI0IDE4LjYyNzQgMjQgMTJDMjQgNS4zNzI1OCAxOC42Mjc0IDAgMTIgMEM1LjM3MjU4IDAgMCA1LjM3MjU4IDAgMTJDMCAxOC42Mjc0IDUuMzcyNTggMjQgMTIgMjRaTTguODMxNzUgOC4wODE2MkM4LjQxNzU0IDguMDgxNjIgOC4wODE3NSA4LjQxNzQxIDguMDgxNzUgOC44MzE2MlYxNS4xNjg0QzguMDgxNzUgMTUuNTgyNiA4LjQxNzU0IDE1LjkxODQgOC44MzE3NSAxNS45MTg0SDE1LjE2ODVDMTUuNTgyNyAxNS45MTg0IDE1LjkxODUgMTUuNTgyNiAxNS45MTg1IDE1LjE2ODRWOC44MzE2MkMxNS45MTg1IDguNDE3NDEgMTUuNTgyNyA4LjA4MTYyIDE1LjE2ODUgOC4wODE2Mkg4LjgzMTc1WiIgZmlsbD0iIzJDNUZGNiIvPgogIDwvZz4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcDBfNDQyXzg1NCI+CiAgICAgIDxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiLz4KICAgIDwvY2xpcFBhdGg+CiAgPC9kZWZzPgo8L3N2Zz4=";
|
|
707
|
+
|
|
708
|
+
// src/wallets/connectors/coinbase/coinbase.ts
|
|
709
|
+
var coinbaseWallet = ({ appName, appIcon }) => {
|
|
710
|
+
const isCoinbaseInjected = hasInjectedProvider({ flag: "isCoinbaseWallet" });
|
|
711
|
+
const getUri = (uri) => uri;
|
|
712
|
+
return {
|
|
713
|
+
id: "coinbase",
|
|
714
|
+
name: "Coinbase Wallet",
|
|
715
|
+
rdns: "com.coinbase.wallet",
|
|
716
|
+
iconUrl: icon4,
|
|
717
|
+
// Note that we never resolve `installed` to `false` because the
|
|
718
|
+
// Coinbase Wallet SDK falls back to other connection methods if
|
|
719
|
+
// the injected connector isn't available
|
|
720
|
+
installed: isCoinbaseInjected,
|
|
721
|
+
isExtension: true,
|
|
722
|
+
isMobile: true,
|
|
723
|
+
downloadUrl: "https://www.coinbase.com/wallet/downloads",
|
|
724
|
+
getUri,
|
|
725
|
+
createConnector: (walletDetails) => createConnector3((config) => ({
|
|
726
|
+
...coinbaseWagmiWallet({
|
|
727
|
+
version: "4",
|
|
728
|
+
appName,
|
|
729
|
+
appLogoUrl: appIcon,
|
|
730
|
+
preference: "eoaOnly"
|
|
731
|
+
})(config),
|
|
732
|
+
...walletDetails
|
|
733
|
+
}))
|
|
734
|
+
};
|
|
735
|
+
};
|
|
736
|
+
|
|
737
|
+
// src/wallets/connectors/zerion/zerion.ts
|
|
738
|
+
import { isIOS as isIOS3, isTelegram as isTelegram3 } from "@getpara/react-sdk";
|
|
739
|
+
|
|
740
|
+
// src/wallets/connectors/zerion/zerionIcon.ts
|
|
741
|
+
var icon5 = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyOCAyOCI+PHBhdGggZmlsbD0iIzI5NjJFRiIgZD0iTTAgMGgyOHYyOEgweiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik02LjA3MyA3Yy0uNDggMC0uNjY1LjU5My0uMjYyLjg0MWwxMC4wNzMgNi4wNzRhLjU3Ny41NzcgMCAwIDAgLjc1OC0uMTM5bDQuNDMtNS44MTRjLjMtLjQwNC0uMDA0LS45NjItLjUyNS0uOTYySDYuMDczWk0yMS45MDQgMjFjLjQ4IDAgLjY3LS41OTYuMjY3LS44NDRsLTEwLjA3NS02LjA3M2EuNTY5LjU2OSAwIDAgMC0uNzUxLjE0NmwtNC40MzcgNS44MTNjLS4zMDEuNDA0LjAxMi45NTguNTM0Ljk1OGgxNC40NjJaIi8+PC9zdmc+";
|
|
742
|
+
|
|
743
|
+
// src/wallets/connectors/zerion/zerion.ts
|
|
744
|
+
var zerionWallet = ({ projectId, walletConnectParameters }) => {
|
|
745
|
+
const isZerionInjected = hasInjectedProvider({
|
|
746
|
+
namespace: "zerionWallet",
|
|
747
|
+
flag: "isZerion"
|
|
748
|
+
});
|
|
749
|
+
const getUri = (uri) => {
|
|
750
|
+
return isTelegram3() && isIOS3() ? `https://app.zerion.io/wc?uri=${encodeURIComponent(uri)}` : `zerion://wc?uri=${encodeURIComponent(uri)}`;
|
|
751
|
+
};
|
|
752
|
+
return {
|
|
753
|
+
id: "zerion",
|
|
754
|
+
name: "Zerion",
|
|
755
|
+
rdns: "io.zerion.wallet",
|
|
756
|
+
iconUrl: icon5,
|
|
757
|
+
installed: isZerionInjected,
|
|
758
|
+
isExtension: true,
|
|
759
|
+
isMobile: true,
|
|
760
|
+
getUri,
|
|
761
|
+
downloadUrl: "https://zerion.io/download",
|
|
762
|
+
createConnector: isZerionInjected ? getInjectedConnector({
|
|
763
|
+
namespace: "zerionWallet",
|
|
764
|
+
flag: "isZerion"
|
|
765
|
+
}) : getWalletConnectConnector({
|
|
766
|
+
projectId,
|
|
767
|
+
walletConnectParameters
|
|
768
|
+
})
|
|
769
|
+
};
|
|
770
|
+
};
|
|
771
|
+
|
|
772
|
+
// src/wallets/connectors/rabby/rabbyIcon.ts
|
|
773
|
+
var icon6 = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyOCAyOCI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsPSIjODY5N0ZGIiBkPSJNMjggMEgwdjI4aDI4VjBaIi8+PHBhdGggZmlsbD0idXJsKCNiKSIgZD0iTTIyLjU0IDE1LjA3OGMuNjc3LTEuNTE0LTIuNjczLTUuNzQ0LTUuODc0LTcuNTA2LTIuMDE3LTEuMzY1LTQuMTItMS4xNzgtNC41NDUtLjU3OS0uOTM1IDEuMzE2IDMuMDk0IDIuNDMgNS43ODggMy43MzEtLjU4LjI1Mi0xLjEyNS43MDMtMS40NDYgMS4yOC0xLjAwNC0xLjA5Ni0zLjIwOS0yLjA0LTUuNzk2LTEuMjgtMS43NDMuNTEzLTMuMTkxIDEuNzIxLTMuNzUxIDMuNTQ2YTEuMDk3IDEuMDk3IDAgMSAwLS40NDUgMi4xYy4xMTIgMCAuNDYzLS4wNzUuNDYzLS4wNzVsNS42MTIuMDQxYy0yLjI0NCAzLjU2LTQuMDE4IDQuMDgxLTQuMDE4IDQuNjk4czEuNjk3LjQ1IDIuMzM1LjIyYzMuMDUtMS4xIDYuMzI3LTQuNTMxIDYuODktNS41MTkgMi4zNi4yOTUgNC4zNDUuMzMgNC43ODYtLjY1N1oiLz48cGF0aCBmaWxsPSJ1cmwoI2MpIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Im0xNy44ODUgMTAuNzEzLjAyNS4wMWMuMTI1LS4wNDkuMTA1LS4yMzMuMDctLjM3OC0uMDc4LS4zMzMtMS40MzgtMS42NzYtMi43MTUtMi4yNzctMS43NDMtLjgyLTMuMDI1LS43NzctMy4yMTItLjM5OC4zNTYuNzI2IDEuOTk4IDEuNDA4IDMuNzE0IDIuMTIuNzIzLjMgMS40Ni42MDYgMi4xMTguOTIzWiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0idXJsKCNkKSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTUuNzAxIDE4LjAzNmExMC4yOTYgMTAuMjk2IDAgMCAwLTEuMi0uMzdjLjQ4Mi0uODYyLjU4My0yLjEzOC4xMjgtMi45NDUtLjYzOS0xLjEzMy0xLjQ0LTEuNzM2LTMuMzA0LTEuNzM2LTEuMDI0IDAtMy43ODMuMzQ2LTMuODMyIDIuNjQ4LS4wMDUuMjQyIDAgLjQ2NC4wMTcuNjY3bDUuMDM2LjAzN2ExNy4yNjQgMTcuMjY0IDAgMCAxLTEuODcxIDIuNDgzYy42NjkuMTcyIDEuMjIxLjMxNiAxLjcyOC40NDguNDguMTI1LjkyLjI0IDEuMzguMzU3YTIxLjAwMyAyMS4wMDMgMCAwIDAgMS45MTgtMS41OVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9InVybCgjZSkiIGQ9Ik02Ljg0OCAxNi4wNjNjLjIwNiAxLjc1IDEuMiAyLjQzNSAzLjIzMiAyLjYzOCAyLjAzMi4yMDMgMy4xOTcuMDY3IDQuNzQ5LjIwOCAxLjI5Ni4xMTggMi40NTMuNzc4IDIuODgyLjU1LjM4Ni0uMjA1LjE3LS45NDctLjM0Ny0xLjQyMy0uNjctLjYxNy0xLjU5Ny0xLjA0Ni0zLjIyOS0xLjE5OS4zMjUtLjg5LjIzNC0yLjEzOC0uMjctMi44MTctLjczMS0uOTgyLTIuMDc5LTEuNDI2LTMuNzg1LTEuMjMyLTEuNzgyLjIwMi0zLjQ5IDEuMDgtMy4yMzIgMy4yNzVaIi8+PC9nPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9IjEwLjQ2NCIgeDI9IjIyLjM5NCIgeTE9IjEzLjczNyIgeTI9IjE3LjEyIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJjIiB4MT0iMjAuMzg2IiB4Mj0iMTEuNzc5IiB5MT0iMTMuNTA5IiB5Mj0iNC44NzkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjNzI1OERDIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNzk3REVBIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iZCIgeDE9IjE1Ljk0IiB4Mj0iNy42NzMiIHkxPSIxOC4zMzciIHkyPSIxMy41ODQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjNzQ2MUVBIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjQkZDMkZGIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iZSIgeDE9IjExLjE3NyIgeDI9IjE2Ljc2NSIgeTE9IjEzLjY0OCIgeTI9IjIwLjc0OSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9Ii45ODQiIHN0b3AtY29sb3I9IiNENUNFRkYiLz48L2xpbmVhckdyYWRpZW50PjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgyOHYyOEgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==";
|
|
774
|
+
|
|
775
|
+
// src/wallets/connectors/rabby/rabby.ts
|
|
776
|
+
var rabbyWallet = ({ projectId, walletConnectParameters }) => {
|
|
777
|
+
const isRabbyInjected = hasInjectedProvider({ flag: "isRabby" });
|
|
778
|
+
return {
|
|
779
|
+
id: "rabby",
|
|
780
|
+
name: "Rabby Wallet",
|
|
781
|
+
rdns: "io.rabby",
|
|
782
|
+
iconUrl: icon6,
|
|
783
|
+
installed: isRabbyInjected,
|
|
784
|
+
isExtension: true,
|
|
785
|
+
isMobile: false,
|
|
786
|
+
downloadUrl: "https://rabby.io",
|
|
787
|
+
createConnector: isRabbyInjected ? getInjectedConnector({ flag: "isRabby" }) : getWalletConnectConnector({
|
|
788
|
+
projectId,
|
|
789
|
+
walletConnectParameters
|
|
790
|
+
})
|
|
791
|
+
};
|
|
792
|
+
};
|
|
793
|
+
export {
|
|
794
|
+
EvmExternalWalletContext,
|
|
795
|
+
EvmExternalWalletProvider,
|
|
796
|
+
ParaEvmProvider,
|
|
797
|
+
coinbaseWallet,
|
|
798
|
+
metaMaskWallet,
|
|
799
|
+
rabbyWallet,
|
|
800
|
+
rainbowWallet,
|
|
801
|
+
walletConnectWallet,
|
|
802
|
+
zerionWallet
|
|
803
|
+
};
|
package/dist/index.js.br
CHANGED
|
Binary file
|
package/dist/index.js.gz
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getpara/evm-wallet-connectors",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@coinbase/wallet-sdk": "4.3.0",
|
|
13
|
-
"@getpara/react-sdk": "1.
|
|
14
|
-
"@getpara/wagmi-v2-integration": "1.
|
|
13
|
+
"@getpara/react-sdk": "1.5.0",
|
|
14
|
+
"@getpara/wagmi-v2-integration": "1.5.0",
|
|
15
15
|
"zustand": "^4.5.2",
|
|
16
16
|
"zustand-sync-tabs": "^0.2.2"
|
|
17
17
|
},
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
"dist",
|
|
38
38
|
"package.json"
|
|
39
39
|
],
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "0e3c1401b4f1da60b288cdde7695077c9bcbc48f"
|
|
41
41
|
}
|