sparrow-providers
Version:
A JavaScript Ubiq provider that connects to the wallet over a stream.
36 lines • 1.54 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const extension_port_stream_1 = __importDefault(require("extension-port-stream"));
const detect_browser_1 = require("detect-browser");
const BaseProvider_1 = __importDefault(require("../BaseProvider"));
const external_extension_config_json_1 = __importDefault(require("./external-extension-config.json"));
const browser = detect_browser_1.detect();
function createMetaMaskExternalExtensionProvider() {
let provider;
try {
const currentMetaMaskId = getMetaMaskId();
const metamaskPort = chrome.runtime.connect(currentMetaMaskId);
const pluginStream = new extension_port_stream_1.default(metamaskPort);
provider = new BaseProvider_1.default(pluginStream);
}
catch (e) {
console.dir(`Metamask connect error `, e);
throw e;
}
return provider;
}
exports.default = createMetaMaskExternalExtensionProvider;
function getMetaMaskId() {
switch (browser === null || browser === void 0 ? void 0 : browser.name) {
case 'chrome':
return external_extension_config_json_1.default.CHROME_ID;
case 'firefox':
return external_extension_config_json_1.default.FIREFOX_ID;
default:
return external_extension_config_json_1.default.CHROME_ID;
}
}
//# sourceMappingURL=createExternalExtensionProvider.js.map