From 75585a6df4bef71ba46e2fe58a8026502ff5f50c Mon Sep 17 00:00:00 2001 From: Nikita-Polyakov <polyakov@soramitsu.co.jp> Date: Sat, 8 Jul 2023 11:17:57 +0300 Subject: [PATCH 1/3] fix ui checks --- src/views/BridgeTransaction.vue | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/views/BridgeTransaction.vue b/src/views/BridgeTransaction.vue index 18cb40f69..b298eeab1 100644 --- a/src/views/BridgeTransaction.vue +++ b/src/views/BridgeTransaction.vue @@ -127,15 +127,17 @@ <template v-else-if="isTxPending">{{ t('bridgeTransaction.pending') }}</template> <template v-else-if="isAnotherEvmAddress">{{ t('changeAccountText') }}</template> <template v-else-if="!(isSoraToEvm || isValidNetwork)">{{ t('changeNetworkText') }}</template> - <template v-else-if="isInsufficientBalance">{{ + <template v-else-if="txIsUnsigned && isInsufficientBalance">{{ t('insufficientBalanceText', { tokenSymbol: assetSymbol }) }}</template> - <template v-else-if="isInsufficientXorForFee">{{ + <template v-else-if="txIsUnsigned && isInsufficientXorForFee">{{ t('insufficientBalanceText', { tokenSymbol: KnownSymbols.XOR }) }}</template> - <template v-else-if="isInsufficientEvmNativeTokenForFee">{{ - t('insufficientBalanceText', { tokenSymbol: evmTokenSymbol }) - }}</template> + <template + v-else-if=" + ((txIsUnsigned && !isSoraToEvm) || (!txIsUnsigned && isSoraToEvm)) && isInsufficientEvmNativeTokenForFee + " + >{{ t('insufficientBalanceText', { tokenSymbol: evmTokenSymbol }) }}</template> <template v-else-if="isTxWaiting">{{ t('bridgeTransaction.confirm', { direction: 'metamask' }) }}</template> <template v-else-if="isTxFailed">{{ t('retryText') }}</template> <template v-else>{{ From 3923caa65108091d046737cc7c1a26d66525159f Mon Sep 17 00:00:00 2001 From: Nikita-Polyakov <polyakov@soramitsu.co.jp> Date: Sat, 8 Jul 2023 11:32:52 +0300 Subject: [PATCH 2/3] fix computed --- src/views/BridgeTransaction.vue | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/views/BridgeTransaction.vue b/src/views/BridgeTransaction.vue index b298eeab1..80d2abf14 100644 --- a/src/views/BridgeTransaction.vue +++ b/src/views/BridgeTransaction.vue @@ -127,17 +127,15 @@ <template v-else-if="isTxPending">{{ t('bridgeTransaction.pending') }}</template> <template v-else-if="isAnotherEvmAddress">{{ t('changeAccountText') }}</template> <template v-else-if="!(isSoraToEvm || isValidNetwork)">{{ t('changeNetworkText') }}</template> - <template v-else-if="txIsUnsigned && isInsufficientBalance">{{ + <template v-else-if="isInsufficientBalance">{{ t('insufficientBalanceText', { tokenSymbol: assetSymbol }) }}</template> - <template v-else-if="txIsUnsigned && isInsufficientXorForFee">{{ + <template v-else-if="isInsufficientXorForFee">{{ t('insufficientBalanceText', { tokenSymbol: KnownSymbols.XOR }) }}</template> - <template - v-else-if=" - ((txIsUnsigned && !isSoraToEvm) || (!txIsUnsigned && isSoraToEvm)) && isInsufficientEvmNativeTokenForFee - " - >{{ t('insufficientBalanceText', { tokenSymbol: evmTokenSymbol }) }}</template> + <template v-else-if="isInsufficientEvmNativeTokenForFee">{{ + t('insufficientBalanceText', { tokenSymbol: evmTokenSymbol }) + }}</template> <template v-else-if="isTxWaiting">{{ t('bridgeTransaction.confirm', { direction: 'metamask' }) }}</template> <template v-else-if="isTxFailed">{{ t('retryText') }}</template> <template v-else>{{ @@ -392,15 +390,18 @@ export default class BridgeTransaction extends Mixins( if (!this.asset || !this.amount || !fee) return false; - return hasInsufficientBalance(this.asset, this.amount, fee, !this.isSoraToEvm); + return this.txIsUnsigned && hasInsufficientBalance(this.asset, this.amount, fee, !this.isSoraToEvm); } get isInsufficientXorForFee(): boolean { - return hasInsufficientXorForFee(this.xor, this.txSoraNetworkFee); + return this.txIsUnsigned && hasInsufficientXorForFee(this.xor, this.txSoraNetworkFee); } get isInsufficientEvmNativeTokenForFee(): boolean { - return hasInsufficientEvmNativeTokenForFee(this.externalBalance, this.txEvmNetworkFee); + return ( + ((this.txIsUnsigned && !this.isSoraToEvm) || (!this.txIsUnsigned && this.isSoraToEvm)) && + hasInsufficientEvmNativeTokenForFee(this.externalBalance, this.txEvmNetworkFee) + ); } get isAnotherEvmAddress(): boolean { From 8da88fafde3f7d64b5d359f1a33b188795f91cde Mon Sep 17 00:00:00 2001 From: Nikita-Polyakov <polyakov@soramitsu.co.jp> Date: Sat, 8 Jul 2023 13:11:23 +0300 Subject: [PATCH 3/3] fix check --- src/store/assets/actions.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/store/assets/actions.ts b/src/store/assets/actions.ts index bf496de34..66ddbef0f 100644 --- a/src/store/assets/actions.ts +++ b/src/store/assets/actions.ts @@ -21,7 +21,8 @@ async function getEthRegisteredAssets(context: ActionContext<any, any>): Promise for (const asset of networkAssets) { const soraAddress = asset.address; const address = asset.externalAddress || (await rootDispatch.web3.getEvmTokenAddressByAssetId(soraAddress)); - const decimals = +asset.externalDecimals ?? (await ethersUtil.getAssetDecimals(address)); + // [TODO] fix js-lib: externalDecimals = 0 by default, what could be with nft + const decimals = +asset.externalDecimals || (await ethersUtil.getAssetDecimals(address)); registeredAssets.push({ [soraAddress]: {