Skip to content

Commit 5384ec0

Browse files
committed
Merge branch 'master' into release/interlay/2.41.8
* master: (229 commits) chore: release v2.41.8 hotfix: XCM polkadot/kintsugi max transferable balance (#1645) Revert "[release] Interlay 2.41.7 (#1639)" (#1641) [release] Interlay 2.41.7 (#1639) chore: release v2.41.7 fix: chart counter enum and lower value for collateral (#1638) chore: release v2.41.6 refactor: line chart config (#1635) chore: release v2.41.5 chore: bump bridge (#1631) chore: release v2.41.4 api: rewrite python functions in javascript (#1630) chore: release v2.41.3 Switch Bifrost RPC node (#1627) chore: release v2.41.2 api: add dia fair price feed (#1619) chore: release v2.41.1 Tom/update parallel xcm nodes (#1621) Tom/hotfix/disable parallel xcm channel (#1620) chore: release v2.41.0 ... # Conflicts: # package.json # src/pages/SendAndReceive/SendAndReceiveForms/components/BridgeForm/BridgeForm.tsx
2 parents e4bf405 + 709e416 commit 5384ec0

2 files changed

Lines changed: 26 additions & 7 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "interbtc-ui",
3-
"version": "2.41.7",
3+
"version": "2.41.8",
44
"private": true,
55
"dependencies": {
66
"@craco/craco": "^6.1.1",

src/pages/SendAndReceive/SendAndReceiveForms/components/BridgeForm/BridgeForm.tsx

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { ChainName } from '@interlay/bridge';
2-
import { newMonetaryAmount } from '@interlay/interbtc-api';
2+
import { CurrencyExt, newMonetaryAmount } from '@interlay/interbtc-api';
3+
import { MonetaryAmount } from '@interlay/monetary-js';
34
import { web3FromAddress } from '@polkadot/extension-dapp';
45
import { mergeProps } from '@react-aria/utils';
56
import { ChangeEventHandler, Key, useCallback, useEffect, useState } from 'react';
@@ -44,6 +45,7 @@ const BridgeForm = (): JSX.Element => {
4445
const [destinationChains, setDestinationChains] = useState<Chains>([]);
4546
const [transferableTokens, setTransferableTokens] = useState<XCMTokenData[]>([]);
4647
const [currentToken, setCurrentToken] = useState<XCMTokenData>();
48+
const [maxTransferable, setMaxTransferable] = useState<MonetaryAmount<CurrencyExt>>();
4749

4850
const prices = useGetPrices();
4951
const { t } = useTranslation();
@@ -64,9 +66,7 @@ const BridgeForm = (): JSX.Element => {
6466
minAmount: currentToken
6567
? newMonetaryAmount(currentToken.minTransferAmount, getCurrencyFromTicker(currentToken.value), true)
6668
: undefined,
67-
maxAmount: currentToken
68-
? newMonetaryAmount(currentToken.balance, getCurrencyFromTicker(currentToken.value), true)
69-
: undefined
69+
maxAmount: maxTransferable
7070
}
7171
};
7272

@@ -193,6 +193,25 @@ const BridgeForm = (): JSX.Element => {
193193
// eslint-disable-next-line react-hooks/exhaustive-deps
194194
}, [accountId]);
195195

196+
// TODO: This is a hotfix for this issue:
197+
// https://github.com/interlay/interbtc-ui/issues/1644
198+
// https://discord.com/channels/745259537707040778/1210509457902018600
199+
// Revert this change when fixed in the bridge and revert to currentToken.balance
200+
useEffect(() => {
201+
if (!currentToken) return;
202+
203+
const fromField = form.values[BRIDGE_FROM_FIELD];
204+
const balance = newSafeMonetaryAmount(currentToken?.balance, getCurrencyFromTicker(currentToken.value), true);
205+
206+
// An upstream change allows users to make transactions which fall below the ED when transferring from
207+
// Polkadot or Kusama. This needs to be fixed in the bridge, but setting max balance to 95% mitigates
208+
// the issue for now.
209+
const transferable = fromField === 'polkadot' || fromField === 'kusama' ? balance.mul(0.95) : balance;
210+
211+
setMaxTransferable(transferable);
212+
// eslint-disable-next-line react-hooks/exhaustive-deps
213+
}, [currentToken]);
214+
196215
if (!originatingChains || !destinationChains || !transferableTokens.length) {
197216
return (
198217
<Flex justifyContent='center'>
@@ -225,8 +244,8 @@ const BridgeForm = (): JSX.Element => {
225244
<TokenInput
226245
placeholder='0.00'
227246
label='Transfer amount'
228-
balance={currentToken?.balance.toString() || 0}
229-
humanBalance={currentToken?.balance.toString() || 0}
247+
balance={maxTransferable?.toString() || 0}
248+
humanBalance={maxTransferable?.toString() || 0}
230249
valueUSD={valueUSD || 0}
231250
selectProps={mergeProps(form.getSelectFieldProps(BRIDGE_TOKEN_FIELD), {
232251
onSelectionChange: (ticker: Key) => handleTickerChange(ticker as string, BRIDGE_TOKEN_FIELD),

0 commit comments

Comments
 (0)