@sky-mavis/tanto-connect
Version:
Tanto Connect
17 lines • 952 B
JavaScript
import {DEFAULT_DELAY_TIME}from'../common/constant.mjs';import {EIP6963EventNames}from'../types/eip6963.mjs';const injectedProviders = [];
const requestProviders = async (delay = 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(EIP6963EventNames.AnnounceProvider, handlerAnnouncement);
window.dispatchEvent(new CustomEvent(EIP6963EventNames.RequestProvider));
await new Promise(resolve => setTimeout(resolve, delay));
window.removeEventListener(EIP6963EventNames.AnnounceProvider, handlerAnnouncement);
return injectedProviders;
};export{requestProviders};