@subwallet/extension-base 0.4.2-3 → 0.4.5-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;
@@ -373,6 +405,23 @@ export interface RequestCheckTransfer {
373
405
  export interface RequestTransfer extends RequestCheckTransfer {
374
406
  password: string;
375
407
  }
408
+ export interface RequestCheckCrossChainTransfer {
409
+ originNetworkKey: string;
410
+ destinationNetworkKey: string;
411
+ from: string;
412
+ to: string;
413
+ transferAll?: boolean;
414
+ value: string;
415
+ token: string;
416
+ }
417
+ export interface RequestCrossChainTransfer extends RequestCheckCrossChainTransfer {
418
+ password: string;
419
+ }
420
+ export interface ResponseCheckCrossChainTransfer {
421
+ errors?: Array<TransferError>;
422
+ estimateFee?: string;
423
+ feeSymbol?: string;
424
+ }
376
425
  export interface ResponsePrivateKeyValidateV2 {
377
426
  addressMap: Record<KeypairType, string>;
378
427
  autoAddPrefix: boolean;
@@ -398,6 +447,22 @@ export declare type RequestNftForceUpdate = {
398
447
  isSendingSelf: boolean;
399
448
  chain: string;
400
449
  };
450
+ export declare enum NETWORK_ERROR {
451
+ INVALID_INFO_TYPE = "invalidInfoType",
452
+ INJECT_SCRIPT_DETECTED = "injectScriptDetected",
453
+ EXISTED_NETWORK = "existedNetwork",
454
+ EXISTED_PROVIDER = "existedProvider",
455
+ INVALID_PROVIDER = "invalidProvider",
456
+ NONE = "none",
457
+ CONNECTION_FAILURE = "connectionFailure",
458
+ PROVIDER_NOT_SAME_NETWORK = "providerNotSameNetwork"
459
+ }
460
+ export declare enum NETWORK_STATUS {
461
+ CONNECTED = "connected",
462
+ CONNECTING = "connecting",
463
+ DISCONNECTED = "disconnected",
464
+ PENDING = "pending"
465
+ }
401
466
  export declare enum TransferErrorCode {
402
467
  INVALID_FROM_ADDRESS = "invalidFromAccount",
403
468
  INVALID_TO_ADDRESS = "invalidToAccount",
@@ -452,6 +517,7 @@ export interface EvmNftTransactionRequest {
452
517
  export interface EvmNftTransaction {
453
518
  tx: Record<string, any> | null;
454
519
  estimatedFee: string | null;
520
+ balanceError: boolean;
455
521
  }
456
522
  export interface EvmNftSubmitTransaction {
457
523
  senderAddress: string;
@@ -460,7 +526,7 @@ export interface EvmNftSubmitTransaction {
460
526
  networkKey: string;
461
527
  rawTransaction: Record<string, any>;
462
528
  }
463
- export interface EvmNftTransactionResponse {
529
+ export interface NftTransactionResponse {
464
530
  passwordError?: string | null;
465
531
  callHash?: string;
466
532
  status?: boolean;
@@ -468,31 +534,55 @@ export interface EvmNftTransactionResponse {
468
534
  txError?: boolean;
469
535
  isSendingSelf: boolean;
470
536
  }
537
+ export interface ValidateNetworkResponse {
538
+ success: boolean;
539
+ key: string;
540
+ genesisHash: string;
541
+ ss58Prefix: string;
542
+ networkGroup: NetWorkGroup[];
543
+ chain: string;
544
+ evmChainId: number;
545
+ nativeToken?: string;
546
+ decimal?: number;
547
+ error?: NETWORK_ERROR;
548
+ conflictChain?: string;
549
+ conflictKey?: string;
550
+ }
551
+ export interface ValidateNetworkRequest {
552
+ provider: string;
553
+ isEthereum: boolean;
554
+ existedNetwork?: NetworkJson;
555
+ }
556
+ export interface ApiMap {
557
+ dotSama: Record<string, ApiProps>;
558
+ web3: Record<string, Web3>;
559
+ }
560
+ export interface DisableNetworkResponse {
561
+ success: boolean;
562
+ activeNetworkCount?: number;
563
+ }
471
564
  export interface CustomEvmToken {
472
565
  name?: string;
473
566
  smartContract: string;
474
567
  symbol?: string;
475
568
  decimals?: number;
476
- chain: 'astarEvm' | 'moonbeam' | 'moonriver' | 'moonbase' | 'shidenEvm';
569
+ chain: string;
477
570
  type: 'erc20' | 'erc721';
571
+ isCustom?: boolean;
572
+ isDeleted?: boolean;
478
573
  }
479
574
  export interface EvmTokenJson {
480
575
  erc20: CustomEvmToken[];
481
576
  erc721: CustomEvmToken[];
482
577
  }
483
- export interface _ServiceInfo {
484
- currentAccount: string;
485
- chainRegistry: Record<string, ChainRegistry>;
486
- customErc721Registry: CustomEvmToken[];
487
- }
488
578
  export interface DeleteEvmTokenParams {
489
579
  smartContract: string;
490
- chain: 'astarEvm' | 'moonbeam' | 'moonriver' | 'moonbase' | 'shidenEvm';
580
+ chain: string;
491
581
  type: 'erc20' | 'erc721';
492
582
  }
493
583
  export interface ValidateEvmTokenRequest {
494
584
  smartContract: string;
495
- chain: 'astarEvm' | 'moonbeam' | 'moonriver' | 'moonbase' | 'shidenEvm';
585
+ chain: string;
496
586
  type: 'erc20' | 'erc721';
497
587
  }
498
588
  export interface ValidateEvmTokenResponse {
@@ -525,19 +615,58 @@ export interface RequestTransferExistentialDeposit {
525
615
  export interface RequestSaveRecentAccount {
526
616
  accountId: string;
527
617
  }
618
+ export interface SubstrateNftTransactionRequest {
619
+ params: Record<string, any>;
620
+ senderAddress: string;
621
+ recipientAddress: string;
622
+ networkKey: string;
623
+ }
624
+ export interface SubstrateNftTransaction {
625
+ error: boolean;
626
+ estimatedFee?: string;
627
+ balanceError: boolean;
628
+ }
629
+ export interface SubstrateNftSubmitTransaction {
630
+ params: Record<string, any> | null;
631
+ password: string;
632
+ senderAddress: string;
633
+ recipientAddress: string;
634
+ }
635
+ export declare type ChainRelationType = 'p' | 'r';
636
+ export interface ChainRelationInfo {
637
+ type: ChainRelationType;
638
+ supportedToken: string[];
639
+ }
640
+ export interface CrossChainRelation {
641
+ type: ChainRelationType;
642
+ relationMap: Record<string, ChainRelationInfo>;
643
+ }
528
644
  export interface KoniRequestSignatures {
645
+ 'pri(networkMap.recoverDotSama)': [string, boolean];
646
+ 'pri(substrateNft.submitTransaction)': [SubstrateNftSubmitTransaction, NftTransactionResponse, NftTransactionResponse];
647
+ 'pri(substrateNft.getTransaction)': [SubstrateNftTransactionRequest, SubstrateNftTransaction];
648
+ 'pri(networkMap.disableAll)': [null, boolean];
649
+ 'pri(networkMap.enableAll)': [null, boolean];
650
+ 'pri(networkMap.resetDefault)': [null, boolean];
651
+ 'pri(apiMap.validate)': [ValidateNetworkRequest, ValidateNetworkResponse];
652
+ 'pri(networkMap.enableMany)': [string[], boolean];
653
+ 'pri(networkMap.enableOne)': [string, boolean];
654
+ 'pri(networkMap.disableOne)': [string, DisableNetworkResponse];
655
+ 'pri(networkMap.removeOne)': [string, boolean];
656
+ 'pri(networkMap.upsert)': [NetworkJson, boolean];
657
+ 'pri(networkMap.getNetworkMap)': [null, Record<string, NetworkJson>];
658
+ 'pri(networkMap.getSubscription)': [null, Record<string, NetworkJson>, Record<string, NetworkJson>];
529
659
  'pri(evmTokenState.validateEvmToken)': [ValidateEvmTokenRequest, ValidateEvmTokenResponse];
530
660
  'pri(evmTokenState.deleteMany)': [DeleteEvmTokenParams[], boolean];
531
661
  'pri(evmTokenState.upsertEvmTokenState)': [CustomEvmToken, boolean];
532
662
  'pri(evmTokenState.getEvmTokenState)': [null, EvmTokenJson];
533
663
  'pri(evmTokenState.getSubscription)': [null, EvmTokenJson, EvmTokenJson];
534
- 'pri(evmNft.submitTransaction)': [EvmNftSubmitTransaction, EvmNftTransactionResponse, EvmNftTransactionResponse];
664
+ 'pri(evmNft.submitTransaction)': [EvmNftSubmitTransaction, NftTransactionResponse, NftTransactionResponse];
535
665
  'pri(evmNft.getTransaction)': [EvmNftTransactionRequest, EvmNftTransaction];
536
666
  'pri(nftTransfer.setNftTransfer)': [NftTransferExtra, boolean];
537
667
  'pri(nftTransfer.getNftTransfer)': [null, NftTransferExtra];
538
668
  'pri(nftTransfer.getSubscription)': [null, NftTransferExtra, NftTransferExtra];
539
669
  'pri(nft.forceUpdate)': [RequestNftForceUpdate, boolean];
540
- 'pri(api.init)': [RequestApi, ApiInitStatus];
541
670
  'pri(staking.getStaking)': [null, StakingJson];
542
671
  'pri(staking.getSubscription)': [RequestSubscribeStaking, StakingJson, StakingJson];
543
672
  'pri(stakingReward.getStakingReward)': [null, StakingRewardJson];
@@ -566,7 +695,9 @@ export interface KoniRequestSignatures {
566
695
  'pri(privateKey.validateV2)': [RequestSeedValidateV2, ResponsePrivateKeyValidateV2];
567
696
  'pri(accounts.create.suriV2)': [RequestAccountCreateSuriV2, ResponseAccountCreateSuriV2];
568
697
  'pri(accounts.checkTransfer)': [RequestCheckTransfer, ResponseCheckTransfer];
698
+ 'pri(accounts.checkCrossChainTransfer)': [RequestCheckCrossChainTransfer, ResponseCheckCrossChainTransfer];
569
699
  'pri(accounts.transfer)': [RequestTransfer, Array<TransferError>, ResponseTransfer];
700
+ 'pri(accounts.crossChainTransfer)': [RequestCrossChainTransfer, Array<TransferError>, ResponseTransfer];
570
701
  'pri(derivation.createV2)': [RequestDeriveCreateV2, boolean];
571
702
  'pri(json.restoreV2)': [RequestJsonRestoreV2, void];
572
703
  'pri(json.batchRestoreV2)': [RequestBatchRestoreV2, void];
@@ -580,7 +711,6 @@ export interface KoniRequestSignatures {
580
711
  'pri(currentAccount.subscribeSettings)': [null, ResponseSettingsType, ResponseSettingsType];
581
712
  'pri(currentAccount.saveAccountAllLogo)': [string, boolean, ResponseSettingsType];
582
713
  'pri(currentAccount.saveTheme)': [ThemeTypes, boolean, ResponseSettingsType];
583
- 'pri(networkMetadata.list)': [null, NetWorkMetadataDef[]];
584
714
  'pri(chainRegistry.getSubscription)': [null, Record<string, ChainRegistry>, Record<string, ChainRegistry>];
585
715
  'pri(transaction.history.getSubscription)': [null, Record<string, TransactionHistoryItemType[]>, Record<string, TransactionHistoryItemType[]>];
586
716
  '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.5-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.5-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.5-0",
203
+ "@subwallet/extension-dapp": "^0.4.5-0",
204
+ "@subwallet/extension-inject": "^0.4.5-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.5-0'
9
9
  };