@subwallet/extension-base 1.0.12-0 → 1.0.13-1

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.
Files changed (124) hide show
  1. package/background/KoniTypes.d.ts +89 -0
  2. package/background/KoniTypes.js +18 -19
  3. package/background/handlers/Extension.js +17 -2
  4. package/background/handlers/State.d.ts +0 -1
  5. package/background/handlers/State.js +4 -8
  6. package/background/types.d.ts +6 -1
  7. package/cjs/background/KoniTypes.js +21 -11
  8. package/cjs/background/handlers/Extension.js +22 -6
  9. package/cjs/background/handlers/State.js +4 -8
  10. package/cjs/constants/index.js +7 -1
  11. package/cjs/defaults.js +1 -1
  12. package/cjs/koni/api/dotsama/balance.js +5 -0
  13. package/cjs/koni/api/dotsama/transfer.js +6 -0
  14. package/cjs/koni/api/nft/config.js +11 -6
  15. package/cjs/koni/api/xcm/polkadotXcm.js +1 -1
  16. package/cjs/koni/api/xcm/xTokens.js +2 -2
  17. package/cjs/koni/background/cron.js +12 -1
  18. package/cjs/koni/background/handlers/Extension.js +457 -131
  19. package/cjs/koni/background/handlers/State.js +236 -53
  20. package/cjs/koni/background/handlers/Tabs.js +61 -9
  21. package/cjs/koni/background/subscription.js +3 -0
  22. package/cjs/packageInfo.js +1 -1
  23. package/cjs/page/Metadata.js +3 -0
  24. package/cjs/services/chain-service/constants.js +10 -4
  25. package/cjs/services/chain-service/handler/SubstrateApi.js +2 -1
  26. package/cjs/services/chain-service/handler/SubstrateChainHandler.js +3 -1
  27. package/cjs/services/chain-service/handler/manta/MantaPrivateHandler.js +147 -0
  28. package/cjs/services/chain-service/index.js +54 -5
  29. package/cjs/services/chain-service/utils.js +32 -0
  30. package/cjs/services/event-service/types.js +3 -1
  31. package/cjs/services/request-service/handler/AuthRequestHandler.js +4 -9
  32. package/cjs/services/request-service/handler/SubstrateRequestHandler.js +2 -2
  33. package/cjs/services/request-service/handler/WalletConnectRequestHandler.js +71 -0
  34. package/cjs/services/request-service/index.js +24 -6
  35. package/cjs/services/storage-service/DatabaseService.js +31 -1
  36. package/cjs/services/storage-service/databases/index.js +3 -0
  37. package/cjs/services/storage-service/db-stores/MantaPay.js +40 -0
  38. package/cjs/services/transaction-service/helpers/index.js +3 -2
  39. package/cjs/services/transaction-service/index.js +2 -1
  40. package/cjs/services/wallet-connect-service/constants.js +38 -0
  41. package/cjs/services/wallet-connect-service/handler/Eip155RequestHandler.js +113 -0
  42. package/cjs/services/wallet-connect-service/handler/PolkadotRequestHandler.js +123 -0
  43. package/cjs/services/wallet-connect-service/helpers.js +81 -0
  44. package/cjs/services/wallet-connect-service/index.js +273 -0
  45. package/cjs/services/wallet-connect-service/types.js +27 -0
  46. package/cjs/utils/array.js +17 -0
  47. package/cjs/utils/environment.js +66 -0
  48. package/cjs/utils/index.js +78 -1
  49. package/cjs/utils/lazy.js +52 -0
  50. package/constants/index.d.ts +2 -0
  51. package/constants/index.js +2 -0
  52. package/defaults.d.ts +1 -1
  53. package/defaults.js +1 -1
  54. package/koni/api/dotsama/balance.js +6 -1
  55. package/koni/api/dotsama/transfer.js +7 -1
  56. package/koni/api/nft/config.js +11 -6
  57. package/koni/api/xcm/polkadotXcm.js +1 -1
  58. package/koni/api/xcm/xTokens.js +2 -2
  59. package/koni/background/cron.d.ts +1 -0
  60. package/koni/background/cron.js +13 -2
  61. package/koni/background/handlers/Extension.d.ts +11 -0
  62. package/koni/background/handlers/Extension.js +329 -12
  63. package/koni/background/handlers/State.d.ts +17 -3
  64. package/koni/background/handlers/State.js +238 -52
  65. package/koni/background/handlers/Tabs.d.ts +2 -0
  66. package/koni/background/handlers/Tabs.js +58 -7
  67. package/koni/background/subscription.js +3 -0
  68. package/package.json +72 -6
  69. package/packageInfo.js +1 -1
  70. package/page/Metadata.d.ts +2 -0
  71. package/page/Metadata.js +3 -0
  72. package/services/chain-service/constants.d.ts +3 -0
  73. package/services/chain-service/constants.js +5 -2
  74. package/services/chain-service/handler/SubstrateApi.d.ts +1 -1
  75. package/services/chain-service/handler/SubstrateApi.js +2 -1
  76. package/services/chain-service/handler/SubstrateChainHandler.d.ts +1 -1
  77. package/services/chain-service/handler/SubstrateChainHandler.js +3 -1
  78. package/services/chain-service/handler/manta/MantaPrivateHandler.d.ts +30 -0
  79. package/services/chain-service/handler/manta/MantaPrivateHandler.js +140 -0
  80. package/services/chain-service/handler/types.d.ts +2 -0
  81. package/services/chain-service/index.d.ts +7 -3
  82. package/services/chain-service/index.js +56 -7
  83. package/services/chain-service/utils.d.ts +3 -0
  84. package/services/chain-service/utils.js +28 -0
  85. package/services/event-service/types.d.ts +3 -0
  86. package/services/event-service/types.js +3 -1
  87. package/services/request-service/handler/AuthRequestHandler.d.ts +0 -1
  88. package/services/request-service/handler/AuthRequestHandler.js +5 -10
  89. package/services/request-service/handler/SubstrateRequestHandler.d.ts +1 -1
  90. package/services/request-service/handler/SubstrateRequestHandler.js +2 -2
  91. package/services/request-service/handler/WalletConnectRequestHandler.d.ts +15 -0
  92. package/services/request-service/handler/WalletConnectRequestHandler.js +62 -0
  93. package/services/request-service/index.d.ts +7 -2
  94. package/services/request-service/index.js +24 -6
  95. package/services/storage-service/DatabaseService.d.ts +10 -1
  96. package/services/storage-service/DatabaseService.js +31 -1
  97. package/services/storage-service/databases/index.d.ts +2 -0
  98. package/services/storage-service/databases/index.js +3 -0
  99. package/services/storage-service/db-stores/MantaPay.d.ts +9 -0
  100. package/services/storage-service/db-stores/MantaPay.js +32 -0
  101. package/services/transaction-service/helpers/index.d.ts +1 -1
  102. package/services/transaction-service/helpers/index.js +2 -2
  103. package/services/transaction-service/index.js +2 -1
  104. package/services/transaction-service/types.d.ts +2 -1
  105. package/services/wallet-connect-service/constants.d.ts +11 -0
  106. package/services/wallet-connect-service/constants.js +23 -0
  107. package/services/wallet-connect-service/handler/Eip155RequestHandler.d.ts +8 -0
  108. package/services/wallet-connect-service/handler/Eip155RequestHandler.js +106 -0
  109. package/services/wallet-connect-service/handler/PolkadotRequestHandler.d.ts +8 -0
  110. package/services/wallet-connect-service/handler/PolkadotRequestHandler.js +114 -0
  111. package/services/wallet-connect-service/helpers.d.ts +12 -0
  112. package/services/wallet-connect-service/helpers.js +67 -0
  113. package/services/wallet-connect-service/index.d.ts +20 -0
  114. package/services/wallet-connect-service/index.js +265 -0
  115. package/services/wallet-connect-service/types.d.ts +46 -0
  116. package/services/wallet-connect-service/types.js +20 -0
  117. package/utils/array.d.ts +1 -0
  118. package/utils/array.js +10 -0
  119. package/utils/environment.d.ts +2 -0
  120. package/utils/environment.js +59 -0
  121. package/utils/index.d.ts +4 -0
  122. package/utils/index.js +10 -2
  123. package/utils/lazy.d.ts +2 -0
  124. package/utils/lazy.js +43 -0
