Skip to content

Commit 741baef

Browse files
committed
code improvement
1 parent 186cded commit 741baef

File tree

10 files changed

+39
-83
lines changed

10 files changed

+39
-83
lines changed

apps/extension/src/pages/earn/confirm-usdn-estimation/index.tsx

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,15 @@ export const EarnConfirmUsdnEstimationPage: FunctionComponent = observer(() => {
9393
}
9494
if (feeMinimalDenom && feeType) {
9595
const modularChainInfo = chainStore.getModularChain(NOBLE_CHAIN_ID);
96-
const feeCurrency =
97-
"cosmos" in modularChainInfo
98-
? modularChainInfo.cosmos.feeCurrencies.find(
99-
(feeCurrency) => feeCurrency.coinMinimalDenom === feeMinimalDenom
100-
)
101-
: undefined;
96+
97+
if (!("cosmos" in modularChainInfo)) {
98+
throw new Error("cosmos module is not supported on this chain");
99+
}
100+
101+
const feeCurrency = modularChainInfo.cosmos.feeCurrencies.find(
102+
(feeCurrency) => feeCurrency.coinMinimalDenom === feeMinimalDenom
103+
);
104+
102105
if (feeCurrency) {
103106
nobleEarnAmountConfig.feeConfig.setFee({
104107
type: feeType as FeeType,

apps/extension/src/pages/main/components/deposit-modal/qr-code.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,8 +309,7 @@ const AddressDisplay = ({
309309
const account = accountStore.getAccount(chainId);
310310
const theme = useTheme();
311311

312-
const isEVMOnlyChain =
313-
"evm" in modularChainInfo && chainStore.isEvmOnlyChain(chainId);
312+
const isEVMOnlyChain = chainStore.isEvmOnlyChain(chainId);
314313

315314
const displayAddress = useMemo<DisplayAddress>(() => {
316315
const LENGTH_OF_FIRST_PART = 10;

apps/extension/src/pages/main/token-detail/address-chip/index.tsx

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,7 @@ export const AddressChip: FunctionComponent<{
2020
const { accountStore, chainStore } = useStore();
2121

2222
const modularChainInfo = chainStore.getModularChain(chainId);
23-
const isEVMOnlyChain = (() => {
24-
if (!("cosmos" in modularChainInfo) && "evm" in modularChainInfo) {
25-
return true;
26-
}
27-
return false;
28-
})();
23+
const isEVMOnlyChain = chainStore.isEvmOnlyChain(chainId);
2924

3025
const theme = useTheme();
3126

apps/extension/src/pages/main/token-detail/receive-modal/index.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@ export const ReceiveModal: FunctionComponent<{
3030
const isStarknetChain =
3131
"starknet" in modularChainInfo && modularChainInfo.starknet != null;
3232
const isEVMOnlyChain =
33-
"evm" in modularChainInfo &&
34-
modularChainInfo.evm != null &&
35-
chainStore.isEvmOnlyChain(chainId);
33+
"evm" in modularChainInfo && chainStore.isEvmOnlyChain(chainId);
3634
const isBitcoin =
3735
"bitcoin" in modularChainInfo && modularChainInfo.bitcoin != null;
3836

@@ -43,7 +41,7 @@ export const ReceiveModal: FunctionComponent<{
4341
}
4442

4543
if (isEVMOnlyChain) {
46-
const hex = `0x${modularChainInfo.evm?.chainId.toString(16)}`;
44+
const hex = `0x${modularChainInfo.evm.chainId.toString(16)}`;
4745
return `ethereum:${account.ethereumHexAddress}@${hex}`;
4846
}
4947

apps/extension/src/pages/setting/token/add/index.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,7 @@ export const SettingTokenAddPage: FunctionComponent = observer(() => {
153153
const isSecretWasm = chainStore
154154
.getModularChainInfoImpl(chainId)
155155
.hasFeature("secretwasm");
156-
const isEvmChain =
157-
"evm" in modularChainInfo &&
158-
modularChainInfo?.evm &&
159-
chainStore.isEvmChain(modularChainInfo.chainId);
156+
const isEvmChain = chainStore.isEvmChain(modularChainInfo.chainId);
160157
const isStarknet =
161158
modularChainInfo != null &&
162159
"starknet" in modularChainInfo &&

apps/extension/src/stores/ui-config/manage-view-asset-token.ts

Lines changed: 5 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -109,50 +109,11 @@ export class ManageViewAssetTokenConfig {
109109
return true;
110110
}
111111

112-
if ("cosmos" in modularChainInfo) {
113-
for (const coinMinimalDenom of coinMinimaldenomSet.values()) {
114-
const currency = modularChainInfoImpl.findCurrency(coinMinimalDenom);
115-
if (currency) {
116-
if (currency.coinDenom.toLowerCase().includes(searchLower)) {
117-
return true;
118-
}
119-
}
120-
}
121-
}
122-
if ("evm" in modularChainInfo) {
123-
for (const coinMinimalDenom of coinMinimaldenomSet.values()) {
124-
const currency = modularChainInfo.evm.currencies.find(
125-
(currency) => currency.coinMinimalDenom === coinMinimalDenom
126-
);
127-
if (currency) {
128-
if (currency.coinDenom.toLowerCase().includes(search)) {
129-
return true;
130-
}
131-
}
132-
}
133-
}
134-
if ("bitcoin" in modularChainInfo) {
135-
for (const coinMinimalDenom of coinMinimaldenomSet.values()) {
136-
const currency = modularChainInfo.bitcoin.currencies.find(
137-
(currency) => currency.coinMinimalDenom === coinMinimalDenom
138-
);
139-
if (currency) {
140-
if (currency.coinDenom.toLowerCase().includes(search)) {
141-
return true;
142-
}
143-
}
144-
}
145-
}
146-
if ("starknet" in modularChainInfo) {
147-
for (const coinMinimalDenom of coinMinimaldenomSet.values()) {
148-
const currency = modularChainInfo.starknet.currencies.find(
149-
(currency) => currency.coinMinimalDenom === coinMinimalDenom
150-
);
151-
152-
if (currency) {
153-
if (currency.coinDenom.toLowerCase().includes(search)) {
154-
return true;
155-
}
112+
for (const coinMinimalDenom of coinMinimaldenomSet.values()) {
113+
const currency = modularChainInfoImpl.findCurrency(coinMinimalDenom);
114+
if (currency) {
115+
if (currency.coinDenom.toLowerCase().includes(searchLower)) {
116+
return true;
156117
}
157118
}
158119
}

packages/background/src/chains/service.ts

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {
2+
convertModularChainInfoToChainInfo,
23
DenomHelper,
34
KVStore,
45
PrefixKVStore,
@@ -1189,19 +1190,23 @@ export class ChainsService {
11891190
): ModularChainInfo[] {
11901191
return modularChainInfos.map((modularChainInfo) => {
11911192
if ("cosmos" in modularChainInfo) {
1192-
const cosmos = this.getChainInfoOrThrow(modularChainInfo.chainId);
1193-
const mergedCosmos = this.mergeChainInfosWithDynamics([cosmos])[0];
1193+
const chainInfo = convertModularChainInfoToChainInfo(
1194+
modularChainInfo
1195+
) as ChainInfo;
1196+
const mergedCosmos = this.mergeChainInfosWithDynamics([chainInfo])[0];
1197+
1198+
const { evm, ...cosmos } = mergedCosmos;
11941199

11951200
return {
11961201
chainId: cosmos.chainId,
11971202
chainName: cosmos.chainName,
11981203
chainSymbolImageUrl: cosmos.chainSymbolImageUrl,
11991204
isTestnet: cosmos.isTestnet,
1200-
isNative: !(mergedCosmos.beta ?? false),
1201-
cosmos: mergedCosmos,
1202-
...(mergedCosmos.evm && {
1205+
isNative: !mergedCosmos.beta,
1206+
cosmos,
1207+
...(!!evm && {
12031208
evm: {
1204-
...mergedCosmos.evm,
1209+
...evm,
12051210
currencies: mergedCosmos.currencies,
12061211
feeCurrencies: mergedCosmos.feeCurrencies,
12071212
bip44: mergedCosmos.bip44,
@@ -1346,15 +1351,17 @@ export class ChainsService {
13461351
} as ModularChainInfo;
13471352
}
13481353

1354+
const { evm, ...cosmos } = chainInfo;
1355+
13491356
return {
13501357
chainId: chainInfo.chainId,
13511358
chainName: chainInfo.chainName,
13521359
chainSymbolImageUrl: chainInfo.chainSymbolImageUrl,
13531360
isNative: false,
1354-
cosmos: chainInfo,
1355-
...(chainInfo.evm && {
1361+
cosmos,
1362+
...(!!evm && {
13561363
evm: {
1357-
...chainInfo.evm,
1364+
...evm,
13581365
currencies: chainInfo.currencies,
13591366
feeCurrencies: chainInfo.feeCurrencies,
13601367
bip44: chainInfo.bip44,

packages/stores/src/chain/base.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1774,10 +1774,6 @@ export class ChainStore<C extends ChainInfo = ChainInfo>
17741774
return new ChainInfoImpl(chainInfo, this);
17751775
});
17761776
this._modularChainInfos = infos.modulrChainInfos.map((chainInfo) => {
1777-
if ("evm" in chainInfo) {
1778-
return chainInfo;
1779-
}
1780-
17811777
if ("currencies" in chainInfo) {
17821778
const cosmos = infos.chainInfos.find(
17831779
(c) => c.chainId === chainInfo.chainId
@@ -1801,6 +1797,7 @@ export class ChainStore<C extends ChainInfo = ChainInfo>
18011797
}),
18021798
};
18031799
}
1800+
18041801
return chainInfo;
18051802
});
18061803
this._modularChainInfoImpls = infos.modulrChainInfos.map((chainInfo) => {

packages/stores/src/query/balances.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,13 @@ export class ObservableQueryBalancesImplMap {
9191
*/
9292
@computed
9393
get balances(): IObservableQueryBalanceImpl[] {
94-
const currencies = [];
9594
const result = [];
9695

9796
const modularChainInfoImpl = this.chainGetter.getModularChainInfoImpl(
9897
this.chainId
9998
);
10099

101-
currencies.push(...modularChainInfoImpl.getCurrencies());
100+
const currencies = modularChainInfoImpl.getCurrencies();
102101

103102
for (let i = 0; i < currencies.length; i++) {
104103
const currency = currencies[i];

packages/types/src/chain-info.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ export interface ModularChainInfoBase {
104104
export type ModularChainInfo = ModularChainInfoBase &
105105
(
106106
| {
107-
readonly cosmos: ChainInfo;
107+
readonly cosmos: Omit<ChainInfo, "evm">;
108108
}
109109
| {
110110
readonly starknet: StarknetChainInfo;
@@ -117,7 +117,7 @@ export type ModularChainInfo = ModularChainInfoBase &
117117
readonly evm: EVMNativeChainInfo;
118118
}
119119
| {
120-
readonly cosmos: ChainInfo;
120+
readonly cosmos: Omit<ChainInfo, "evm">;
121121
readonly evm: EVMNativeChainInfo;
122122
}
123123
);

0 commit comments

Comments
 (0)