@subwallet/extension-base 0.4.2-2 → 0.4.4-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;
@@ -245,6 +284,7 @@ export declare type CurrentNetworkInfo = {
245
284
  export declare type TokenInfo = {
246
285
  isMainToken: boolean;
247
286
  symbol: string;
287
+ symbolAlt?: string;
248
288
  erc20Address?: string;
249
289
  assetIndex?: number;
250
290
  decimals: number;
@@ -278,13 +318,6 @@ export interface RandomTestRequest {
278
318
  start: number;
279
319
  end: number;
280
320
  }
281
- export declare type PdotApi = {
282
- keyring: Keyring;
283
- apisMap: Record<string, ApiProps>;
284
- };
285
- export interface BackgroundWindow extends Window {
286
- pdotApi: PdotApi;
287
- }
288
321
  export interface TransactionHistoryItemType {
289
322
  time: number;
290
323
  networkKey: string;
@@ -372,6 +405,23 @@ export interface RequestCheckTransfer {
372
405
  export interface RequestTransfer extends RequestCheckTransfer {
373
406
  password: string;
374
407
  }
408
+ export interface RequestCheckCrossChainTransfer {
409
+ originalNetworkKey: 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
+ }
375
425
  export interface ResponsePrivateKeyValidateV2 {
376
426
  addressMap: Record<KeypairType, string>;
377
427
  autoAddPrefix: boolean;
@@ -397,6 +447,22 @@ export declare type RequestNftForceUpdate = {
397
447
  isSendingSelf: boolean;
398
448
  chain: string;
399
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
+ }
400
466
  export declare enum TransferErrorCode {
401
467
  INVALID_FROM_ADDRESS = "invalidFromAccount",
402
468
  INVALID_TO_ADDRESS = "invalidToAccount",
@@ -451,6 +517,7 @@ export interface EvmNftTransactionRequest {
451
517
  export interface EvmNftTransaction {
452
518
  tx: Record<string, any> | null;
453
519
  estimatedFee: string | null;
520
+ balanceError: boolean;
454
521
  }
455
522
  export interface EvmNftSubmitTransaction {
456
523
  senderAddress: string;
@@ -459,7 +526,7 @@ export interface EvmNftSubmitTransaction {
459
526
  networkKey: string;
460
527
  rawTransaction: Record<string, any>;
461
528
  }
462
- export interface EvmNftTransactionResponse {
529
+ export interface NftTransactionResponse {
463
530
  passwordError?: string | null;
464
531
  callHash?: string;
465
532
  status?: boolean;
@@ -467,31 +534,55 @@ export interface EvmNftTransactionResponse {
467
534
  txError?: boolean;
468
535
  isSendingSelf: boolean;
469
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
+ }
470
564
  export interface CustomEvmToken {
471
565
  name?: string;
472
566
  smartContract: string;
473
567
  symbol?: string;
474
568
  decimals?: number;
475
- chain: 'astarEvm' | 'moonbeam' | 'moonriver' | 'moonbase' | 'shidenEvm';
569
+ chain: string;
476
570
  type: 'erc20' | 'erc721';
571
+ isCustom?: boolean;
572
+ isDeleted?: boolean;
477
573
  }
478
574
  export interface EvmTokenJson {
479
575
  erc20: CustomEvmToken[];
480
576
  erc721: CustomEvmToken[];
481
577
  }
482
- export interface _ServiceInfo {
483
- currentAccount: string;
484
- chainRegistry: Record<string, ChainRegistry>;
485
- customErc721Registry: CustomEvmToken[];
486
- }
487
578
  export interface DeleteEvmTokenParams {
488
579
  smartContract: string;
489
- chain: 'astarEvm' | 'moonbeam' | 'moonriver' | 'moonbase' | 'shidenEvm';
580
+ chain: string;
490
581
  type: 'erc20' | 'erc721';
491
582
  }
492
583
  export interface ValidateEvmTokenRequest {
493
584
  smartContract: string;
494
- chain: 'astarEvm' | 'moonbeam' | 'moonriver' | 'moonbase' | 'shidenEvm';
585
+ chain: string;
495
586
  type: 'erc20' | 'erc721';
496
587
  }
497
588
  export interface ValidateEvmTokenResponse {
@@ -524,19 +615,58 @@ export interface RequestTransferExistentialDeposit {
524
615
  export interface RequestSaveRecentAccount {
525
616
  accountId: string;
526
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
+ }
527
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>];
528
659
  'pri(evmTokenState.validateEvmToken)': [ValidateEvmTokenRequest, ValidateEvmTokenResponse];
529
660
  'pri(evmTokenState.deleteMany)': [DeleteEvmTokenParams[], boolean];
530
661
  'pri(evmTokenState.upsertEvmTokenState)': [CustomEvmToken, boolean];
531
662
  'pri(evmTokenState.getEvmTokenState)': [null, EvmTokenJson];
532
663
  'pri(evmTokenState.getSubscription)': [null, EvmTokenJson, EvmTokenJson];
533
- 'pri(evmNft.submitTransaction)': [EvmNftSubmitTransaction, EvmNftTransactionResponse, EvmNftTransactionResponse];
664
+ 'pri(evmNft.submitTransaction)': [EvmNftSubmitTransaction, NftTransactionResponse, NftTransactionResponse];
534
665
  'pri(evmNft.getTransaction)': [EvmNftTransactionRequest, EvmNftTransaction];
535
666
  'pri(nftTransfer.setNftTransfer)': [NftTransferExtra, boolean];
536
667
  'pri(nftTransfer.getNftTransfer)': [null, NftTransferExtra];
537
668
  'pri(nftTransfer.getSubscription)': [null, NftTransferExtra, NftTransferExtra];
538
669
  'pri(nft.forceUpdate)': [RequestNftForceUpdate, boolean];
539
- 'pri(api.init)': [RequestApi, ApiInitStatus];
540
670
  'pri(staking.getStaking)': [null, StakingJson];
541
671
  'pri(staking.getSubscription)': [RequestSubscribeStaking, StakingJson, StakingJson];
542
672
  'pri(stakingReward.getStakingReward)': [null, StakingRewardJson];
@@ -565,7 +695,9 @@ export interface KoniRequestSignatures {
565
695
  'pri(privateKey.validateV2)': [RequestSeedValidateV2, ResponsePrivateKeyValidateV2];
566
696
  'pri(accounts.create.suriV2)': [RequestAccountCreateSuriV2, ResponseAccountCreateSuriV2];
567
697
  'pri(accounts.checkTransfer)': [RequestCheckTransfer, ResponseCheckTransfer];
698
+ 'pri(accounts.checkCrossChainTransfer)': [RequestCheckCrossChainTransfer, ResponseCheckCrossChainTransfer];
568
699
  'pri(accounts.transfer)': [RequestTransfer, Array<TransferError>, ResponseTransfer];
700
+ 'pri(accounts.crossChainTransfer)': [RequestCrossChainTransfer, Array<TransferError>, ResponseTransfer];
569
701
  'pri(derivation.createV2)': [RequestDeriveCreateV2, boolean];
570
702
  'pri(json.restoreV2)': [RequestJsonRestoreV2, void];
571
703
  'pri(json.batchRestoreV2)': [RequestBatchRestoreV2, void];
@@ -579,7 +711,6 @@ export interface KoniRequestSignatures {
579
711
  'pri(currentAccount.subscribeSettings)': [null, ResponseSettingsType, ResponseSettingsType];
580
712
  'pri(currentAccount.saveAccountAllLogo)': [string, boolean, ResponseSettingsType];
581
713
  'pri(currentAccount.saveTheme)': [ThemeTypes, boolean, ResponseSettingsType];
582
- 'pri(networkMetadata.list)': [null, NetWorkMetadataDef[]];
583
714
  'pri(chainRegistry.getSubscription)': [null, Record<string, ChainRegistry>, Record<string, ChainRegistry>];
584
715
  'pri(transaction.history.getSubscription)': [null, Record<string, TransactionHistoryItemType[]>, Record<string, TransactionHistoryItemType[]>];
585
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-2'
14
+ version: '0.4.4-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-2",
20
+ "version": "0.4.4-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-2",
203
- "@subwallet/extension-dapp": "^0.4.2-2",
204
- "@subwallet/extension-inject": "^0.4.2-2",
202
+ "@subwallet/extension-chains": "^0.4.4-0",
203
+ "@subwallet/extension-dapp": "^0.4.4-0",
204
+ "@subwallet/extension-inject": "^0.4.4-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-2'
8
+ version: '0.4.4-0'
9
9
  };