@subwallet/extension-base 1.0.11-2 → 1.0.13-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.
Files changed (80) hide show
  1. package/background/KoniTypes.d.ts +52 -0
  2. package/background/KoniTypes.js +10 -18
  3. package/background/handlers/State.d.ts +0 -1
  4. package/background/handlers/State.js +4 -8
  5. package/cjs/background/KoniTypes.js +12 -10
  6. package/cjs/background/handlers/State.js +4 -8
  7. package/cjs/koni/api/nft/config.js +11 -6
  8. package/cjs/koni/api/xcm/polkadotXcm.js +1 -1
  9. package/cjs/koni/api/xcm/xTokens.js +2 -2
  10. package/cjs/koni/background/handlers/Extension.js +150 -1
  11. package/cjs/koni/background/handlers/State.js +14 -3
  12. package/cjs/koni/background/handlers/Tabs.js +61 -9
  13. package/cjs/packageInfo.js +1 -1
  14. package/cjs/page/Metadata.js +3 -0
  15. package/cjs/services/chain-service/utils.js +28 -1
  16. package/cjs/services/migration-service/scripts/MigrateEthProvider.js +32 -0
  17. package/cjs/services/migration-service/scripts/index.js +12 -10
  18. package/cjs/services/request-service/handler/AuthRequestHandler.js +4 -9
  19. package/cjs/services/request-service/handler/SubstrateRequestHandler.js +2 -2
  20. package/cjs/services/request-service/handler/WalletConnectRequestHandler.js +71 -0
  21. package/cjs/services/request-service/index.js +24 -6
  22. package/cjs/services/transaction-service/helpers/index.js +3 -2
  23. package/cjs/services/transaction-service/index.js +2 -1
  24. package/cjs/services/wallet-connect-service/constants.js +38 -0
  25. package/cjs/services/wallet-connect-service/handler/Eip155RequestHandler.js +113 -0
  26. package/cjs/services/wallet-connect-service/handler/PolkadotRequestHandler.js +123 -0
  27. package/cjs/services/wallet-connect-service/helpers.js +81 -0
  28. package/cjs/services/wallet-connect-service/index.js +273 -0
  29. package/cjs/services/wallet-connect-service/types.js +27 -0
  30. package/cjs/utils/array.js +17 -0
  31. package/cjs/utils/environment.js +66 -0
  32. package/cjs/utils/index.js +66 -1
  33. package/koni/api/nft/config.js +11 -6
  34. package/koni/api/xcm/polkadotXcm.js +1 -1
  35. package/koni/api/xcm/xTokens.js +2 -2
  36. package/koni/background/handlers/Extension.d.ts +6 -0
  37. package/koni/background/handlers/Extension.js +144 -2
  38. package/koni/background/handlers/State.d.ts +2 -0
  39. package/koni/background/handlers/State.js +14 -3
  40. package/koni/background/handlers/Tabs.d.ts +2 -0
  41. package/koni/background/handlers/Tabs.js +58 -7
  42. package/package.json +72 -18
  43. package/packageInfo.js +1 -1
  44. package/page/Metadata.d.ts +2 -0
  45. package/page/Metadata.js +3 -0
  46. package/services/chain-service/utils.d.ts +2 -0
  47. package/services/chain-service/utils.js +25 -1
  48. package/services/migration-service/scripts/MigrateEthProvider.d.ts +4 -0
  49. package/services/migration-service/scripts/MigrateEthProvider.js +24 -0
  50. package/services/migration-service/scripts/index.js +12 -10
  51. package/services/request-service/handler/AuthRequestHandler.d.ts +0 -1
  52. package/services/request-service/handler/AuthRequestHandler.js +5 -10
  53. package/services/request-service/handler/SubstrateRequestHandler.d.ts +1 -1
  54. package/services/request-service/handler/SubstrateRequestHandler.js +2 -2
  55. package/services/request-service/handler/WalletConnectRequestHandler.d.ts +15 -0
  56. package/services/request-service/handler/WalletConnectRequestHandler.js +62 -0
  57. package/services/request-service/index.d.ts +7 -2
  58. package/services/request-service/index.js +24 -6
  59. package/services/transaction-service/helpers/index.d.ts +1 -1
  60. package/services/transaction-service/helpers/index.js +2 -2
  61. package/services/transaction-service/index.js +2 -1
  62. package/services/transaction-service/types.d.ts +2 -1
  63. package/services/wallet-connect-service/constants.d.ts +11 -0
  64. package/services/wallet-connect-service/constants.js +23 -0
  65. package/services/wallet-connect-service/handler/Eip155RequestHandler.d.ts +8 -0
  66. package/services/wallet-connect-service/handler/Eip155RequestHandler.js +106 -0
  67. package/services/wallet-connect-service/handler/PolkadotRequestHandler.d.ts +8 -0
  68. package/services/wallet-connect-service/handler/PolkadotRequestHandler.js +114 -0
  69. package/services/wallet-connect-service/helpers.d.ts +12 -0
  70. package/services/wallet-connect-service/helpers.js +67 -0
  71. package/services/wallet-connect-service/index.d.ts +20 -0
  72. package/services/wallet-connect-service/index.js +265 -0
  73. package/services/wallet-connect-service/types.d.ts +46 -0
  74. package/services/wallet-connect-service/types.js +20 -0
  75. package/utils/array.d.ts +1 -0
  76. package/utils/array.js +10 -0
  77. package/utils/environment.d.ts +2 -0
  78. package/utils/environment.js +59 -0
  79. package/utils/index.d.ts +3 -0
  80. package/utils/index.js +9 -2
