Skip to content

Commit f8a8afa

Browse files
authored
Merge pull request #427 from enkryptcom/develop
release: v1.38.0
2 parents 5ff4758 + 3c97da7 commit f8a8afa

File tree

26 files changed

+277
-79
lines changed

26 files changed

+277
-79
lines changed

packages/extension/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@enkryptcom/extension",
3-
"version": "1.37.1",
3+
"version": "1.38.0",
44
"private": true,
55
"scripts": {
66
"zip": "cd dist; zip -r release.zip *;",

packages/extension/src/providers/polkadot/libs/activity-handlers/providers/subscan/configs.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ const NetworkEndpoints = {
1414
[NetworkNames.Quartz]: "https://quartz.api.subscan.io/",
1515
[NetworkNames.Unique]: "https://unique.api.subscan.io/",
1616
[NetworkNames.Vara]: "https://vara.api.subscan.io/",
17+
[NetworkNames.AssetHubDOT]: "https://assethub-polkadot.api.subscan.io/",
18+
[NetworkNames.AssetHubKSM]: "https://assethub-kusama.api.subscan.io/",
1719
};
1820

1921
export { NetworkEndpoints };

packages/extension/src/providers/polkadot/networks/astar/libs/assetinfo.ts renamed to packages/extension/src/providers/polkadot/libs/asset-handler.ts

Lines changed: 13 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { SubstrateNetwork } from "@/providers/polkadot/types/substrate-network";
44
import { hexToString } from "@polkadot/util";
55

66
import { toBN } from "web3-utils";
7-
import { AstarToken, AstarTokenOptions } from "../types/astar-token";
7+
import { AssetToken, AssetTokenOptions } from "./asset-token";
88

99
type AssetMetadata = {
1010
name: `0x${string}`;
@@ -30,25 +30,19 @@ export default async (
3030
const assetMetadatas = metadata.map(([key, value]) => {
3131
const assetKey = (key.toHuman() as string[])[0].replaceAll(",", "");
3232
const assetMetadata = value.toJSON() as AssetMetadata;
33-
3433
const info = {
3534
key: assetKey,
3635
name: hexToString(assetMetadata.name),
3736
symbol: hexToString(assetMetadata.symbol),
3837
decimals: assetMetadata.decimals,
3938
};
40-
4139
return info;
4240
});
43-
4441
const queries = assetMetadatas.map((metadata) => metadata.key);
45-
4642
const assetInfos = await apiPromise.query.assets.asset.multi(queries);
47-
4843
const tokenOptions = assetInfos
4944
.map((info, index) => {
5045
const infoHuman = info.toHuman() as AssetInfo;
51-
5246
if (infoHuman) {
5347
const metadata = assetMetadatas[index];
5448
return {
@@ -61,58 +55,53 @@ export default async (
6155
})
6256
.filter((asset) => asset !== null)
6357
.map((asset) => {
64-
const tokenOptions: AstarTokenOptions = {
58+
const tokenOptions: AssetTokenOptions = {
6559
name: asset!.name,
6660
symbol: asset!.symbol,
6761
decimals: asset!.decimals,
6862
icon: network.icon,
6963
id: asset!.key,
7064
existentialDeposit: toBN(asset!.minBalance),
7165
};
72-
7366
return tokenOptions;
7467
})
7568
.map((tokenOption) => {
7669
if (knownTokens) {
7770
const knownToken = knownTokens.find(
78-
(knownToken) =>
79-
knownToken.name === tokenOption.name &&
80-
knownToken.symbol === tokenOption.symbol
71+
(knownToken) => knownToken.id === tokenOption.id
8172
);
82-
8373
if (knownToken) {
8474
tokenOption.coingeckoID = knownToken.coingeckoID;
8575
tokenOption.icon = knownToken.icon;
8676
}
8777
}
88-
8978
return tokenOption;
9079
});
91-
9280
if (address) {
9381
const queries = tokenOptions.map((options) => {
9482
return [options.id, address];
9583
});
96-
9784
const balances = await apiPromise.query.assets.account.multi(queries);
98-
9985
balances.forEach((balanceInfo, index) => {
100-
const data = balanceInfo.toJSON();
101-
86+
const data: {
87+
balance: string;
88+
status?: string;
89+
} = balanceInfo.toJSON() as any;
10290
if (data) {
103-
tokenOptions[index].balance = (data as any).balance.toString();
91+
tokenOptions[index].balance = data.balance.toString();
92+
if (data.status && data.status.toString() === "Frozen") {
93+
tokenOptions[index].name = `${tokenOptions[index].name} (Frozen)`;
94+
}
10495
}
10596
});
10697
}
107-
10898
const nativeAsset = new SubstrateNativeToken({
10999
name: network.currencyNameLong,
110-
symbol: network.name,
100+
symbol: network.currencyName,
111101
decimals: network.decimals,
112102
existentialDeposit: network.existentialDeposit,
113103
icon: network.icon,
114104
coingeckoID: network.coingeckoID,
115105
});
116-
117-
return [nativeAsset, ...tokenOptions.map((o) => new AstarToken(o))];
106+
return [nativeAsset, ...tokenOptions.map((o) => new AssetToken(o))];
118107
};

packages/extension/src/providers/polkadot/networks/astar/types/astar-token.ts renamed to packages/extension/src/providers/polkadot/libs/asset-token.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ import { ApiPromise } from "@polkadot/api";
44
import { SubmittableExtrinsic } from "@polkadot/api/types";
55
import { ISubmittableResult } from "@polkadot/types/types";
66

7-
export interface AstarTokenOptions extends BaseTokenOptions {
7+
export interface AssetTokenOptions extends BaseTokenOptions {
88
id: string;
99
}
1010

11-
export class AstarToken extends SubstrateToken {
11+
export class AssetToken extends SubstrateToken {
1212
private id: string;
13-
constructor(options: AstarTokenOptions) {
13+
constructor(options: AssetTokenOptions) {
1414
super(options);
1515
this.id = options.id;
1616
}
@@ -26,7 +26,6 @@ export class AstarToken extends SubstrateToken {
2626
this.balance = balance;
2727
return balance;
2828
}
29-
3029
return "0";
3130
});
3231
}
@@ -35,9 +34,10 @@ export class AstarToken extends SubstrateToken {
3534
api: ApiPromise,
3635
to: string,
3736
amount: string,
38-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
39-
_options?: SendOptions | undefined
37+
options?: SendOptions | undefined
4038
): Promise<SubmittableExtrinsic<"promise", ISubmittableResult>> {
39+
if (options && options.type === "all")
40+
return api.tx.assets.transfer(this.id, { id: to }, amount);
4141
return api.tx.assets.transferKeepAlive(this.id, { id: to }, amount);
4242
}
4343
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { NetworkNames } from "@enkryptcom/types";
2+
import { toBN } from "web3-utils";
3+
import {
4+
SubstrateNetwork,
5+
SubstrateNetworkOptions,
6+
} from "@/providers/polkadot/types/substrate-network";
7+
import { subscanActivity } from "@/providers/polkadot/libs/activity-handlers";
8+
import wrapActivityHandler from "@/libs/activity-state/wrap-activity-handler";
9+
import assetHandler from "@/providers/polkadot/libs/asset-handler";
10+
import assets from "./assets-dot";
11+
import { toBase } from "@enkryptcom/utils";
12+
13+
const assetHubOptions: SubstrateNetworkOptions = {
14+
name: NetworkNames.AssetHubDOT,
15+
name_long: "Asset Hub | Polkadot",
16+
homePage: "https://polkadot.network",
17+
blockExplorerTX: "https://assethub-polkadot.subscan.io/extrinsic/[[txHash]]",
18+
blockExplorerAddr: "https://assethub-polkadot.subscan.io/account/[[address]]",
19+
isTestNetwork: false,
20+
currencyName: "DOT",
21+
currencyNameLong: "Polkadot",
22+
icon: require("../icons/assethub.png"),
23+
decimals: 10,
24+
prefix: 0,
25+
node: "wss://statemint-rpc.dwellir.com/",
26+
coingeckoID: "polkadot",
27+
genesisHash:
28+
"0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f",
29+
activityHandler: wrapActivityHandler(subscanActivity),
30+
existentialDeposit: toBN(toBase("0.01", 10)),
31+
assetHandler,
32+
knownTokens: assets,
33+
};
34+
35+
const assetHub = new SubstrateNetwork(assetHubOptions);
36+
37+
export default assetHub;
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { NetworkNames } from "@enkryptcom/types";
2+
import { toBN } from "web3-utils";
3+
import {
4+
SubstrateNetwork,
5+
SubstrateNetworkOptions,
6+
} from "@/providers/polkadot/types/substrate-network";
7+
import { subscanActivity } from "@/providers/polkadot/libs/activity-handlers";
8+
import wrapActivityHandler from "@/libs/activity-state/wrap-activity-handler";
9+
import assetHandler from "@/providers/polkadot/libs/asset-handler";
10+
import assets from "./assets-ksm";
11+
import { toBase } from "@enkryptcom/utils";
12+
13+
const assetHubOptions: SubstrateNetworkOptions = {
14+
name: NetworkNames.AssetHubKSM,
15+
name_long: "Asset Hub | Kusama",
16+
homePage: "https://kusama.network/",
17+
blockExplorerTX: "https://assethub-kusama.subscan.io/extrinsic/[[txHash]]",
18+
blockExplorerAddr: "https://assethub-kusama.subscan.io/account/[[address]]",
19+
isTestNetwork: false,
20+
currencyName: "KSM",
21+
currencyNameLong: "Kusama",
22+
icon: require("../icons/assethub.png"),
23+
decimals: 12,
24+
prefix: 2,
25+
node: "wss://kusama-asset-hub-rpc.polkadot.io/",
26+
coingeckoID: "kusama",
27+
genesisHash:
28+
"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",
29+
activityHandler: wrapActivityHandler(subscanActivity),
30+
existentialDeposit: toBN(toBase("0.000003333333", 12)),
31+
assetHandler,
32+
knownTokens: assets,
33+
};
34+
35+
const assetHub = new SubstrateNetwork(assetHubOptions);
36+
37+
export default assetHub;
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { KnownTokenDisplay } from "@/providers/polkadot/types";
2+
3+
const assets: KnownTokenDisplay[] = [
4+
{
5+
name: "USD Coin",
6+
symbol: "USDC",
7+
coingeckoID: "usd-coin",
8+
icon: require("./icons/usdc.png"),
9+
id: "1337",
10+
},
11+
{
12+
name: "Tether USD",
13+
symbol: "USDt",
14+
coingeckoID: "tether",
15+
icon: require("./icons/usdt.png"),
16+
id: "1984",
17+
},
18+
{
19+
name: "DOT is Dead",
20+
symbol: "DED",
21+
icon: require("./icons/ded.png"),
22+
id: "30",
23+
},
24+
];
25+
26+
export default assets;
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { KnownTokenDisplay } from "@/providers/polkadot/types";
2+
3+
const assets: KnownTokenDisplay[] = [
4+
{
5+
name: "RMRK.app",
6+
symbol: "RMRK",
7+
coingeckoID: "rmrk",
8+
icon: require("./icons/rmrk.png"),
9+
id: "8",
10+
},
11+
{
12+
name: "Tether USD",
13+
symbol: "USDt",
14+
coingeckoID: "tether",
15+
icon: require("./icons/usdt.png"),
16+
id: "1984",
17+
},
18+
];
19+
20+
export default assets;
24.4 KB
Loading
9.88 KB
Loading

0 commit comments

Comments
 (0)