Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import type { Message } from '@polkadot/extension-base/types'
import {
enable,
handleResponse,
redirectIfPhishing,
} from '@polkadot/extension-base/page'
import { injectExtension } from '@polkadot/extension-inject'
// setup a response listener (events created by the loader for extension responses)
window.addEventListener('message', ({ data, source }: Message): void => {
// only allow messages from our window, by the loader
if (source !== window || data.origin !== 'content') {
return
}
if (data.id) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
handleResponse(data as any)
} else {
console.error('Missing id for response.')
}
})
redirectIfPhishing()
.then((gotRedirected) => {
if (!gotRedirected) {
inject()
}
})
.catch((e) => {
console.warn(
`Unable to determine if the site is in the phishing list: ${
(e as Error).message
}`
)
inject()
})
function inject() {
injectExtension(enable, {
name: 'polkadot-js',
version: process.env.PKG_VERSION as string,
})
}