@onekeyfe/inpage-providers-hub 1.1.10 → 1.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,20 +13,48 @@ const onekey_sui_provider_1 = require("@onekeyfe/onekey-sui-provider");
13
13
  require("./connectButtonHack");
14
14
  // import Web3 from 'web3'; // cause build error
15
15
  const { WALLET_INFO_LOACAL_KEY } = cross_inpage_provider_core_1.consts;
16
+ function checkEnableDefineProperty() {
17
+ try {
18
+ const walletInfoLocalStr = localStorage.getItem(WALLET_INFO_LOACAL_KEY);
19
+ const walletInfoLocal = walletInfoLocalStr ? JSON.parse(walletInfoLocalStr) : null;
20
+ return !!(walletInfoLocal === null || walletInfoLocal === void 0 ? void 0 : walletInfoLocal.platformEnv.isExtension);
21
+ }
22
+ catch (e) {
23
+ console.error(e);
24
+ }
25
+ return false;
26
+ }
16
27
  function defineWindowProperty(property, provider) {
28
+ const enable = checkEnableDefineProperty();
29
+ const proxyProvider = new Proxy(provider, {
30
+ defineProperty(target, property, attributes) {
31
+ // skip define Prevent overwriting
32
+ return true;
33
+ },
34
+ });
17
35
  try {
18
- Object.defineProperty(window, property, {
19
- get() {
20
- return provider;
21
- },
22
- set(val) {
23
- // skip the assignment
24
- return;
25
- },
26
- });
36
+ if (enable) {
37
+ Object.keys(provider).forEach((key) => {
38
+ var _a;
39
+ ((_a = window[property]) !== null && _a !== void 0 ? _a : {})[key] = proxyProvider[key];
40
+ });
41
+ Object.defineProperty(window, property, {
42
+ configurable: false,
43
+ get() {
44
+ return proxyProvider;
45
+ },
46
+ set(val) {
47
+ // skip set
48
+ },
49
+ });
50
+ }
51
+ else {
52
+ window[property] = provider;
53
+ }
27
54
  }
28
55
  catch (ex) {
29
56
  console.error(ex);
57
+ window[property] = provider;
30
58
  }
31
59
  }
