UNPKG

@polkadot/extension-inject

Version:

A generic injector (usable to any extension), that populates the base exposed interfaces to be used by dapps.

31 lines (30 loc) 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.packageInfo = void 0; exports.injectExtension = injectExtension; const cyrb53_js_1 = require("./cyrb53.js"); var packageInfo_js_1 = require("./packageInfo.js"); Object.defineProperty(exports, "packageInfo", { enumerable: true, get: function () { return packageInfo_js_1.packageInfo; } }); const IS_CONNECT_CAPABLE = false; function injectExtension(enable, { name, version }) { // small helper with the typescript types, just cast window const windowInject = window; // don't clobber the existing object, we will add it (or create as needed) windowInject.injectedWeb3 = windowInject.injectedWeb3 || {}; if (IS_CONNECT_CAPABLE) { // expose our extension on the window object, new-style with connect(origin) windowInject.injectedWeb3[(0, cyrb53_js_1.cyrb53)(`${name}/${version}`)] = { connect: (origin) => enable(origin).then(({ accounts, metadata, provider, signer }) => ({ accounts, metadata, name, provider, signer, version })), enable: () => Promise.reject(new Error('This extension does not have support for enable(...), rather is only supports the new connect(...) variant (no extension name/version metadata without specific user-approval)')) }; } else { // expose our extension on the window object, old-style with enable(origin) windowInject.injectedWeb3[name] = { enable: (origin) => enable(origin), version }; } }