diff --git a/composables/autoTeleport/useAutoTeleportTransitionDetails.ts b/composables/autoTeleport/useAutoTeleportTransitionDetails.ts index 14b4614f0f..e0a5af3e64 100644 --- a/composables/autoTeleport/useAutoTeleportTransitionDetails.ts +++ b/composables/autoTeleport/useAutoTeleportTransitionDetails.ts @@ -95,16 +95,16 @@ export default function ( ) const needsSourceChainBalances = computed( - () => !hasEnoughInCurrentChain.value, + () => !hasEnoughInCurrentChain.value && !hasSourceChainBalances.value, ) const actionAutoFees = computed(() => fees.actionAutoFees - ? fees.forceActionAutoFees || needsSourceChainBalances.value + ? fees.forceActionAutoFees || !hasEnoughInCurrentChain.value : false, ) - const sourceChainsBalances = computed<{ [key: Chain]: string }>(() => + const sourceChainsBalances = computed>(() => allowedSourceChains.value.reduce( (reducer, chainPrefix) => ({ ...reducer, @@ -114,11 +114,14 @@ export default function ( ), ) + const hasSourceChainBalances = computed( + () => Object.values(sourceChainsBalances.value).every(Boolean), + ) + const hasBalances = computed( () => - (Boolean(currentChainBalance.value) - && Object.values(sourceChainsBalances.value).every(Boolean)) - || hasFetched.balances, + (Boolean(currentChainBalance.value) && hasSourceChainBalances.value) + || hasFetched.balances, ) const richestChain = computed( diff --git a/composables/useMultipleBalance.ts b/composables/useMultipleBalance.ts index 4e57b6dead..bf212aba6d 100644 --- a/composables/useMultipleBalance.ts +++ b/composables/useMultipleBalance.ts @@ -1,9 +1,7 @@ -import { ApiPromise, WsProvider } from '@polkadot/api' import { decodeAddress, encodeAddress } from '@polkadot/util-crypto' import { storeToRefs } from 'pinia' import { CHAINS, - ENDPOINT_MAP, type ChainProperties, type Prefix, } from '@kodadot1/static' @@ -59,6 +57,7 @@ export default function (refetchPeriodically: boolean = false) { const fiatStore = useFiatStore() const { existentialDeposit } = useChain() const { getEvmBalance: fetchEvmBalance } = useBalance() + const { apiInstanceByPrefix } = useApi() const { multiBalances, @@ -113,11 +112,8 @@ export default function (refetchPeriodically: boolean = false) { }) { const publicKey = decodeAddress(address) const prefixAddress = encodeAddress(publicKey, chain.ss58Format) - const wsProvider = new WsProvider(ENDPOINT_MAP[prefix]) - const api = await ApiPromise.create({ - provider: wsProvider, - }) + const api = await apiInstanceByPrefix(prefix) const balance = await getNativeBalance({ address: prefixAddress, @@ -125,8 +121,6 @@ export default function (refetchPeriodically: boolean = false) { tokenId, }) - await wsProvider.disconnect() - return { balance: balance.toString(), prefixAddress } }