@sky-mavis/tanto-connect
Version:
Tanto Connect
25 lines (21 loc) • 1.01 kB
JavaScript
;
var constant = require('../common/constant.cjs');
var eip6963 = require('../types/eip6963.cjs');
const injectedProviders = [];
const requestProviders = async (delay = constant.DEFAULT_DELAY_TIME) => {
if (typeof window === 'undefined') {
return [];
}
const handlerAnnouncement = (event) => {
const isAnnounced = injectedProviders.some(detail => detail.info.uuid === event.detail.info.uuid || detail.info.rdns === event.detail.info.rdns);
if (!isAnnounced) {
injectedProviders.push(event.detail);
}
};
window.addEventListener(eip6963.EIP6963EventNames.AnnounceProvider, handlerAnnouncement);
window.dispatchEvent(new CustomEvent(eip6963.EIP6963EventNames.RequestProvider));
await new Promise(resolve => setTimeout(resolve, delay));
window.removeEventListener(eip6963.EIP6963EventNames.AnnounceProvider, handlerAnnouncement);
return injectedProviders;
};
exports.requestProviders = requestProviders;