@@ -0,0 +1 @@
1
+ export declare const uniqueStringArray: (array: string[]) => string[];
package/utils/array.js ADDED
@@ -0,0 +1,10 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base authors & contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export const uniqueStringArray = array => {
5
+ const map = {};
6
+ array.forEach(v => {
7
+ map[v] = v;
8
+ });
9
+ return Object.keys(map);
10
+ };
@@ -0,0 +1,2 @@
1
+ import { RuntimeEnvironmentInfo } from '../background/KoniTypes';
2
+ export declare const RuntimeInfo: RuntimeEnvironmentInfo;
@@ -0,0 +1,59 @@
1
+ // Copyright 2019-2022 @polkadot/extension authors & contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { RuntimeEnvironment } from "../background/KoniTypes.js";
5
+ function detectRuntimeEnvironment() {
6
+ if (typeof window !== 'undefined' && typeof document !== 'undefined') {
7
+ // Web environment
8
+ return {
9
+ environment: RuntimeEnvironment.Web,
10
+ version: navigator.userAgent,
11
+ host: window.location.host,
12
+ protocol: window.location.protocol
13
+ };
14
+ } else if (typeof self !== 'undefined' && typeof importScripts !== 'undefined') {
15
+ // Service Worker environment
16
+ return {
17
+ environment: RuntimeEnvironment.ServiceWorker,
18
+ version: navigator.userAgent,
19
+ host: self.location.host,
20
+ protocol: window.location.protocol
21
+ };
22
+ } else if (typeof process !== 'undefined' && process.versions && process.versions.node) {
23
+ // Node.js environment
24
+ return {
25
+ environment: RuntimeEnvironment.Node,
26
+ version: process.versions.node
27
+ };
28
+ } else if (typeof chrome !== 'undefined' && typeof chrome.runtime !== 'undefined') {
29
+ // Extension environment (Chrome)
30
+ return {
31
+ environment: RuntimeEnvironment.ExtensionChrome,
32
+ version: chrome.runtime.getManifest().version,
33
+ host: window.location.host,
34
+ protocol: window.location.protocol
35
+ };
36
+ } else if (typeof browser !== 'undefined' && typeof browser.runtime !== 'undefined') {
37
+ // Extension environment (Firefox)
38
+ return {
39
+ environment: RuntimeEnvironment.ExtensionFirefox,
40
+ version: browser.runtime.getManifest().version,
41
+ host: window.location.host,
42
+ protocol: window.location.protocol
43
+ };
44
+ // @ts-ignore
45
+ } else if (typeof WorkerGlobalScope !== 'undefined') {
46
+ // Web Worker environment
47
+ return {
48
+ environment: RuntimeEnvironment.WebWorker,
49
+ version: ''
50
+ };
51
+ } else {
52
+ // Unknown environment
53
+ return {
54
+ environment: RuntimeEnvironment.Unknown,
55
+ version: ''
56
+ };
57
+ }
58
+ }
59
+ export const RuntimeInfo = detectRuntimeEnvironment();
package/utils/index.d.ts CHANGED
@@ -37,3 +37,7 @@ export declare function parseRawNumber(value: string): number;
37
37
  export declare function isSameAddress(address1: string, address2: string): boolean;
