@subwallet/extension-inject 1.1.24-3 → 1.1.25-0

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.
package/bundle.d.ts CHANGED
@@ -3,3 +3,4 @@ import { EvmProvider } from './types';
3
3
  export { packageInfo } from './packageInfo';
4
4
  export declare function injectExtension(enable: (origin: string) => Promise<Injected>, { name, version }: InjectOptions): void;
5
5
  export declare function injectEvmExtension(evmProvider: EvmProvider): void;
6
+ export declare const inject6963EIP: (provider: EvmProvider) => void;
package/bundle.js CHANGED
@@ -44,9 +44,42 @@ export function injectEvmExtension(evmProvider) {
44
44
  windowInject.ethereum = evmProvider;
45
45
  windowInject.dispatchEvent(new Event('ethereum#initialized'));
46
46
  }
47
+ inject6963EIP(evmProvider);
47
48
  });
48
49
 
49
50
  // Todo: Need more discuss to make SubWallet as global before window load because it can be conflict with MetaMask
50
51
  // windowInject.ethereum = evmProvider;
51
52
  // windowInject.dispatchEvent(new Event('ethereum#initialized'));
52
- }
53
+ }
54
+
55
+ export const inject6963EIP = provider => {
56
+ // TODO: Need to confirm that infomation
57
+ const info = {
58
+ uuid: '10c67337-9211-48d9-aab0-cecdc4224acc',
59
+ name: 'SubWallet',
60
+ icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYwIiBoZWlnaHQ9IjE2MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNODAgNGM1Ny42MyAwIDc2IDE4LjM3IDc2IDc2IDAgNTcuNjMtMTguMzcgNzYtNzYgNzYtNTcuNjMgMC03Ni0xOC4zNy03Ni03NkM0IDIyLjM3IDIyLjM3IDQgODAgNFoiIGZpbGw9InVybCgjYSkiLz48ZyBjbGlwLXBhdGg9InVybCgjYikiPjxwYXRoIGQ9Ik0xMTIuNjE1IDY2LjcyVjUzLjM5OEw1OC43NiAzMiA0OCAzNy40MTJsLjA1NyA0MS40NjQgNDAuMjkyIDE2LjA3LTIxLjUyIDkuMDc1di03LjAxOEw1Ni45NSA5My4wM2wtOC44OTMgNC4xNjN2MjUuMzk1TDU4Ljc2OSAxMjhsNTMuODQ2LTI0LjA2MlY4Ni44NjlMNjQuMTU0IDY3LjY1N1Y1NmwzOC40NDkgMTUuMjE2IDEwLjAxMi00LjQ5NloiIGZpbGw9IiNmZmYiLz48L2c+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJhIiB4MT0iODAiIHkxPSI0IiB4Mj0iODAiIHkyPSIxNTYiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjMDA0QkZGIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNENFQUFDIi8+PC9saW5lYXJHcmFkaWVudD48Y2xpcFBhdGggaWQ9ImIiPjxwYXRoIGZpbGw9IiNmZmYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQ4IDMyKSIgZD0iTTAgMGg2NC42MTV2OTZIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=',
61
+ rdns: 'extension.subwallet.app'
62
+ };
63
+ const _provider = new Proxy(provider, {
64
+ // TODO: Please review the security of this
65
+ get(target, key) {
66
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return
67
+ return Reflect.get(target, key).bind(target);
68
+ },
69
+ deleteProperty() {
70
+ return true;
71
+ }
72
+ });
73
+ const announceProvider = () => {
74
+ const detail = Object.freeze({
75
+ info: info,
76
+ provider: _provider
77
+ });
78
+ const event = new CustomEvent('eip6963:announceProvider', {
79
+ detail
80
+ });
81
+ window.dispatchEvent(event);
82
+ };
83
+ window.addEventListener('eip6963:requestProvider', announceProvider);
84
+ announceProvider();
85
+ };
package/cjs/bundle.js CHANGED
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.inject6963EIP = void 0;
6
7
  exports.injectEvmExtension = injectEvmExtension;
7
8
  exports.injectExtension = injectExtension;
8
9
  Object.defineProperty(exports, "packageInfo", {
@@ -57,9 +58,43 @@ function injectEvmExtension(evmProvider) {
57
58
  windowInject.ethereum = evmProvider;
58
59
  windowInject.dispatchEvent(new Event('ethereum#initialized'));
59
60
  }
61
+ inject6963EIP(evmProvider);
60
62
  });
61
63
 
62
64
  // Todo: Need more discuss to make SubWallet as global before window load because it can be conflict with MetaMask
63
65
  // windowInject.ethereum = evmProvider;
64
66
  // windowInject.dispatchEvent(new Event('ethereum#initialized'));
