@subwallet/extension-base 1.1.33-beta.0 → 1.1.33-beta.2

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 (47) hide show
  1. package/background/KoniTypes.d.ts +9 -0
  2. package/background/KoniTypes.js +3 -0
  3. package/cjs/background/KoniTypes.js +3 -0
  4. package/cjs/constants/staking.js +1 -1
  5. package/cjs/koni/api/yield/helper/utils.js +6 -3
  6. package/cjs/services/chain-service/constants.js +4 -2
  7. package/cjs/services/chain-service/handler/SubstrateApi.js +10 -5
  8. package/cjs/services/chain-service/index.js +144 -37
  9. package/cjs/services/chain-service/utils.js +68 -0
  10. package/cjs/services/earning-service/handlers/liquid-staking/base.js +2 -1
  11. package/cjs/services/earning-service/handlers/liquid-staking/bifrost-manta.js +140 -0
  12. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +2 -1
  13. package/cjs/services/earning-service/handlers/liquid-staking/index.js +7 -0
  14. package/cjs/services/earning-service/handlers/special.js +7 -3
  15. package/cjs/services/earning-service/service.js +1 -0
  16. package/cjs/services/storage-service/DatabaseService.js +34 -0
  17. package/cjs/services/storage-service/db-stores/AssetRef.js +24 -0
  18. package/cjs/services/transaction-service/index.js +3 -0
  19. package/cjs/types/yield/actions/join/step.js +1 -0
  20. package/constants/staking.js +1 -1
  21. package/koni/api/yield/helper/utils.d.ts +1 -1
  22. package/koni/api/yield/helper/utils.js +5 -3
  23. package/package.json +12 -2
  24. package/services/chain-service/constants.d.ts +1 -0
  25. package/services/chain-service/constants.js +1 -0
  26. package/services/chain-service/handler/SubstrateApi.js +10 -5
  27. package/services/chain-service/index.d.ts +12 -1
  28. package/services/chain-service/index.js +140 -34
  29. package/services/chain-service/utils.d.ts +10 -1
  30. package/services/chain-service/utils.js +66 -1
  31. package/services/earning-service/handlers/liquid-staking/base.d.ts +1 -1
  32. package/services/earning-service/handlers/liquid-staking/base.js +2 -1
  33. package/services/earning-service/handlers/liquid-staking/bifrost-manta.d.ts +37 -0
  34. package/services/earning-service/handlers/liquid-staking/bifrost-manta.js +132 -0
  35. package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +3 -3
  36. package/services/earning-service/handlers/liquid-staking/bifrost.js +2 -1
  37. package/services/earning-service/handlers/liquid-staking/index.d.ts +1 -0
  38. package/services/earning-service/handlers/liquid-staking/index.js +1 -0
  39. package/services/earning-service/handlers/special.js +7 -3
  40. package/services/earning-service/service.js +2 -1
  41. package/services/storage-service/DatabaseService.js +34 -0
  42. package/services/storage-service/databases/index.d.ts +4 -1
  43. package/services/storage-service/db-stores/AssetRef.d.ts +7 -0
  44. package/services/storage-service/db-stores/AssetRef.js +16 -0
  45. package/services/transaction-service/index.js +3 -0
  46. package/types/yield/actions/join/step.d.ts +1 -0
  47. package/types/yield/actions/join/step.js +1 -0
@@ -1,7 +1,6 @@
1
1
  // Copyright 2019-2022 @subwallet/extension-base
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- import { COMMON_CHAIN_SLUGS } from '@subwallet/chain-list';
5
4
  import { TransactionError } from '@subwallet/extension-base/background/errors/TransactionError';
