@subwallet/extension-base 0.4.2-3 → 0.4.3-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.
@@ -1,20 +1,29 @@
1
1
  import { AuthUrls, Resolver } from '@subwallet/extension-base/background/handlers/State';
2
2
  import { AccountJson, AuthorizeRequest, RequestAccountList, RequestAccountSubscribe, RequestAuthorizeReject, RequestAuthorizeSubscribe, RequestAuthorizeTab, RequestCurrentAccountAddress, ResponseAuthorizeList, ResponseJsonGetAccountInfo, SeedLengths } from '@subwallet/extension-base/background/types';
3
3
  import { InjectedAccount, MetadataDefBase } from '@subwallet/extension-inject/types';
4
+ import Web3 from 'web3';
4
5
  import { ApiPromise } from '@polkadot/api';
5
6
  import { SubmittableExtrinsicFunction } from '@polkadot/api/promise/types';
6
7
  import { KeyringPair$Json } from '@polkadot/keyring/types';
7
8
  import { Registry } from '@polkadot/types/types';
8
- import { Keyring } from '@polkadot/ui-keyring';
9
9
  import { SingleAddress } from '@polkadot/ui-keyring/observable/types';
10
10
  import { KeyringOptions } from '@polkadot/ui-keyring/options/types';
11
11
  import { KeyringPairs$Json } from '@polkadot/ui-keyring/types';
12
12
  import { BN } from '@polkadot/util';
13
13
  import { KeypairType } from '@polkadot/util-crypto/types';
14
+ export interface ServiceInfo {
15
+ networkMap: Record<string, NetworkJson>;
16
+ apiMap: ApiMap;
17
+ isLock?: boolean;
18
+ currentAccountInfo: CurrentAccountInfo;
19
+ chainRegistry: Record<string, ChainRegistry>;
20
+ customErc721Registry: CustomEvmToken[];
21
+ }
14
22
  export declare enum ApiInitStatus {
15
23
  SUCCESS = 0,
16
24
  ALREADY_EXIST = 1,
17
- NOT_SUPPORT = 2
25
+ NOT_SUPPORT = 2,
26
+ NOT_EXIST = 3
18
27
  }
