@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
JavaScript
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
};
}
}
;