32
60
  function injectWeb3Provider() {
@@ -94,33 +122,7 @@ function injectWeb3Provider() {
94
122
  defineWindowProperty('martian', martianProxy);
95
123
  defineWindowProperty('conflux', conflux);
96
124
  defineWindowProperty('tronLink', tron);
97
- // window.$onekey = $onekey;
98
- // ** EVM
99
- // TODO conflict with MetaMask
100
- // window.ethereum = ethereum;
101
- // ** SOL
102
- // window.solana = solana;
103
- // window.phantom = { solana };
104
- // sim multiple providers may cause opensea.io prompts Connection twice.
105
- // window.solflare = solana;
106
- // window.glowSolana = solana;
107
- // ** STC
108
- // window.starcoin = starcoin;
109
- // ** Aptos
110
- // window.aptos = martian;
111
- // window.martian = new Proxy(martian, {
112
- // get: (target, property, ...args) => {
113
- // if (property === 'aptosProviderType') {
114
- // return 'martian';
115
- // }
116
- // // eslint-disable-next-line @typescript-eslint/no-unsafe-return
117
- // return Reflect.get(target, property, ...args);
118
- // },
119
- // });
120
- // ** Conflux
121
- // window.conflux = conflux;
122
- // window.tronLink = tron;
123
- window.suiWallet = sui;
125
+ defineWindowProperty('suiWallet', sui);
124
126
  // ** shim or inject real web3
125
127
  //
126
128
  // if (!window.web3) {
@@ -10,20 +10,48 @@ import { ProviderSui, registerSuiWallet } from '@onekeyfe/onekey-sui-provider';
10
10
  import './connectButtonHack';
11
11
  // import Web3 from 'web3'; // cause build error
12
12
  const { WALLET_INFO_LOACAL_KEY } = consts;
13
+ function checkEnableDefineProperty() {
14
+ try {
15
+ const walletInfoLocalStr = localStorage.getItem(WALLET_INFO_LOACAL_KEY);
16
+ const walletInfoLocal = walletInfoLocalStr ? JSON.parse(walletInfoLocalStr) : null;
17
+ return !!(walletInfoLocal === null || walletInfoLocal === void 0 ? void 0 : walletInfoLocal.platformEnv.isExtension);
18
+ }
19
+ catch (e) {
20
+ console.error(e);
21
+ }
22
+ return false;
23
+ }
13
24
  function defineWindowProperty(property, provider) {
25
+ const enable = checkEnableDefineProperty();
26
+ const proxyProvider = new Proxy(provider, {
27
+ defineProperty(target, property, attributes) {
28
+ // skip define Prevent overwriting
29
+ return true;
30
+ },
31
+ });
14
32
  try {
15
- Object.defineProperty(window, property, {
16
- get() {
17
- return provider;
18
- },
19
- set(val) {
20
- // skip the assignment
21
- return;
22
- },
23
- });
33
+ if (enable) {
34
+ Object.keys(provider).forEach((key) => {
35
+ var _a;
36
+ ((_a = window[property]) !== null && _a !== void 0 ? _a : {})[key] = proxyProvider[key];
37
+ });
38
+ Object.defineProperty(window, property, {
39
+ configurable: false,
40
+ get() {
41
+ return proxyProvider;
42
+ },
43
+ set(val) {
44
+ // skip set
45
+ },
46
+ });
47
+ }
48
+ else {
49
+ window[property] = provider;
50
+ }
24
51
  }
25
52
  catch (ex) {
26
53
  console.error(ex);
54
+ window[property] = provider;
27
55
  }
28
56
  }
29
57
  function injectWeb3Provider() {
@@ -91,33 +119,7 @@ function injectWeb3Provider() {
91
119
  defineWindowProperty('martian', martianProxy);
92
120
  defineWindowProperty('conflux', conflux);
93
121
  defineWindowProperty('tronLink', tron);
94
- // window.$onekey = $onekey;
95
- // ** EVM
96
- // TODO conflict with MetaMask
97
- // window.ethereum = ethereum;
98
- // ** SOL
99
- // window.solana = solana;
100
- // window.phantom = { solana };
101
- // sim multiple providers may cause opensea.io prompts Connection twice.
102
- // window.solflare = solana;
103
- // window.glowSolana = solana;
104
- // ** STC
105
- // window.starcoin = starcoin;
106
- // ** Aptos
107
- // window.aptos = martian;
108
- // window.martian = new Proxy(martian, {
109
- // get: (target, property, ...args) => {
110
- // if (property === 'aptosProviderType') {
111
- // return 'martian';
112
- // }
113
- // // eslint-disable-next-line @typescript-eslint/no-unsafe-return
114
- // return Reflect.get(target, property, ...args);
115
- // },
116
- // });
117
- // ** Conflux
118
- // window.conflux = conflux;
119
- // window.tronLink = tron;
120
- window.suiWallet = sui;
122
+ defineWindowProperty('suiWallet', sui);
121
123
  // ** shim or inject real web3
122
124
  //
123
125
  // if (!window.web3) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/inpage-providers-hub",
3
- "version": "1.1.10",
3
+ "version": "1.1.12",
4
4
  "keywords": [
5
5
  "cross-inpage-provider"
6
6
  ],
@@ -28,17 +28,17 @@
28
28
  "start": "tsc --watch"
29
29
  },
30
30
  "dependencies": {
31
- "@onekeyfe/cross-inpage-provider-core": "1.1.10",
32
- "@onekeyfe/cross-inpage-provider-types": "1.1.10",
33
- "@onekeyfe/onekey-aptos-provider": "1.1.10",
34
- "@onekeyfe/onekey-conflux-provider": "1.1.10",
35
- "@onekeyfe/onekey-eth-provider": "1.1.10",
36
- "@onekeyfe/onekey-private-provider": "1.1.10",
37
- "@onekeyfe/onekey-solana-provider": "1.1.10",
38
- "@onekeyfe/onekey-starcoin-provider": "1.1.10",
39
- "@onekeyfe/onekey-sui-provider": "1.1.10",
40
- "@onekeyfe/onekey-tron-provider": "1.1.10",
31
+ "@onekeyfe/cross-inpage-provider-core": "1.1.12",
32
+ "@onekeyfe/cross-inpage-provider-types": "1.1.12",
33
+ "@onekeyfe/onekey-aptos-provider": "1.1.12",
34
+ "@onekeyfe/onekey-conflux-provider": "1.1.12",
35
+ "@onekeyfe/onekey-eth-provider": "1.1.12",
36
+ "@onekeyfe/onekey-private-provider": "1.1.12",
37
+ "@onekeyfe/onekey-solana-provider": "1.1.12",
38
+ "@onekeyfe/onekey-starcoin-provider": "1.1.12",
39
+ "@onekeyfe/onekey-sui-provider": "1.1.12",
40
+ "@onekeyfe/onekey-tron-provider": "1.1.12",
41
41
  "web3": "^1.7.3"
42
42
  },
43
- "gitHead": "daa07d3713c9bd9802833175a33da1d763567562"
43
+ "gitHead": "5af7717e70fac421ababe1ed244393f18b24e164"
44
44
  }