38
38
  export declare function getDomainFromUrl(url: string): string;
39
39
  export declare function waitTimeout(ms: number): Promise<void>;
40
+ export declare const stripUrl: (url: string) => string;
41
+ export * from './array';
42
+ export * from './environment';
43
+ export * from './lazy';
package/utils/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  import { CrowdloanParaState } from '@subwallet/extension-base/background/KoniTypes';
5
5
  import { ALL_ACCOUNT_KEY } from '@subwallet/extension-base/constants';
6
- import { BN, hexToU8a, isHex } from '@polkadot/util';
6
+ import { assert, BN, hexToU8a, isHex } from '@polkadot/util';
7
7
  import { decodeAddress, encodeAddress, ethereumEncode, isEthereumAddress } from '@polkadot/util-crypto';
8
8
  export { canDerive } from "./canDerive.js";
9
9
  export const notDef = x => x === null || typeof x === 'undefined';
@@ -278,4 +278,12 @@ export function getDomainFromUrl(url) {
278
278
  }
279
279
  export async function waitTimeout(ms) {
280
280
  return new Promise(resolve => setTimeout(resolve, ms));
281
- }
281
+ }
282
+ export const stripUrl = url => {
283
+ assert(url && (url.startsWith('http:') || url.startsWith('https:') || url.startsWith('ipfs:') || url.startsWith('ipns:')), `Invalid url ${url}, expected to start with http: or https: or ipfs: or ipns:`);
284
+ const parts = url.split('/');
285
+ return parts[2];
286
+ };
287
+ export * from "./array.js";
288
+ export * from "./environment.js";
289
+ export * from "./lazy.js";
@@ -0,0 +1,2 @@
1
+ export declare function removeLazy(key: string): void;
2
+ export declare function addLazy(key: string, callback: () => void, lazyTime?: number, maxLazyTime?: number): void;
package/utils/lazy.js ADDED
@@ -0,0 +1,43 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ const lazyMap = {};
5
+ export function removeLazy(key) {
6
+ if (lazyMap[key]) {
7
+ clearTimeout(lazyMap[key].timeout);
8
+ delete lazyMap[key];
9
+ }
10
+ }
11
+
12
+ // Add or update new lazy thread
13
+ export function addLazy(key, callback, lazyTime = 300, maxLazyTime = 3000) {
14
+ const existed = lazyMap[key];
15
+ const now = new Date().getTime();
16
+ if (existed) {
17
+ clearTimeout(existed.timeout);
18
+ lazyMap[key] = {
19
+ ...existed,
20
+ callback
21
+ };
22
+
23
+ // Fire callback if last fire is too long
24
+ if (now - existed.lastFire >= maxLazyTime) {
25
+ callback();
26
+ lazyMap[key].lastFire = now;
27
+ } else {
28
+ lazyMap[key].timeout = setTimeout(() => {
29
+ // This will be fire in the last call of lazy thread
30
+ callback();
31
+ lazyMap[key].lastFire = new Date().getTime();
32
+ removeLazy(key);
33
+ }, lazyTime);
34
+ }
35
+ } else {
36
+ // Fire callback immediately in the first time
37
+ callback();
38
+ lazyMap[key] = {
39
+ callback,
40
+ lastFire: now
41
+ };
42
+ }
43
+ }