UNPKG

@cosmos-kit/walletconnect

Version:

cosmos-kit wallet connector using walletconnect

42 lines (41 loc) 1.58 kB
const WALLETCONNECT_DEEPLINK_CHOICE = 'WALLETCONNECT_DEEPLINK_CHOICE'; export const CoreUtil = { isHttpUrl(url) { return url.startsWith('http://') || url.startsWith('https://'); }, formatNativeUrl(appUrl, wcUri, os, name) { if (CoreUtil.isHttpUrl(appUrl)) { return this.formatUniversalUrl(appUrl, wcUri, name); } const plainAppUrl = appUrl.replaceAll('/', '').replaceAll(':', ''); CoreUtil.setWalletConnectDeepLink(plainAppUrl, name); const encodedWcUrl = encodeURIComponent(wcUri); return `${plainAppUrl}://wc?uri=${encodedWcUrl}`; }, formatUniversalUrl(appUrl, wcUri, name) { if (!CoreUtil.isHttpUrl(appUrl)) { return this.formatNativeUrl(appUrl, wcUri, name); } let plainAppUrl = appUrl; if (appUrl.endsWith('/')) { plainAppUrl = appUrl.slice(0, -1); } CoreUtil.setWalletConnectDeepLink(plainAppUrl, name); const encodedWcUrl = encodeURIComponent(wcUri); return `${plainAppUrl}/wc?uri=${encodedWcUrl}`; }, async wait(miliseconds) { return new Promise((resolve) => { setTimeout(resolve, miliseconds); }); }, openHref(href, target = '_self') { window.open(href, target, 'noreferrer noopener'); }, setWalletConnectDeepLink(href, name) { localStorage.setItem(WALLETCONNECT_DEEPLINK_CHOICE, JSON.stringify({ href, name })); }, removeWalletConnectDeepLink() { localStorage.removeItem(WALLETCONNECT_DEEPLINK_CHOICE); }, };