65
- }
67
+ }
68
+
69
+ const inject6963EIP = provider => {
70
+ // TODO: Need to confirm that infomation
71
+ const info = {
72
+ uuid: '10c67337-9211-48d9-aab0-cecdc4224acc',
73
+ name: 'SubWallet',
74
+ icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYwIiBoZWlnaHQ9IjE2MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNODAgNGM1Ny42MyAwIDc2IDE4LjM3IDc2IDc2IDAgNTcuNjMtMTguMzcgNzYtNzYgNzYtNTcuNjMgMC03Ni0xOC4zNy03Ni03NkM0IDIyLjM3IDIyLjM3IDQgODAgNFoiIGZpbGw9InVybCgjYSkiLz48ZyBjbGlwLXBhdGg9InVybCgjYikiPjxwYXRoIGQ9Ik0xMTIuNjE1IDY2LjcyVjUzLjM5OEw1OC43NiAzMiA0OCAzNy40MTJsLjA1NyA0MS40NjQgNDAuMjkyIDE2LjA3LTIxLjUyIDkuMDc1di03LjAxOEw1Ni45NSA5My4wM2wtOC44OTMgNC4xNjN2MjUuMzk1TDU4Ljc2OSAxMjhsNTMuODQ2LTI0LjA2MlY4Ni44NjlMNjQuMTU0IDY3LjY1N1Y1NmwzOC40NDkgMTUuMjE2IDEwLjAxMi00LjQ5NloiIGZpbGw9IiNmZmYiLz48L2c+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJhIiB4MT0iODAiIHkxPSI0IiB4Mj0iODAiIHkyPSIxNTYiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjMDA0QkZGIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNENFQUFDIi8+PC9saW5lYXJHcmFkaWVudD48Y2xpcFBhdGggaWQ9ImIiPjxwYXRoIGZpbGw9IiNmZmYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQ4IDMyKSIgZD0iTTAgMGg2NC42MTV2OTZIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=',
75
+ rdns: 'extension.subwallet.app'
76
+ };
77
+ const _provider = new Proxy(provider, {
78
+ // TODO: Please review the security of this
79
+ get(target, key) {
80
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return
81
+ return Reflect.get(target, key).bind(target);
82
+ },
83
+ deleteProperty() {
84
+ return true;
85
+ }
86
+ });
87
+ const announceProvider = () => {
88
+ const detail = Object.freeze({
89
+ info: info,
90
+ provider: _provider
91
+ });
92
+ const event = new CustomEvent('eip6963:announceProvider', {
93
+ detail
94
+ });
95
+ window.dispatchEvent(event);
96
+ };
97
+ window.addEventListener('eip6963:requestProvider', announceProvider);
98
+ announceProvider();
99
+ };
100
+ exports.inject6963EIP = inject6963EIP;
@@ -13,6 +13,6 @@ const packageInfo = {
13
13
  name: '@subwallet/extension-inject',
14
14
  path: typeof __dirname === 'string' ? __dirname : 'auto',
15
15
  type: 'cjs',
16
- version: '1.1.24-3'
16
+ version: '1.1.25-0'
17
17
  };
18
18
  exports.packageInfo = packageInfo;
package/package.json CHANGED
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "sideEffects": true,
16
16
  "type": "module",
17
- "version": "1.1.24-3",
17
+ "version": "1.1.25-0",
18
18
  "main": "./cjs/index.js",
19
19
  "module": "./index.js",
20
20
  "types": "./index.d.ts",
package/packageInfo.js CHANGED
@@ -7,5 +7,5 @@ export const packageInfo = {
7
7
  name: '@subwallet/extension-inject',
8
8
  path: (import.meta && import.meta.url) ? new URL(import.meta.url).pathname.substring(0, new URL(import.meta.url).pathname.lastIndexOf('/') + 1) : 'auto',
9
9
  type: 'esm',
10
- version: '1.1.24-3'
10
+ version: '1.1.25-0'
11
11
  };
package/types.d.ts CHANGED
@@ -94,4 +94,21 @@ export interface Web3AccountsOptions {
94
94
  ss58Format?: number;
95
95
  accountType?: KeypairType[];
96
96
  }
97
+ export interface EIP6963ProviderInfo {
98
+ uuid: string;
99
+ name: string;
100
+ icon: string;
101
+ rdns: string;
102
+ }
103
+ export interface EIP6963ProviderDetail {
104
+ info: EIP6963ProviderInfo;
105
+ provider: EvmProvider;
106
+ }
107
+ export interface EIP6963AnnounceProviderEvent extends CustomEvent {
108
+ type: 'eip6963:announceProvider';
109
+ detail: EIP6963ProviderDetail;
110
+ }
111
+ export interface EIP6963RequestProviderEvent extends Event {
112
+ type: 'eip6963:requestProvider';
113
+ }
97
114
  export {};