From d95ee88ab7c6a0f7ed34bba621faa097ce838f7d Mon Sep 17 00:00:00 2001 From: kvhnuke <10602065+kvhnuke@users.noreply.github.com> Date: Tue, 26 Mar 2024 17:00:02 -0700 Subject: [PATCH] devop: add token id for additional validation --- .../providers/subscan/configs.ts | 1 + .../assetinfo.ts => libs/asset-handler.ts} | 25 +++---------- .../astar-token.ts => libs/asset-token.ts} | 7 ++-- .../polkadot/networks/assethub/assets.ts | 29 +++++++++++++++ .../polkadot/networks/assethub/icons/ded.png | Bin 0 -> 24946 bytes .../polkadot/networks/assethub/icons/usdc.png | Bin 0 -> 2091 bytes .../polkadot/networks/assethub/icons/usdt.png | Bin 0 -> 1507 bytes .../polkadot/networks/assethub/index.ts | 35 ++++++++++++++++++ .../networks/astar/assets/astar-assets.ts | 9 ++--- .../networks/astar/assets/shiden-assets.ts | 14 ++----- .../polkadot/networks/astar/astar.ts | 2 +- .../polkadot/networks/astar/shiden.ts | 2 +- .../polkadot/networks/icons/assethub.png | Bin 0 -> 8824 bytes .../src/providers/polkadot/networks/index.ts | 2 + .../src/providers/polkadot/types/index.ts | 1 + .../polkadot/types/substrate-network.ts | 4 +- .../verify-transaction/index.vue | 35 +++++++++++------- packages/types/src/networks.ts | 1 + 18 files changed, 109 insertions(+), 58 deletions(-) rename packages/extension/src/providers/polkadot/{networks/astar/libs/assetinfo.ts => libs/asset-handler.ts} (90%) rename packages/extension/src/providers/polkadot/{networks/astar/types/astar-token.ts => libs/asset-token.ts} (87%) create mode 100644 packages/extension/src/providers/polkadot/networks/assethub/assets.ts create mode 100644 packages/extension/src/providers/polkadot/networks/assethub/icons/ded.png create mode 100644 packages/extension/src/providers/polkadot/networks/assethub/icons/usdc.png create mode 100644 packages/extension/src/providers/polkadot/networks/assethub/icons/usdt.png create mode 100644 packages/extension/src/providers/polkadot/networks/assethub/index.ts create mode 100644 packages/extension/src/providers/polkadot/networks/icons/assethub.png diff --git a/packages/extension/src/providers/polkadot/libs/activity-handlers/providers/subscan/configs.ts b/packages/extension/src/providers/polkadot/libs/activity-handlers/providers/subscan/configs.ts index ed5e9d330..4534a20b4 100644 --- a/packages/extension/src/providers/polkadot/libs/activity-handlers/providers/subscan/configs.ts +++ b/packages/extension/src/providers/polkadot/libs/activity-handlers/providers/subscan/configs.ts @@ -14,6 +14,7 @@ const NetworkEndpoints = { [NetworkNames.Quartz]: "https://quartz.api.subscan.io/", [NetworkNames.Unique]: "https://unique.api.subscan.io/", [NetworkNames.Vara]: "https://vara.api.subscan.io/", + [NetworkNames.AssetHub]: "https://assethub-polkadot.api.subscan.io/", }; export { NetworkEndpoints }; diff --git a/packages/extension/src/providers/polkadot/networks/astar/libs/assetinfo.ts b/packages/extension/src/providers/polkadot/libs/asset-handler.ts similarity index 90% rename from packages/extension/src/providers/polkadot/networks/astar/libs/assetinfo.ts rename to packages/extension/src/providers/polkadot/libs/asset-handler.ts index 73edbcbe9..ddd35c1fc 100644 --- a/packages/extension/src/providers/polkadot/networks/astar/libs/assetinfo.ts +++ b/packages/extension/src/providers/polkadot/libs/asset-handler.ts @@ -4,7 +4,7 @@ import { SubstrateNetwork } from "@/providers/polkadot/types/substrate-network"; import { hexToString } from "@polkadot/util"; import { toBN } from "web3-utils"; -import { AstarToken, AstarTokenOptions } from "../types/astar-token"; +import { AssetToken, AssetTokenOptions } from "./asset-token"; type AssetMetadata = { name: `0x${string}`; @@ -30,25 +30,19 @@ export default async ( const assetMetadatas = metadata.map(([key, value]) => { const assetKey = (key.toHuman() as string[])[0].replaceAll(",", ""); const assetMetadata = value.toJSON() as AssetMetadata; - const info = { key: assetKey, name: hexToString(assetMetadata.name), symbol: hexToString(assetMetadata.symbol), decimals: assetMetadata.decimals, }; - return info; }); - const queries = assetMetadatas.map((metadata) => metadata.key); - const assetInfos = await apiPromise.query.assets.asset.multi(queries); - const tokenOptions = assetInfos .map((info, index) => { const infoHuman = info.toHuman() as AssetInfo; - if (infoHuman) { const metadata = assetMetadatas[index]; return { @@ -61,7 +55,7 @@ export default async ( }) .filter((asset) => asset !== null) .map((asset) => { - const tokenOptions: AstarTokenOptions = { + const tokenOptions: AssetTokenOptions = { name: asset!.name, symbol: asset!.symbol, decimals: asset!.decimals, @@ -69,7 +63,6 @@ export default async ( id: asset!.key, existentialDeposit: toBN(asset!.minBalance), }; - return tokenOptions; }) .map((tokenOption) => { @@ -77,34 +70,29 @@ export default async ( const knownToken = knownTokens.find( (knownToken) => knownToken.name === tokenOption.name && - knownToken.symbol === tokenOption.symbol + knownToken.symbol === tokenOption.symbol && + knownToken.id === tokenOption.id ); - if (knownToken) { tokenOption.coingeckoID = knownToken.coingeckoID; tokenOption.icon = knownToken.icon; + console.log(tokenOption); } } - return tokenOption; }); - if (address) { const queries = tokenOptions.map((options) => { return [options.id, address]; }); - const balances = await apiPromise.query.assets.account.multi(queries); - balances.forEach((balanceInfo, index) => { const data = balanceInfo.toJSON(); - if (data) { tokenOptions[index].balance = (data as any).balance.toString(); } }); } - const nativeAsset = new SubstrateNativeToken({ name: network.currencyNameLong, symbol: network.name, @@ -113,6 +101,5 @@ export default async ( icon: network.icon, coingeckoID: network.coingeckoID, }); - - return [nativeAsset, ...tokenOptions.map((o) => new AstarToken(o))]; + return [nativeAsset, ...tokenOptions.map((o) => new AssetToken(o))]; }; diff --git a/packages/extension/src/providers/polkadot/networks/astar/types/astar-token.ts b/packages/extension/src/providers/polkadot/libs/asset-token.ts similarity index 87% rename from packages/extension/src/providers/polkadot/networks/astar/types/astar-token.ts rename to packages/extension/src/providers/polkadot/libs/asset-token.ts index d25dbc28f..9c9b5105b 100644 --- a/packages/extension/src/providers/polkadot/networks/astar/types/astar-token.ts +++ b/packages/extension/src/providers/polkadot/libs/asset-token.ts @@ -4,13 +4,13 @@ import { ApiPromise } from "@polkadot/api"; import { SubmittableExtrinsic } from "@polkadot/api/types"; import { ISubmittableResult } from "@polkadot/types/types"; -export interface AstarTokenOptions extends BaseTokenOptions { +export interface AssetTokenOptions extends BaseTokenOptions { id: string; } -export class AstarToken extends SubstrateToken { +export class AssetToken extends SubstrateToken { private id: string; - constructor(options: AstarTokenOptions) { + constructor(options: AssetTokenOptions) { super(options); this.id = options.id; } @@ -26,7 +26,6 @@ export class AstarToken extends SubstrateToken { this.balance = balance; return balance; } - return "0"; }); } diff --git a/packages/extension/src/providers/polkadot/networks/assethub/assets.ts b/packages/extension/src/providers/polkadot/networks/assethub/assets.ts new file mode 100644 index 000000000..8e2036991 --- /dev/null +++ b/packages/extension/src/providers/polkadot/networks/assethub/assets.ts @@ -0,0 +1,29 @@ +import { KnownTokenDisplay } from "@/providers/polkadot/types"; + +const assets: KnownTokenDisplay[] = [ + // { + // name: "Acala", + // symbol: "ACA", + // coingeckoID: "acala", + // icon: require("./icons/ACA.png"), + // }, + // { + // name: "Polkadot", + // symbol: "DOT", + // coingeckoID: "polkadot", + // icon: require("../../icons/polkadot.svg"), + // }, + // { + // name: "Acala Dollar", + // symbol: "aUSD", + // icon: require("./icons/AUSD.png"), + // coingeckoID: "acala-dollar", + // }, + // { + // name: "Liquid DOT", + // symbol: "LDOT", + // icon: require("./icons/LDOT.png"), + // }, +]; + +export default assets; diff --git a/packages/extension/src/providers/polkadot/networks/assethub/icons/ded.png b/packages/extension/src/providers/polkadot/networks/assethub/icons/ded.png new file mode 100644 index 0000000000000000000000000000000000000000..c472933e921e6cc4110aee3fa355d48ca17e45de GIT binary patch literal 24946 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 literal 0 HcmV?d00001 diff --git a/packages/extension/src/providers/polkadot/networks/assethub/icons/usdc.png b/packages/extension/src/providers/polkadot/networks/assethub/icons/usdc.png new file mode 100644 index 0000000000000000000000000000000000000000..310abf6de044175a08f8b69cd1c3f885e2c47a87 GIT binary patch literal 2091 zcmX9=eLT}^8`oK^v!!(^#ER58$z)bL(b|j8DKC$lXb;QAn(2i|h&+bS^x$|2wPYeM zNyX;nU`H5+v}Acp43D>@(PUUOQO>>R{PFu;_xE?*_jTXbb$_qx`X!!rve$+gz%(>8 zv>pCs^KT$;sGm(*;N42{>d?@DE;`u!=E`DxdSIQr`{IrSV>wG{9crl>gQWTO|liCcza{hkKd)*Z2ax!p1qsyJ6szigeZvX(LQsM|AmkHR?5P> zKM)oB2k{|_(Pw|2%Z>gdf6|FYuNSK%ZBrq$^@mOvZjoCi49Fft628B9PT2JvKiRxX z>=Vdn>{1S2x&gO#3m-*l#w*b1`B>p=`Cw4x`9pf<<$>oB^k;&0`G^XE?i-p~$~#Es zx^U!I4-0`83&RE~e(A-}LGp9=F3R*K~WcIe41ZUlGaZrT{!eYLj z@16X_k;k~Qf=3Kv1%8O;p#WS$p@{Rb4}$e0V&0g_4w(|N(EBhv%O9%F2BSHcwq!!n z`ij*+-+zgH-b{o*rk7bBMEW%UbDy`Dk$@((Ho$m}e{`p?=L@of}U~maAA+Uf zzL-(DJ&`eaxVTnp(~)^Dig^9=ltm%kuJapA*ZZ?5rNwmOPf7%H|32CGKd?PM3U?t( zo=txIk*A0ew^kqCl_tyYJ*S#U%6f(;#e36t3_!53eY30W`(R2G5yQEy%)0=&^dAK$ z!fP%a9LKl$Yf4T`IE2NtD}Z_vBA9kXQ16Gqsv6qXw-79axW0_t-gAy6iqnrXNq=HnaDW|vt;s1Y2;H!HDLv6|FuMO1l-q#d%Sn18Mg195BRd;6AnkJqhX&7t@JYmWns+rz+3JWYhjA!va|Sr)|bGwx*^9G_V3iQ`7HXKf{@rO0nuf4M`9CoPIY-yBctX~^9BLO37K(IVhQC>u0z$PnLj<0d0Sz=JbGY;K@Q&r87cu;l0ov zlit(%&2!yg>TZcwOi^xT6qMWXGCb|*_Up{Pe5m&^e)kGHeE=NzOlPFY=8K4UpTB&1l_>5x=cTfTp-S7|^&dti-6(qPHpdGNQgB#fDfA7fgDcv%_=nOlirP)7K z#fwp(Dc7;{YTPT!ialj!=f#*HQJ-L7N*$c|SAY5un9}hOOi96sxA`-UKq4h?H_wtY zlpN7b*Vp-~YZ7!-9$rME;H>nM#A09FW!zt&fP$hI2X&zqC=DBmzF5wYq|U~&w?80C zPA_;^4_0-cb_Zr4-{-hbG*ixaSqmsq=U-%RI#*s>FvcC8@}D6St!~eYUao z`e7>)hBnU@+zZLtk()AfK*GD#B6RPZJTU+0*yolUcTlok;&$oe(lh&=;e5BqKjusx zly@xUX%gB4!kP^P_0z(r2FJ2h{&>67lxtcLVvEJfV%Ot4a-t)vH`}1Lvnt-CiN=xF zZ|bx_drrjpzaR`H6HcP_9(BS-Z4)2(de7~FD)NnFyt;R4UlTeMjn8$B wj&M_VpYY8Pk8zD#%WWseA2PoA2{INf8svL@pWE?i;3q)C!Pd#9>^L*_Zy*mAS^xk5 literal 0 HcmV?d00001 diff --git a/packages/extension/src/providers/polkadot/networks/assethub/icons/usdt.png b/packages/extension/src/providers/polkadot/networks/assethub/icons/usdt.png new file mode 100644 index 0000000000000000000000000000000000000000..7f05d00928424c9adfcdb5ea6c177659b732b2d2 GIT binary patch literal 1507 zcmV<91swW`P)IT_C~?HQi8YX&5x|D`OaV!=#ru6g=T@ z_<{{cH%xkoiFYw@PRbi3{Vhh<-6k6&OZc2aV~!>u`UwYkFP4XyP}tb-2GKn%yVZ zZeJ%~mf6JUZbq^Yo9Z7N=fo zP6MC3dX=P)93NXeS-AE zA;c)ea;l}J+!Jggw)N?oH%ULjIC{%C*u)P(fBydc;_@8-4vd%+_ zC&KPN0l(=>(a=O_sPk=%TU;Lo`E z_+&A^;Uqxd`SsjJN`RsL9Ee|c^N~VT03#uHxgRrX0zhmVzvklTdO`k>u|3vF5HSJJ zXOHh0^&rlbpa+KmuXAEvq{;H-ExQ$bQ-2R?iIHfbZ8IFrHE%{hl1Zo|acI9wveCEL05w_Cl+^%Su!s9JM^ z-h<@k_Od%`bFjMZ@sF!bWp zXGR5c4Q!+Jg{>nRjQlYQ-a$MjCRP26d^nLCy8|}`oZCU_DwngD_Rk!0{n&|m`GjX&K}nxMZZ z(pUln8u^UFFNrR(sRRf)@`vn`AXFu2Bmsh!{X+ywf(8=c$RpiR2~-KHPJq$Hn>7(2 z393zi>VppgRDvoKpo!oQaa?T5R+j+H1;3|I5>%A{%?7`xKoV4w0L=%#$2keANPw*C z_iDf~3Bo79*#*DHDG9KOhaUl(BDZ7W*#^HS$S;%?@$7@&v5WFkF z*(~0y3C~I(g5r?`A~=={O;!3Uf`hkKQ6V|1fku7ha6soO8emB!(BjR;-~gXeG)UKN zl0dT>`HjN?XT=$S-`M5ASNTg^LI@#*5JCtcgb+dqA%qae`3;(G=p-Qr*6IKN002ov JPDHLkV1gV1)iVG9 literal 0 HcmV?d00001 diff --git a/packages/extension/src/providers/polkadot/networks/assethub/index.ts b/packages/extension/src/providers/polkadot/networks/assethub/index.ts new file mode 100644 index 000000000..8a3c7808d --- /dev/null +++ b/packages/extension/src/providers/polkadot/networks/assethub/index.ts @@ -0,0 +1,35 @@ +import { NetworkNames } from "@enkryptcom/types"; +import { toBN } from "web3-utils"; +import { + SubstrateNetwork, + SubstrateNetworkOptions, +} from "@/providers/polkadot/types/substrate-network"; +import { subscanActivity } from "@/providers/polkadot/libs/activity-handlers"; +import wrapActivityHandler from "@/libs/activity-state/wrap-activity-handler"; +import assetHandler from "@/providers/polkadot/libs/asset-handler"; + +const assetHubOptions: SubstrateNetworkOptions = { + name: NetworkNames.AssetHub, + name_long: "Asset Hub", + homePage: "https://polkadot.network", + blockExplorerTX: "https://assethub-polkadot.subscan.io/extrinsic/[[txHash]]", + blockExplorerAddr: "https://assethub-polkadot.subscan.io/account/[[address]]", + isTestNetwork: false, + currencyName: "DOT", + currencyNameLong: "Polkadot", + icon: require("../icons/assethub.png"), + decimals: 10, + prefix: 0, + node: "wss://statemint-rpc.dwellir.com/", + coingeckoID: "polkadot", + genesisHash: + "0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f", + activityHandler: wrapActivityHandler(subscanActivity), + existentialDeposit: toBN("10000000000"), + assetHandler, + knownTokens: [], +}; + +const assetHub = new SubstrateNetwork(assetHubOptions); + +export default assetHub; diff --git a/packages/extension/src/providers/polkadot/networks/astar/assets/astar-assets.ts b/packages/extension/src/providers/polkadot/networks/astar/assets/astar-assets.ts index d1b0a9914..040f67976 100644 --- a/packages/extension/src/providers/polkadot/networks/astar/assets/astar-assets.ts +++ b/packages/extension/src/providers/polkadot/networks/astar/assets/astar-assets.ts @@ -6,23 +6,20 @@ const assets: KnownTokenDisplay[] = [ symbol: "ACA", coingeckoID: "acala", icon: require("./icons/ACA.png"), + id: "18446744073709551616", }, { name: "Polkadot", symbol: "DOT", coingeckoID: "polkadot", icon: require("../../icons/polkadot.svg"), - }, - { - name: "Acala Dollar", - symbol: "aUSD", - icon: require("./icons/AUSD.png"), - coingeckoID: "acala-dollar", + id: "340282366920938463463374607431768211455", }, { name: "Liquid DOT", symbol: "LDOT", icon: require("./icons/LDOT.png"), + id: "18446744073709551618", }, ]; diff --git a/packages/extension/src/providers/polkadot/networks/astar/assets/shiden-assets.ts b/packages/extension/src/providers/polkadot/networks/astar/assets/shiden-assets.ts index 5b5d0948f..ca3e92ddc 100644 --- a/packages/extension/src/providers/polkadot/networks/astar/assets/shiden-assets.ts +++ b/packages/extension/src/providers/polkadot/networks/astar/assets/shiden-assets.ts @@ -6,27 +6,19 @@ const assets: KnownTokenDisplay[] = [ symbol: "MOVR", coingeckoID: "moonriver", icon: require("./icons/MOVR.png"), + id: "18446744073709551620", }, { name: "Kusama", symbol: "KSM", icon: require("./icons/KSM.png"), - }, - { - name: "Liquid Kusama", - symbol: "LKSM", - icon: require("./icons/LKSM.png"), - }, - { - name: "Acala Dollar", - symbol: "aUSD", - icon: require("./icons/AUSD.png"), - coingeckoID: "acala-dollar", + id: "340282366920938463463374607431768211455", }, { name: "Karura", symbol: "KAR", icon: require("./icons/KAR.svg"), + id: "18446744073709551618", }, ]; diff --git a/packages/extension/src/providers/polkadot/networks/astar/astar.ts b/packages/extension/src/providers/polkadot/networks/astar/astar.ts index 33a458edd..ddee644f8 100644 --- a/packages/extension/src/providers/polkadot/networks/astar/astar.ts +++ b/packages/extension/src/providers/polkadot/networks/astar/astar.ts @@ -6,7 +6,7 @@ import { SubstrateNetwork, SubstrateNetworkOptions, } from "../../types/substrate-network"; -import assetHandler from "./libs//assetinfo"; +import assetHandler from "@/providers/polkadot/libs/asset-handler"; import { toBN } from "web3-utils"; const astarOptions: SubstrateNetworkOptions = { diff --git a/packages/extension/src/providers/polkadot/networks/astar/shiden.ts b/packages/extension/src/providers/polkadot/networks/astar/shiden.ts index 576372f62..f5910ce05 100644 --- a/packages/extension/src/providers/polkadot/networks/astar/shiden.ts +++ b/packages/extension/src/providers/polkadot/networks/astar/shiden.ts @@ -6,7 +6,7 @@ import { SubstrateNetwork, SubstrateNetworkOptions, } from "../../types/substrate-network"; -import assetHandler from "./libs//assetinfo"; +import assetHandler from "@/providers/polkadot/libs/asset-handler"; import { toBN } from "web3-utils"; const shidenOptions: SubstrateNetworkOptions = { diff --git a/packages/extension/src/providers/polkadot/networks/icons/assethub.png b/packages/extension/src/providers/polkadot/networks/icons/assethub.png new file mode 100644 index 0000000000000000000000000000000000000000..4d65a43b0cd6d365ac632a18be90be9042aebfea GIT binary patch literal 8824 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 +

+ {{ errorMsg }} +

Double check the information and confirm transaction

@@ -32,7 +39,6 @@ /> - {{ errorMsg }} @@ -196,8 +202,22 @@ const sendAction = async () => { address: network.value.displayAddress(txData.fromAddress), network: network.value.name, }); + isSendDone.value = true; + if (getCurrentContext() === "popup") { + setTimeout(() => { + isProcessing.value = false; + router.go(-2); + }, 2500); + } else { + setTimeout(() => { + isProcessing.value = false; + window.close(); + }, 1500); + } }) .catch((error) => { + isProcessing.value = false; + errorMsg.value = error.message; trackSendEvents(SendEventType.SendFailed, { network: network.value.name, error: error.message, @@ -208,19 +228,6 @@ const sendAction = async () => { network: network.value.name, }); }); - - isSendDone.value = true; - if (getCurrentContext() === "popup") { - setTimeout(() => { - isProcessing.value = false; - router.go(-2); - }, 2500); - } else { - setTimeout(() => { - isProcessing.value = false; - window.close(); - }, 1500); - } } catch (error: any) { isProcessing.value = false; console.error(error); diff --git a/packages/types/src/networks.ts b/packages/types/src/networks.ts index 08198e4bb..f2c5f8ced 100644 --- a/packages/types/src/networks.ts +++ b/packages/types/src/networks.ts @@ -63,6 +63,7 @@ export enum NetworkNames { ArtheraTest = "AATest", Arthera = "AA", FormTestnet = "FormTestnet", + AssetHub = "AssetHub", } export enum CoingeckoPlatform {