6
5
  import { BasicTxErrorType, ChainType, ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
7
6
  import { ALL_ACCOUNT_KEY } from '@subwallet/extension-base/constants';
@@ -201,13 +200,16 @@ export default class BaseSpecialStakingPoolHandler extends BasePoolHandler {
201
200
  const altInputTokenBalance = await this.state.balanceService.getTokenFreeBalance(address, altInputTokenInfo.originChain, altInputTokenSlug);
202
201
  const bnAltInputTokenBalance = new BN(altInputTokenBalance.value || '0');
203
202
  if (bnAltInputTokenBalance.gt(BN_ZERO)) {
203
+ const altChainInfo = this.state.getChainInfo(altInputTokenInfo.originChain);
204
+ const symbol = altInputTokenInfo.symbol;
205
+ const networkName = altChainInfo.name;
204
206
  const step = {
205
207
  metadata: {
206
208
  sendingValue: bnAmount.toString(),
207
209
  originTokenInfo: altInputTokenInfo,
208
210
  destinationTokenInfo: inputTokenInfo
209
211
  },
210
- name: 'Transfer DOT from Polkadot',
212
+ name: `Transfer ${symbol} from ${networkName}`,
211
213
  type: YieldStepType.XCM
212
214
  };
213
215
  const xcmOriginSubstrateApi = await this.state.getSubstrateApi(altInputTokenInfo.originChain).isReady;
@@ -404,7 +406,9 @@ export default class BaseSpecialStakingPoolHandler extends BasePoolHandler {
404
406
  amount
405
407
  } = data;
406
408
  const destinationTokenSlug = this.inputAsset;
407
- const originChainInfo = this.state.getChainInfo(COMMON_CHAIN_SLUGS.POLKADOT);
409
+ const altInputTokenSlug = this.altInputAsset || '';
410
+ const altInputTokenInfo = this.state.getAssetBySlug(altInputTokenSlug);
411
+ const originChainInfo = this.state.getChainInfo(altInputTokenInfo.originChain);
408
412
  const originTokenSlug = _getChainNativeTokenSlug(originChainInfo);
409
413
  const originTokenInfo = this.state.getAssetBySlug(originTokenSlug);
410
414
  const destinationTokenInfo = this.state.getAssetBySlug(destinationTokenSlug);
@@ -12,7 +12,7 @@ import { YieldPoolType } from '@subwallet/extension-base/types';
12
12
  import { addLazy, categoryAddresses, createPromiseHandler } from '@subwallet/extension-base/utils';
13
13
  import fetch from 'cross-fetch';
14
14
  import { BehaviorSubject } from 'rxjs';
15
- import { AcalaLiquidStakingPoolHandler, AmplitudeNativeStakingPoolHandler, AstarNativeStakingPoolHandler, BifrostLiquidStakingPoolHandler, InterlayLendingPoolHandler, NominationPoolHandler, ParallelLiquidStakingPoolHandler, ParaNativeStakingPoolHandler, RelayNativeStakingPoolHandler, StellaSwapLiquidStakingPoolHandler } from "./handlers/index.js";
15
+ import { AcalaLiquidStakingPoolHandler, AmplitudeNativeStakingPoolHandler, AstarNativeStakingPoolHandler, BifrostLiquidStakingPoolHandler, BifrostMantaLiquidStakingPoolHandler, InterlayLendingPoolHandler, NominationPoolHandler, ParallelLiquidStakingPoolHandler, ParaNativeStakingPoolHandler, RelayNativeStakingPoolHandler, StellaSwapLiquidStakingPoolHandler } from "./handlers/index.js";
16
16
  const POOLS_DATA_URLS = 'https://sw-static-cache.pages.dev/earning/yield-pools.json';
17
17
  const fetchPoolsData = async () => {
18
18
  const res = await fetch(POOLS_DATA_URLS);
@@ -70,6 +70,7 @@ export default class EarningService {
70
70
  if (_STAKING_CHAIN_GROUP.liquidStaking.includes(chain)) {
71
71
  if (chain === 'bifrost_dot') {
72
72
  handlers.push(new BifrostLiquidStakingPoolHandler(this.state, chain));
73
+ handlers.push(new BifrostMantaLiquidStakingPoolHandler(this.state, chain));
73
74
  }
74
75
  if (chain === 'acala') {
75
76
  handlers.push(new AcalaLiquidStakingPoolHandler(this.state, chain));
@@ -44,8 +44,10 @@ export default class DatabaseService {
44
44
  nominatorMetadata: new NominatorMetadataStore(this._db.nominatorMetadata),
45
45
  mantaPay: new MantaPayStore(this._db.mantaPay),
46
46
  campaign: new CampaignStore(this._db.campaign)
47
+ // assetRef: new AssetRefStore(this._db.assetRef)
47
48
  };
48
49
  }
50
+
49
51
  async updatePriceStore(priceData) {
50
52
  await this.stores.price.table.put(priceData);
51
53
  }
@@ -378,4 +380,36 @@ export default class DatabaseService {
378
380
  async getExportJson() {
379
381
  return JSON.parse(await this.exportDB());
380
382
  }
383
+
384
+ // public setAssetRef (assetRef: Record<string, _AssetRef>) {
385
+ // const assetRefList = Object.entries(assetRef).map(([slug, item]) => {
386
+ // return {
387
+ // slug,
388
+ // ...item
389
+ // } as IAssetRef;
390
+ // });
391
+ //
392
+ // return this.stores.assetRef.bulkUpsert(assetRefList);
393
+ // }
394
+ //
395
+ // public getAssetRef (slug: string) {
396
+ // return this.stores.assetRef.getAssetRef(slug);
397
+ // }
398
+ //
399
+ // public async getAssetRefMap (): Promise<Record<string, _AssetRef>> {
400
+ // const assetRefList = await this.stores.assetRef.getAll();
401
+ // const assetRefObj: Record<string, _AssetRef> = {};
402
+ //
403
+ // assetRefList.forEach((item) => {
404
+ // assetRefObj[item.slug] = {
405
+ // ...item
406
+ // };
407
+ // });
408
+ //
409
+ // return assetRefObj;
410
+ // }
411
+ //
412
+ // public subscribeAssetRef () {
413
+ // return this.stores.assetRef.subscribeAssetRef();
414
+ // }
381
415
  }
@@ -1,4 +1,4 @@
1
- import { _ChainAsset, _ChainInfo } from '@subwallet/chain-list/types';
1
+ import { _AssetRef, _ChainAsset, _ChainInfo } from '@subwallet/chain-list/types';
2
2
  import { CampaignData, ChainStakingMetadata, CrowdloanItem, MetadataItem, NftCollection, NftItem, NominatorMetadata, PriceJson, StakingItem, TransactionHistoryItem } from '@subwallet/extension-base/background/KoniTypes';
3
3
  import { BalanceItem, YieldPoolInfo, YieldPositionInfo } from '@subwallet/extension-base/types';
4
4
  import Dexie, { Table } from 'dexie';
@@ -31,6 +31,9 @@ export interface IMetadataItem extends MetadataItem, DefaultChainDoc {
31
31
  }
32
32
  export declare type IMantaPayLedger = any;
33
33
  export declare type ICampaign = CampaignData;
34
+ export interface IAssetRef extends _AssetRef {
35
+ slug: string;
36
+ }
34
37
  export default class KoniDatabase extends Dexie {
35
38
  price: Table<PriceJson, object>;
36
39
  balances: Table<IBalance, object>;
@@ -0,0 +1,7 @@
1
+ import { IAssetRef } from '@subwallet/extension-base/services/storage-service/databases';
2
+ import BaseStore from '@subwallet/extension-base/services/storage-service/db-stores/BaseStore';
3
+ export default class AssetRefStore extends BaseStore<IAssetRef> {
4
+ getAll(): Promise<IAssetRef[]>;
5
+ getAssetRef(slug: string): Promise<IAssetRef | undefined>;
6
+ subscribeAssetRef(): import("dexie").Observable<IAssetRef[]>;
7
+ }
@@ -0,0 +1,16 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base authors & contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import BaseStore from '@subwallet/extension-base/services/storage-service/db-stores/BaseStore';
5
+ import { liveQuery } from 'dexie';
6
+ export default class AssetRefStore extends BaseStore {
7
+ async getAll() {
8
+ return this.table.toArray();
9
+ }
10
+ async getAssetRef(slug) {
11
+ return this.table.get(slug);
12
+ }
13
+ subscribeAssetRef() {
14
+ return liveQuery(async () => await this.table.toArray());
15
+ }
16
+ }
@@ -522,6 +522,7 @@ export default class TransactionService {
522
522
  case ExtrinsicType.MINT_QDOT:
523
523
  case ExtrinsicType.MINT_LDOT:
524
524
  case ExtrinsicType.MINT_SDOT:
525
+ case ExtrinsicType.MINT_VMANTA:
525
526
 
526
527
  // eslint-disable-next-line no-fallthrough
527
528
  case ExtrinsicType.MINT_VDOT:
@@ -575,12 +576,14 @@ export default class TransactionService {
575
576
  break;
576
577
  }
577
578
  case ExtrinsicType.UNSTAKE_VDOT:
579
+ case ExtrinsicType.UNSTAKE_VMANTA:
578
580
  case ExtrinsicType.UNSTAKE_LDOT:
579
581
  case ExtrinsicType.UNSTAKE_SDOT:
580
582
  case ExtrinsicType.UNSTAKE_STDOT:
581
583
  case ExtrinsicType.REDEEM_STDOT:
582
584
  case ExtrinsicType.REDEEM_LDOT:
583
585
  case ExtrinsicType.REDEEM_SDOT:
586
+ case ExtrinsicType.REDEEM_VMANTA:
584
587
 
585
588
  // eslint-disable-next-line no-fallthrough
586
589
  case ExtrinsicType.REDEEM_VDOT:
@@ -39,6 +39,7 @@ export declare enum YieldStepType {
39
39
  NOMINATE = "NOMINATE",
40
40
  JOIN_NOMINATION_POOL = "JOIN_NOMINATION_POOL",
41
41
  MINT_VDOT = "MINT_VDOT",
42
+ MINT_VMANTA = "MINT_VMANTA",
42
43
  MINT_LDOT = "MINT_LDOT",
43
44
  MINT_QDOT = "MINT_QDOT",
44
45
  MINT_SDOT = "MINT_SDOT",
@@ -38,6 +38,7 @@ export let YieldStepType;
38
38
  YieldStepType["NOMINATE"] = "NOMINATE";
39
39
  YieldStepType["JOIN_NOMINATION_POOL"] = "JOIN_NOMINATION_POOL";
40
40
  YieldStepType["MINT_VDOT"] = "MINT_VDOT";
41
+ YieldStepType["MINT_VMANTA"] = "MINT_VMANTA";
41
42
  YieldStepType["MINT_LDOT"] = "MINT_LDOT";
42
43
  YieldStepType["MINT_QDOT"] = "MINT_QDOT";
43
44
  YieldStepType["MINT_SDOT"] = "MINT_SDOT";