19
28
  export interface AuthRequestV2 extends Resolver<ResultResolver> {
20
29
  id: string;
@@ -56,6 +65,7 @@ export interface StakingRewardItem {
56
65
  smartContract?: string;
57
66
  }
58
67
  export interface StakingRewardJson {
68
+ ready: boolean;
59
69
  details: Array<StakingRewardItem>;
60
70
  }
61
71
  export interface StakingItem {
@@ -208,6 +218,33 @@ export interface NetWorkInfo {
208
218
  crowdloanUrl?: string;
209
219
  decimals?: number;
210
220
  }
221
+ export interface NetworkJson {
222
+ key: string;
223
+ chain: string;
224
+ icon?: string;
225
+ active: boolean;
226
+ providers: Record<string, string>;
227
+ currentProvider: string;
228
+ currentProviderMode: 'http' | 'ws';
229
+ customProviders?: Record<string, string>;
230
+ nftProvider?: string;
231
+ genesisHash: string;
232
+ groups: NetWorkGroup[];
233
+ ss58Format: number;
234
+ paraId?: number;
235
+ chainType?: 'substrate' | 'ethereum';
236
+ crowdloanUrl?: string;
237
+ isEthereum?: boolean;
238
+ evmChainId?: number;
239
+ isHybrid?: boolean;
240
+ nativeToken?: string;
241
+ decimals?: number;
242
+ coinGeckoKey?: string;
243
+ blockExplorer?: string;
244
+ dependencies?: string[];
245
+ getStakingOnChain?: boolean;
246
+ apiStatus?: NETWORK_STATUS;
247
+ }
211
248
  export interface DonateInfo {
212
249
  key: string;
213
250
  name: string;
@@ -233,6 +270,8 @@ export interface NetWorkMetadataDef extends MetadataDefBase {
233
270
  isEthereum: boolean;
234
271
  paraId?: number;
235
272
  isAvailable: boolean;
273
+ active: boolean;
274
+ apiStatus: NETWORK_STATUS;
236
275
  }
237
276
  export declare type CurrentNetworkInfo = {
238
277
  networkKey: string;
@@ -279,13 +318,6 @@ export interface RandomTestRequest {
279
318
  start: number;
280
319
  end: number;
281
320
  }
282
- export declare type PdotApi = {
283
- keyring: Keyring;
284
- apisMap: Record<string, ApiProps>;
285
- };
286
- export interface BackgroundWindow extends Window {
287
- pdotApi: PdotApi;
288
- }
289
321
  export interface TransactionHistoryItemType {
290
322
  time: number;
291
323
  networkKey: string;
@@ -398,6 +430,22 @@ export declare type RequestNftForceUpdate = {
398
430
  isSendingSelf: boolean;
399
431
  chain: string;
400
432
  };
433
+ export declare enum NETWORK_ERROR {
434
+ INVALID_INFO_TYPE = "invalidInfoType",
435
+ INJECT_SCRIPT_DETECTED = "injectScriptDetected",
436
+ EXISTED_NETWORK = "existedNetwork",
437
+ EXISTED_PROVIDER = "existedProvider",
438
+ INVALID_PROVIDER = "invalidProvider",
439
+ NONE = "none",
440
+ CONNECTION_FAILURE = "connectionFailure",
441
+ PROVIDER_NOT_SAME_NETWORK = "providerNotSameNetwork"
442
+ }
443
+ export declare enum NETWORK_STATUS {
444
+ CONNECTED = "connected",
445
+ CONNECTING = "connecting",
446
+ DISCONNECTED = "disconnected",
447
+ PENDING = "pending"
448
+ }
401
449
  export declare enum TransferErrorCode {
402
450
  INVALID_FROM_ADDRESS = "invalidFromAccount",
403
451
  INVALID_TO_ADDRESS = "invalidToAccount",
@@ -460,39 +508,62 @@ export interface EvmNftSubmitTransaction {
460
508
  networkKey: string;
461
509
  rawTransaction: Record<string, any>;
462
510
  }
463
- export interface EvmNftTransactionResponse {
511
+ export interface NftTransactionResponse {
464
512
  passwordError?: string | null;
465
513
  callHash?: string;
466
514
  status?: boolean;
467
515
  transactionHash?: string;
468
516
  txError?: boolean;
517
+ balanceError?: boolean;
469
518
  isSendingSelf: boolean;
470
519
  }
520
+ export interface ValidateNetworkResponse {
521
+ success: boolean;
522
+ key: string;
523
+ genesisHash: string;
524
+ ss58Prefix: string;
525
+ networkGroup: NetWorkGroup[];
526
+ chain: string;
527
+ evmChainId: number;
528
+ nativeToken?: string;
529
+ decimal?: number;
530
+ error?: NETWORK_ERROR;
531
+ conflictChain?: string;
532
+ conflictKey?: string;
533
+ }
534
+ export interface ValidateNetworkRequest {
535
+ provider: string;
536
+ isEthereum: boolean;
537
+ existedNetwork?: NetworkJson;
538
+ }
539
+ export interface ApiMap {
540
+ dotSama: Record<string, ApiProps>;
541
+ web3: Record<string, Web3>;
542
+ }
543
+ export interface DisableNetworkResponse {
544
+ success: boolean;
545
+ activeNetworkCount?: number;
546
+ }
471
547
  export interface CustomEvmToken {
472
548
  name?: string;
473
549
  smartContract: string;
474
550
  symbol?: string;
475
551
  decimals?: number;
476
- chain: 'astarEvm' | 'moonbeam' | 'moonriver' | 'moonbase' | 'shidenEvm';
552
+ chain: string;
477
553
  type: 'erc20' | 'erc721';
478
554
  }
479
555
  export interface EvmTokenJson {
480
556
  erc20: CustomEvmToken[];
481
557
  erc721: CustomEvmToken[];
482
558
  }
483
- export interface _ServiceInfo {
484
- currentAccount: string;
485
- chainRegistry: Record<string, ChainRegistry>;
486
- customErc721Registry: CustomEvmToken[];
487
- }
488
559
  export interface DeleteEvmTokenParams {
489
560
  smartContract: string;
490
- chain: 'astarEvm' | 'moonbeam' | 'moonriver' | 'moonbase' | 'shidenEvm';
561
+ chain: string;
491
562
  type: 'erc20' | 'erc721';
492
563
  }
493
564
  export interface ValidateEvmTokenRequest {
494
565
  smartContract: string;
495
- chain: 'astarEvm' | 'moonbeam' | 'moonriver' | 'moonbase' | 'shidenEvm';
566
+ chain: string;
496
567
  type: 'erc20' | 'erc721';
497
568
  }
498
569
  export interface ValidateEvmTokenResponse {
@@ -525,19 +596,49 @@ export interface RequestTransferExistentialDeposit {
525
596
  export interface RequestSaveRecentAccount {
526
597
  accountId: string;
527
598
  }
599
+ export interface SubstrateNftTransactionRequest {
600
+ params: Record<string, any>;
601
+ senderAddress: string;
602
+ recipientAddress: string;
603
+ networkKey: string;
604
+ }
605
+ export interface SubstrateNftTransaction {
606
+ error: boolean;
607
+ estimatedFee?: string;
608
+ balanceError: boolean;
609
+ }
610
+ export interface SubstrateNftSubmitTransaction {
611
+ params: Record<string, any> | null;
612
+ password: string;
613
+ senderAddress: string;
614
+ recipientAddress: string;
615
+ }
528
616
  export interface KoniRequestSignatures {
617
+ 'pri(networkMap.recoverDotSama)': [string, boolean];
618
+ 'pri(substrateNft.submitTransaction)': [SubstrateNftSubmitTransaction, NftTransactionResponse, NftTransactionResponse];
619
+ 'pri(substrateNft.getTransaction)': [SubstrateNftTransactionRequest, SubstrateNftTransaction];
620
+ 'pri(networkMap.disableAll)': [null, boolean];
621
+ 'pri(networkMap.enableAll)': [null, boolean];
622
+ 'pri(networkMap.resetDefault)': [null, boolean];
623
+ 'pri(apiMap.validate)': [ValidateNetworkRequest, ValidateNetworkResponse];
624
+ 'pri(networkMap.enableMany)': [string[], boolean];
625
+ 'pri(networkMap.enableOne)': [string, boolean];
626
+ 'pri(networkMap.disableOne)': [string, DisableNetworkResponse];
627
+ 'pri(networkMap.removeOne)': [string, boolean];
628
+ 'pri(networkMap.upsert)': [NetworkJson, boolean];
629
+ 'pri(networkMap.getNetworkMap)': [null, Record<string, NetworkJson>];
630
+ 'pri(networkMap.getSubscription)': [null, Record<string, NetworkJson>, Record<string, NetworkJson>];
529
631
  'pri(evmTokenState.validateEvmToken)': [ValidateEvmTokenRequest, ValidateEvmTokenResponse];
530
632
  'pri(evmTokenState.deleteMany)': [DeleteEvmTokenParams[], boolean];
531
633
  'pri(evmTokenState.upsertEvmTokenState)': [CustomEvmToken, boolean];
532
634
  'pri(evmTokenState.getEvmTokenState)': [null, EvmTokenJson];
533
635
  'pri(evmTokenState.getSubscription)': [null, EvmTokenJson, EvmTokenJson];
534
- 'pri(evmNft.submitTransaction)': [EvmNftSubmitTransaction, EvmNftTransactionResponse, EvmNftTransactionResponse];
636
+ 'pri(evmNft.submitTransaction)': [EvmNftSubmitTransaction, NftTransactionResponse, NftTransactionResponse];
535
637
  'pri(evmNft.getTransaction)': [EvmNftTransactionRequest, EvmNftTransaction];
536
638
  'pri(nftTransfer.setNftTransfer)': [NftTransferExtra, boolean];
537
639
  'pri(nftTransfer.getNftTransfer)': [null, NftTransferExtra];
538
640
  'pri(nftTransfer.getSubscription)': [null, NftTransferExtra, NftTransferExtra];
539
641
  'pri(nft.forceUpdate)': [RequestNftForceUpdate, boolean];
540
- 'pri(api.init)': [RequestApi, ApiInitStatus];
541
642
  'pri(staking.getStaking)': [null, StakingJson];
542
643
  'pri(staking.getSubscription)': [RequestSubscribeStaking, StakingJson, StakingJson];
543
644
  'pri(stakingReward.getStakingReward)': [null, StakingRewardJson];
@@ -580,7 +681,6 @@ export interface KoniRequestSignatures {
580
681
  'pri(currentAccount.subscribeSettings)': [null, ResponseSettingsType, ResponseSettingsType];
581
682
  'pri(currentAccount.saveAccountAllLogo)': [string, boolean, ResponseSettingsType];
582
683
  'pri(currentAccount.saveTheme)': [ThemeTypes, boolean, ResponseSettingsType];
583
- 'pri(networkMetadata.list)': [null, NetWorkMetadataDef[]];
584
684
  'pri(chainRegistry.getSubscription)': [null, Record<string, ChainRegistry>, Record<string, ChainRegistry>];
585
685
  'pri(transaction.history.getSubscription)': [null, Record<string, TransactionHistoryItemType[]>, Record<string, TransactionHistoryItemType[]>];
586
686
  'pri(transaction.history.add)': [RequestTransactionHistoryAdd, boolean, TransactionHistoryItemType[]];
@@ -6,6 +6,7 @@ export let ApiInitStatus;
6
6
  ApiInitStatus[ApiInitStatus["SUCCESS"] = 0] = "SUCCESS";
7
7
  ApiInitStatus[ApiInitStatus["ALREADY_EXIST"] = 1] = "ALREADY_EXIST";
8
8
  ApiInitStatus[ApiInitStatus["NOT_SUPPORT"] = 2] = "NOT_SUPPORT";
9
+ ApiInitStatus[ApiInitStatus["NOT_EXIST"] = 3] = "NOT_EXIST";
9
10
  })(ApiInitStatus || (ApiInitStatus = {}));
10
11
 
11
12
  export let APIItemState;
@@ -33,6 +34,28 @@ export let CrowdloanParaState;
33
34
  CrowdloanParaState["FAILED"] = "failed";
34
35
  })(CrowdloanParaState || (CrowdloanParaState = {}));
35
36
 
37
+ export let NETWORK_ERROR;
38
+
39
+ (function (NETWORK_ERROR) {
40
+ NETWORK_ERROR["INVALID_INFO_TYPE"] = "invalidInfoType";
41
+ NETWORK_ERROR["INJECT_SCRIPT_DETECTED"] = "injectScriptDetected";
42
+ NETWORK_ERROR["EXISTED_NETWORK"] = "existedNetwork";
43
+ NETWORK_ERROR["EXISTED_PROVIDER"] = "existedProvider";
44
+ NETWORK_ERROR["INVALID_PROVIDER"] = "invalidProvider";
45
+ NETWORK_ERROR["NONE"] = "none";
46
+ NETWORK_ERROR["CONNECTION_FAILURE"] = "connectionFailure";
47
+ NETWORK_ERROR["PROVIDER_NOT_SAME_NETWORK"] = "providerNotSameNetwork";
48
+ })(NETWORK_ERROR || (NETWORK_ERROR = {}));
49
+
50
+ export let NETWORK_STATUS;
51
+
52
+ (function (NETWORK_STATUS) {
53
+ NETWORK_STATUS["CONNECTED"] = "connected";
54
+ NETWORK_STATUS["CONNECTING"] = "connecting";
55
+ NETWORK_STATUS["DISCONNECTED"] = "disconnected";
56
+ NETWORK_STATUS["PENDING"] = "pending";
57
+ })(NETWORK_STATUS || (NETWORK_STATUS = {}));
58
+
36
59
  export let TransferErrorCode;
37
60
 
38
61
  (function (TransferErrorCode) {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TransferStep = exports.TransferErrorCode = exports.RMRK_VER = exports.CrowdloanParaState = exports.ApiInitStatus = exports.APIItemState = void 0;
6
+ exports.TransferStep = exports.TransferErrorCode = exports.RMRK_VER = exports.NETWORK_STATUS = exports.NETWORK_ERROR = exports.CrowdloanParaState = exports.ApiInitStatus = exports.APIItemState = void 0;
7
7
  // Copyright 2019-2022 @polkadot/extension-koni authors & contributors
8
8
  // SPDX-License-Identifier: Apache-2.0
9
9
  let ApiInitStatus;
@@ -13,6 +13,7 @@ exports.ApiInitStatus = ApiInitStatus;
13
13
  ApiInitStatus[ApiInitStatus["SUCCESS"] = 0] = "SUCCESS";
14
14
  ApiInitStatus[ApiInitStatus["ALREADY_EXIST"] = 1] = "ALREADY_EXIST";
15
15
  ApiInitStatus[ApiInitStatus["NOT_SUPPORT"] = 2] = "NOT_SUPPORT";
16
+ ApiInitStatus[ApiInitStatus["NOT_EXIST"] = 3] = "NOT_EXIST";
16
17
  })(ApiInitStatus || (exports.ApiInitStatus = ApiInitStatus = {}));
17
18
 
18
19
  let APIItemState;
@@ -43,6 +44,30 @@ exports.CrowdloanParaState = CrowdloanParaState;
43
44
  CrowdloanParaState["FAILED"] = "failed";
44
45
  })(CrowdloanParaState || (exports.CrowdloanParaState = CrowdloanParaState = {}));
45
46
 
47
+ let NETWORK_ERROR;
48
+ exports.NETWORK_ERROR = NETWORK_ERROR;
49
+
50
+ (function (NETWORK_ERROR) {
51
+ NETWORK_ERROR["INVALID_INFO_TYPE"] = "invalidInfoType";
52
+ NETWORK_ERROR["INJECT_SCRIPT_DETECTED"] = "injectScriptDetected";
53
+ NETWORK_ERROR["EXISTED_NETWORK"] = "existedNetwork";
54
+ NETWORK_ERROR["EXISTED_PROVIDER"] = "existedProvider";
55
+ NETWORK_ERROR["INVALID_PROVIDER"] = "invalidProvider";
56
+ NETWORK_ERROR["NONE"] = "none";
57
+ NETWORK_ERROR["CONNECTION_FAILURE"] = "connectionFailure";
58
+ NETWORK_ERROR["PROVIDER_NOT_SAME_NETWORK"] = "providerNotSameNetwork";
59
+ })(NETWORK_ERROR || (exports.NETWORK_ERROR = NETWORK_ERROR = {}));
60
+
61
+ let NETWORK_STATUS;
62
+ exports.NETWORK_STATUS = NETWORK_STATUS;
63
+
64
+ (function (NETWORK_STATUS) {
65
+ NETWORK_STATUS["CONNECTED"] = "connected";
66
+ NETWORK_STATUS["CONNECTING"] = "connecting";
67
+ NETWORK_STATUS["DISCONNECTED"] = "disconnected";
68
+ NETWORK_STATUS["PENDING"] = "pending";
69
+ })(NETWORK_STATUS || (exports.NETWORK_STATUS = NETWORK_STATUS = {}));
70
+
46
71
  let TransferErrorCode;
47
72
  exports.TransferErrorCode = TransferErrorCode;
48
73
 
@@ -11,6 +11,6 @@ const packageInfo = {
11
11
  name: '@subwallet/extension-base',
12
12
  path: typeof __dirname === 'string' ? __dirname : 'auto',
13
13
  type: 'cjs',
14
- version: '0.4.2-3'
14
+ version: '0.4.3-0'
15
15
  };
16
16
  exports.packageInfo = packageInfo;
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  "./cjs/detectPackage.js"
18
18
  ],
19
19
  "type": "module",
20
- "version": "0.4.2-3",
20
+ "version": "0.4.3-0",
21
21
  "main": "./cjs/index.js",
22
22
  "module": "./index.js",
23
23
  "types": "./index.d.ts",
@@ -199,9 +199,9 @@
199
199
  "@polkadot/ui-settings": "^0.89.1",
200
200
  "@polkadot/util": "^8.3.1",
201
201
  "@polkadot/util-crypto": "^8.3.1",
202
- "@subwallet/extension-chains": "^0.4.2-3",
203
- "@subwallet/extension-dapp": "^0.4.2-3",
204
- "@subwallet/extension-inject": "^0.4.2-3",
202
+ "@subwallet/extension-chains": "^0.4.3-0",
203
+ "@subwallet/extension-dapp": "^0.4.3-0",
204
+ "@subwallet/extension-inject": "^0.4.3-0",
205
205
  "ethereumjs-tx": "^2.1.2",
206
206
  "eventemitter3": "^4.0.7",
207
207
  "rxjs": "^7.5.1",
package/packageInfo.js CHANGED
@@ -5,5 +5,5 @@ export const packageInfo = {
5
5
  name: '@subwallet/extension-base',
6
6
  path: (import.meta && import.meta.url) ? new URL(import.meta.url).pathname.substring(0, new URL(import.meta.url).pathname.lastIndexOf('/') + 1) : 'auto',
7
7
  type: 'esm',
8
- version: '0.4.2-3'
8
+ version: '0.4.3-0'
9
9
  };