@sky-mavis/tanto-connect
Version:
Tanto Connect
21 lines • 1.14 kB
JavaScript
import {RONIN_WALLET_RDNS,DEFAULT_DELAY_TIME}from'../common/constant.mjs';import {ConnectorError,ConnectorErrorType}from'../types/connector-error.mjs';import {checkRoninInstalled}from'../utils/index.mjs';import {requestProviders}from'./eip6963.mjs';const requestRoninProvider = async (delay = DEFAULT_DELAY_TIME) => {
const providersDetail = await requestProviders(delay);
const roninProvider = providersDetail.find(({ info }) => info.rdns === RONIN_WALLET_RDNS)?.provider;
if (roninProvider) {
return roninProvider;
}
else {
throw new ConnectorError(ConnectorErrorType.PROVIDER_NOT_FOUND);
}
};
const requestLegacyRoninProvider = async (delay = DEFAULT_DELAY_TIME) => {
if (checkRoninInstalled()) {
return window.ronin?.provider;
}
// Wait for the provider to be injected if it's not available yet
await new Promise(resolve => setTimeout(resolve, delay));
if (checkRoninInstalled()) {
return window.ronin?.provider;
}
throw new ConnectorError(ConnectorErrorType.NOT_INSTALLED);
};export{requestLegacyRoninProvider,requestRoninProvider};