@vechain/connex-wallet-buddy
Version:
to bridge connex sign request to wallet
96 lines • 7.32 kB
JavaScript
import html from '../helper.html';
import { detect } from 'detect-browser';
export const browser = detect();
const LITE_WALLET_URL = 'https://lite.sync.vecha.in/';
function openLiteWallet(src) {
const options = (() => {
switch (browser && browser.os) {
case 'iOS':
case 'android':
case 'Android OS':
return {};
default:
return {
target: `sync|${window.location.host}`,
features: 'width=360,height=640,resizable,scrollbars=yes,dependent,modal'
};
}
})();
setTimeout(() => {
window.open(new URL(`#/sign?src=${encodeURIComponent(src)}`, LITE_WALLET_URL).href, options.target, options.features);
});
}
const getHiddenIframe = (() => {
let iframe = null;
return () => {
if (!iframe || !iframe.parentElement) {
iframe = document.createElement("iframe");
iframe.style.display = "none";
document.body.appendChild(iframe);
}
return iframe;
};
})();
function createActionIframe() {
const iframe = document.createElement('iframe');
iframe.style.border = 'none';
iframe.style.position = 'fixed';
iframe.style.zIndex = '9999';
iframe.style.width = '100vw';
iframe.style.height = '110px';
iframe.style.left = iframe.style.bottom = '0px';
iframe.src = URL.createObjectURL(new Blob([html], { type: 'text/html' }));
return iframe;
}
export function connect(src) {
try {
const href = `connex:sign?src=${encodeURIComponent(src)}`;
const os = (browser && browser.os) || '';
if (os === 'Mac OS' || os === 'Linux' || os.startsWith('Windows')) {
// desktop oses have native sync2 supported, try to launch in hidden iframe
getHiddenIframe().contentWindow.location.href = href;
}
else {
openLiteWallet(src);
return {
show() { },
hide() { }
};
}
}
catch (_a) { }
const actionFrame = createActionIframe();
const msgHandler = (ev) => {
if (ev.data && ev.data.src === 'connex-helper' && ev.data.action) {
switch (ev.data.action) {
case 'close':
if (actionFrame.parentNode) {
actionFrame.parentNode.removeChild(actionFrame);
window.removeEventListener('message', msgHandler);
}
return;
case 'lite':
openLiteWallet(src);
return;
case 'install':
window.open('https://sync.vecha.in/');
return;
}
}
};
return {
show() {
if (!actionFrame.parentNode) {
document.body.appendChild(actionFrame);
window.addEventListener('message', msgHandler);
}
},
hide() {
if (actionFrame.parentNode) {
actionFrame.parentNode.removeChild(actionFrame);
window.removeEventListener('message', msgHandler);
}
}
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2hlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxnQkFBZ0IsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFdkMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFBO0FBRS9CLE1BQU0sZUFBZSxHQUFHLDZCQUE2QixDQUFBO0FBRXJELFNBQVMsY0FBYyxDQUFDLEdBQVc7SUFDL0IsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUU7UUFDbEIsUUFBUSxPQUFPLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUMzQixLQUFLLEtBQUssQ0FBQztZQUNYLEtBQUssU0FBUyxDQUFDO1lBQ2YsS0FBSyxZQUFZO2dCQUNiLE9BQU8sRUFBRSxDQUFBO1lBQ2I7Z0JBQ0ksT0FBTztvQkFDSCxNQUFNLEVBQUUsUUFBUSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtvQkFDdEMsUUFBUSxFQUFFLCtEQUErRDtpQkFDNUUsQ0FBQTtTQUNSO0lBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUVKLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDWixNQUFNLENBQUMsSUFBSSxDQUNQLElBQUksR0FBRyxDQUFDLGNBQWMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxlQUFlLENBQUMsQ0FBQyxJQUFJLEVBQ3RFLE9BQU8sQ0FBQyxNQUFNLEVBQ2QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3pCLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQztBQUVELE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxFQUFFO0lBQzFCLElBQUksTUFBTSxHQUFHLElBQWdDLENBQUE7SUFDN0MsT0FBTyxHQUFHLEVBQUU7UUFDUixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFD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