// Copyright 2019-2020 @polkadot/extension-inject authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { Injected, InjectedWindow, InjectOptions } from './types'; // It is recommended to always use the function below to shield the extension and dapp from // any future changes. The exposed interface will manage access between the 2 environments, // be it via window (current), postMessage (under consideration) or any other mechanism export function injectExtension (enable: (origin: string) => Promise, { name, version }: InjectOptions): void { // small helper with the typescript types, just cast window const windowInject = window as Window & InjectedWindow; // don't clobber the existing object, we will add it (or create as needed) windowInject.injectedWeb3 = windowInject.injectedWeb3 || {}; // add our enable function windowInject.injectedWeb3[name] = { enable: (origin: string): Promise => enable(origin), version }; }