@sky-mavis/tanto-connect
Version:
Tanto Connect
32 lines (28 loc) • 1.27 kB
JavaScript
;
var constant = require('../common/constant.cjs');
var connectorError = require('../types/connector-error.cjs');
var index = require('../utils/index.cjs');
var eip6963 = require('./eip6963.cjs');
const requestRoninProvider = async (delay = constant.DEFAULT_DELAY_TIME) => {
const providersDetail = await eip6963.requestProviders(delay);
const roninProvider = providersDetail.find(({ info }) => info.rdns === constant.RONIN_WALLET_RDNS)?.provider;
if (roninProvider) {
return roninProvider;
}
else {
throw new connectorError.ConnectorError(connectorError.ConnectorErrorType.PROVIDER_NOT_FOUND);
}
};
const requestLegacyRoninProvider = async (delay = constant.DEFAULT_DELAY_TIME) => {
if (index.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 (index.checkRoninInstalled()) {
return window.ronin?.provider;
}
throw new connectorError.ConnectorError(connectorError.ConnectorErrorType.NOT_INSTALLED);
};
exports.requestLegacyRoninProvider = requestLegacyRoninProvider;
exports.requestRoninProvider = requestRoninProvider;