@@ -0,0 +1,46 @@
1
+ import { EvmSendTransactionParams } from '@subwallet/extension-base/background/KoniTypes';
2
+ import { ConfirmationRequestBase, Resolver } from '@subwallet/extension-base/background/types';
3
+ import { EngineTypes, SignClientTypes } from '@walletconnect/types';
4
+ import { SignerPayloadJSON } from '@polkadot/types/types';
5
+ export interface WalletConnectSessionRequest extends ConfirmationRequestBase {
6
+ request: SignClientTypes.EventArguments['session_proposal'];
7
+ }
8
+ export declare type ResultApproveWalletConnectSession = EngineTypes.ApproveParams;
9
+ export interface RequestWalletConnectSession extends WalletConnectSessionRequest, Resolver<void> {
10
+ }
11
+ export declare enum EIP155_SIGNING_METHODS {
12
+ PERSONAL_SIGN = "personal_sign",
13
+ ETH_SIGN = "eth_sign",
14
+ ETH_SIGN_TRANSACTION = "eth_signTransaction",
15
+ ETH_SIGN_TYPED_DATA = "eth_signTypedData",
16
+ ETH_SIGN_TYPED_DATA_V1 = "eth_signTypedData_v1",
17
+ ETH_SIGN_TYPED_DATA_V3 = "eth_signTypedData_v3",
18
+ ETH_SIGN_TYPED_DATA_V4 = "eth_signTypedData_v4",
19
+ ETH_SEND_RAW_TRANSACTION = "eth_sendRawTransaction",
20
+ ETH_SEND_TRANSACTION = "eth_sendTransaction"
21
+ }
22
+ export declare enum POLKADOT_SIGNING_METHODS {
23
+ POLKADOT_SIGN_TRANSACTION = "polkadot_signTransaction",
24
+ POLKADOT_SIGN_MESSAGE = "polkadot_signMessage"
25
+ }
26
+ export declare type WalletConnectSigningMethod = EIP155_SIGNING_METHODS | POLKADOT_SIGNING_METHODS;
27
+ export interface WalletConnectPolkadotSignMessageParams {
28
+ address: string;
29
+ message: string;
30
+ }
31
+ export interface WalletConnectPolkadotSignTransactionParams {
32
+ address: string;
33
+ transactionPayload: SignerPayloadJSON;
34
+ }
35
+ export declare type WalletConnectEip155SignMessage = [string, string];
36
+ export declare type WalletConnectEip155SendTransaction = [EvmSendTransactionParams];
37
+ export interface WalletConnectParamMap {
38
+ [POLKADOT_SIGNING_METHODS.POLKADOT_SIGN_MESSAGE]: WalletConnectPolkadotSignMessageParams;
39
+ [POLKADOT_SIGNING_METHODS.POLKADOT_SIGN_TRANSACTION]: WalletConnectPolkadotSignTransactionParams;
40
+ [EIP155_SIGNING_METHODS.PERSONAL_SIGN]: WalletConnectEip155SignMessage;
41
+ [EIP155_SIGNING_METHODS.ETH_SIGN]: WalletConnectEip155SignMessage;
42
+ [EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA]: WalletConnectEip155SignMessage;
43
+ [EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA_V3]: WalletConnectEip155SignMessage;
44
+ [EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA_V4]: WalletConnectEip155SignMessage;
45
+ [EIP155_SIGNING_METHODS.ETH_SEND_TRANSACTION]: WalletConnectEip155SendTransaction;
46
+ }
@@ -0,0 +1,20 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base authors & contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export let EIP155_SIGNING_METHODS;
5
+ (function (EIP155_SIGNING_METHODS) {
6
+ EIP155_SIGNING_METHODS["PERSONAL_SIGN"] = "personal_sign";
7
+ EIP155_SIGNING_METHODS["ETH_SIGN"] = "eth_sign";
8
+ EIP155_SIGNING_METHODS["ETH_SIGN_TRANSACTION"] = "eth_signTransaction";
9
+ EIP155_SIGNING_METHODS["ETH_SIGN_TYPED_DATA"] = "eth_signTypedData";
10
+ EIP155_SIGNING_METHODS["ETH_SIGN_TYPED_DATA_V1"] = "eth_signTypedData_v1";
11
+ EIP155_SIGNING_METHODS["ETH_SIGN_TYPED_DATA_V3"] = "eth_signTypedData_v3";
12
+ EIP155_SIGNING_METHODS["ETH_SIGN_TYPED_DATA_V4"] = "eth_signTypedData_v4";
13
+ EIP155_SIGNING_METHODS["ETH_SEND_RAW_TRANSACTION"] = "eth_sendRawTransaction";
14
+ EIP155_SIGNING_METHODS["ETH_SEND_TRANSACTION"] = "eth_sendTransaction";
15
+ })(EIP155_SIGNING_METHODS || (EIP155_SIGNING_METHODS = {}));
16
+ export let POLKADOT_SIGNING_METHODS;
17
+ (function (POLKADOT_SIGNING_METHODS) {
18
+ POLKADOT_SIGNING_METHODS["POLKADOT_SIGN_TRANSACTION"] = "polkadot_signTransaction";
19
+ POLKADOT_SIGNING_METHODS["POLKADOT_SIGN_MESSAGE"] = "polkadot_signMessage";
20
+ })(POLKADOT_SIGNING_METHODS || (POLKADOT_SIGNING_METHODS = {}));
@@ -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,6 @@ 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';
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,11 @@ 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";