From 9010f109d25a75089bb3a5e6222ea3bc51f0573a Mon Sep 17 00:00:00 2001 From: Joe Zhu Date: Tue, 31 Oct 2023 15:28:40 +0800 Subject: [PATCH] Change usdc to usdc.e (#436) * change usdc to usdc.e in orderly page * update usdc to usdc.e * fix Maintenance Margin Ratio field issue * remove log * update text in Spot page * fix block problem * fix ledger display issue * update totalCollateral logic * fix ledger select accout too long issue * remove price board * remove advertisement * fix env * reset TotalCollateral logic * add USDC.e Available Balance * reset orderly tip * update ui in mobile site * update text --------- Co-authored-by: nature.xie Co-authored-by: Gavin --- package.json | 12 +- src/components/layout/ExternalPopUp.tsx | 2 +- src/components/layout/MobileNav.tsx | 2 +- src/components/layout/NavigationBar.tsx | 2 +- src/components/portfolio/Tool.tsx | 2 +- src/components/rpc/index.tsx | 4 +- .../modal-ui/components/DerivationPath.tsx | 2 +- .../components/HardwareWalletAccountsForm.tsx | 15 +- src/locales/en_US.ts | 8 +- src/locales/es.ts | 2 +- src/locales/ja.ts | 8 +- src/locales/ko.ts | 2 +- src/locales/ru.ts | 8 +- src/locales/uk_UA.ts | 8 +- src/locales/vi.ts | 2 +- src/locales/zh_CN.ts | 3 +- src/pages/Orderly/OrderlyTradingBoard.tsx | 1 - src/pages/Orderly/PorfolioOrderly.tsx | 13 +- .../Orderly/components/AssetModal/index.tsx | 55 ++++- .../Orderly/components/AssetModal/state.ts | 12 +- .../components/MoreRouterButton.tsx | 2 +- .../Orderly/components/Common/NewUserTip.tsx | 2 +- src/pages/Orderly/components/Common/index.tsx | 19 ++ .../components/MobileInfoBoard/index.tsx | 71 ++++--- .../TableWithTabs/SettlePnlModal.tsx | 4 +- .../Orderly/components/UserBoard/index.tsx | 52 +++-- .../Orderly/components/UserBoard/state.ts | 14 +- .../UserBoardPerp/components/DepositTip.tsx | 2 +- .../UserBoardPerp/components/HoverText.tsx | 196 +++++++++++++++++- .../components/LiquidationHistory.tsx | 12 +- .../components/UserBoardPerp/index.tsx | 131 ++++++------ .../Orderly/components/UserBoardPerp/math.ts | 27 ++- .../Orderly/components/UserBoardPerp/state.ts | 18 +- src/pages/Orderly/config.ts | 14 +- src/pages/Orderly/orderly/OrderlyContext.tsx | 2 +- src/pages/Orderly/orderly/constantWjsx.tsx | 18 +- src/pages/Orderly/orderly/off-chain-ws.ts | 1 - src/pages/ReferendumPage.tsx | 2 +- src/pages/SwapPage.tsx | 8 +- src/services/aurora/aurora.ts | 10 +- src/services/aurora/config.ts | 2 +- src/services/config.ts | 12 +- src/services/configV2.ts | 4 +- src/services/farm.ts | 2 +- src/services/tokens_static.ts | 2 +- src/utils/FarmData/index.tsx | 2 +- 46 files changed, 569 insertions(+), 223 deletions(-) diff --git a/package.json b/package.json index 4ffddb823..e853a49ac 100644 --- a/package.json +++ b/package.json @@ -5,13 +5,13 @@ "scripts": { "analyze": "source-map-explorer 'build/*.js'", "build": "craco build && gzip -k -f build/*.js", - "build:testnet": "NEAR_ENV=testnet craco build && gzip -k -f build/*.js", - "build:pub-testnet": "NEAR_ENV=pub-testnet craco build && gzip -k -f build/*.js", - "build:mainnet": "NEAR_ENV=mainnet craco build && gzip -k -f build/*.js", + "build:testnet": "REACT_APP_NEAR_ENV=testnet craco build && gzip -k -f build/*.js", + "build:pub-testnet": "REACT_APP_NEAR_ENV=pub-testnet craco build && gzip -k -f build/*.js", + "build:mainnet": "REACT_APP_NEAR_ENV=mainnet craco build && gzip -k -f build/*.js", "start": "craco start", - "start:mainnet": "NEAR_ENV=mainnet craco start", - "start:testnet": "NEAR_ENV=testnet craco start", - "start:pub-testnet": "NEAR_ENV=pub-testnet craco start", + "start:mainnet": "REACT_APP_NEAR_ENV=mainnet craco start", + "start:testnet": "REACT_APP_NEAR_ENV=testnet craco start", + "start:pub-testnet": "REACT_APP_NEAR_ENV=pub-testnet craco start", "prettier": "prettier --check src", "prettier:fix": "prettier --write src", "test": "jest test --runInBand", diff --git a/src/components/layout/ExternalPopUp.tsx b/src/components/layout/ExternalPopUp.tsx index 19454fd01..7519a54ab 100644 --- a/src/components/layout/ExternalPopUp.tsx +++ b/src/components/layout/ExternalPopUp.tsx @@ -3,7 +3,7 @@ import { isMobile } from 'src/utils/device'; import { useHistory, useLocation } from 'react-router-dom'; export default function ExternalPopUp() { const location = useLocation(); - const env = process.env.NEAR_ENV || ''; + const env = process.env.REACT_APP_NEAR_ENV || ''; const is_test_env = env == 'testnet' || env == 'pub-testnet'; const dom_id = is_test_env ? 'pr3sence' : 'ref-mainnet'; const is_mobile = isMobile(); diff --git a/src/components/layout/MobileNav.tsx b/src/components/layout/MobileNav.tsx index f76a67614..37b28ca45 100644 --- a/src/components/layout/MobileNav.tsx +++ b/src/components/layout/MobileNav.tsx @@ -896,7 +896,7 @@ export function MobileNavBar(props: any) { /> ) : null} - {isMobile ? : null} + {/* {isMobile ? : null} */} - {isMobile ? null : } + {/* {isMobile ? null : } */} { } } // do not support testnet - const env = process.env.NEAR_ENV; + const env = process.env.REACT_APP_NEAR_ENV; if (env == 'testnet' || env == 'pub-testnet') { setNotSupportTestnetError(true); setCustomLoading(false); @@ -791,7 +791,7 @@ async function pingChain(url: string) { chain_id, }; } -const isPrd = (env: string = process.env.NEAR_ENV) => { +const isPrd = (env: string = process.env.REACT_APP_NEAR_ENV) => { if (env != 'pub-testnet' && env != 'testnet') return true; }; function trimStr(str: string = '') { diff --git a/src/context/modal-ui/components/DerivationPath.tsx b/src/context/modal-ui/components/DerivationPath.tsx index 69f4fa91b..53ccc7f3d 100644 --- a/src/context/modal-ui/components/DerivationPath.tsx +++ b/src/context/modal-ui/components/DerivationPath.tsx @@ -423,7 +423,7 @@ export const DerivationPath: React.FC = ({ key={account.accountId} className="pt-10 text-center text-base font-bold" > -
+
{account.accountId}
diff --git a/src/context/modal-ui/components/HardwareWalletAccountsForm.tsx b/src/context/modal-ui/components/HardwareWalletAccountsForm.tsx index 96dc5354c..857481be9 100644 --- a/src/context/modal-ui/components/HardwareWalletAccountsForm.tsx +++ b/src/context/modal-ui/components/HardwareWalletAccountsForm.tsx @@ -18,7 +18,7 @@ const HardwareWalletAccountsForm: React.FC = ({ onSubmit, }) => { return ( -
+

{accounts.length} @@ -31,14 +31,17 @@ const HardwareWalletAccountsForm: React.FC = ({ onSubmit(accounts, e); }} > -

-
+
+
{accounts.map((account, index) => (
-
))}
-
+
diff --git a/src/pages/Orderly/components/UserBoard/index.tsx b/src/pages/Orderly/components/UserBoard/index.tsx index 0dc1622ec..3900f3068 100644 --- a/src/pages/Orderly/components/UserBoard/index.tsx +++ b/src/pages/Orderly/components/UserBoard/index.tsx @@ -107,6 +107,7 @@ import { tickToPrecision } from '../UserBoardPerp/math'; import { DetailBox } from '../UserBoardPerp/components/DetailBox'; import { DepositTip } from '../UserBoardPerp/components/DepositTip'; import { NewUserTip } from '../Common/NewUserTip'; +import { CollatteralTokenAvailableCell } from '../UserBoardPerp/components/HoverText'; function getTipFOK() { const intl = useIntl(); @@ -501,7 +502,7 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) { const storedLimitOrderAdvance = sessionStorage.getItem(REF_ORDERLY_LIMIT_ORDER_ADVANCE) || '{}'; - const { freeCollateral } = usePerpData(); + const { freeCollateral, collateralTokenAvailableBalance } = usePerpData(); const parsedAdvance = JSON.parse(storedLimitOrderAdvance); @@ -631,6 +632,9 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) { ) : balances && balances[symbolTo]?.holding; + const usdcAvailableBalance = curHoldingOut + ? new Big(curHoldingOut.holding + curHoldingOut.pending_short).toFixed(2) + : '-'; const fee = orderType === 'Limit' ? !userInfo || !limitPrice @@ -1348,19 +1352,11 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) { > {!!tokenToBalance ? digitWrapperAsset(tokenToBalance, 2) : ''}
- -
- {tokenOutHolding - ? digitWrapperAsset(tokenOutHolding.toString(), 2) - : 0} -
+
@@ -1796,7 +1792,7 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) { setOnTotalFocus(false); }} /> - USDC + USDC.e
@@ -2042,6 +2038,7 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) { {showAllAssets && ( { setShowAllAssets(false); }} @@ -2062,6 +2059,7 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) { accountBalance={tokenInHolding || 0} tokenInfo={tokenInfo} freeCollateral={freeCollateral} + curHoldingOut={curHoldingOut} />
@@ -3511,11 +3511,13 @@ export function UserBoardMobileSpot({ maintenance }: { maintenance: boolean }) { accountBalance={tokenInHolding || 0} tokenInfo={tokenInfo} freeCollateral={freeCollateral} + curHoldingOut={curHoldingOut} /> {showAllAssets && ( { setShowAllAssets(false); }} @@ -3534,6 +3536,7 @@ export function UserBoardMobileSpot({ maintenance }: { maintenance: boolean }) { price={ orderType === 'Limit' ? limitPrice : marketPrice?.toString() || '0' } + orderType={orderType} fee={fee} totalCost={ONLY_ZEROS.test(total) ? '-' : Number(total)} onClick={handleSubmit} @@ -3565,6 +3568,7 @@ export function AssetManagerModal( standAlone?: boolean; tokenInfo: TokenInfo[] | undefined; freeCollateral: string; + curHoldingOut; } ) { const { @@ -3578,6 +3582,7 @@ export function AssetManagerModal( tokenInfo, isOpen, freeCollateral, + curHoldingOut, } = props; const [tokenId, setTokenId] = useState(tokenIdProp); @@ -3607,7 +3612,8 @@ export function AssetManagerModal( }) || [], tokenInfo, isOpen, - freeCollateral + freeCollateral, + curHoldingOut ); const walletBalance = @@ -4314,6 +4320,7 @@ function ConfirmOrderModal( totalCost: number | '-'; onClick: () => Promise; userInfo: ClientInfo; + orderType: string; } ) { const { @@ -4327,6 +4334,7 @@ function ConfirmOrderModal( totalCost, onClick, userInfo, + orderType, } = props; const [loading, setLoading] = useState(false); @@ -4368,10 +4376,12 @@ function ConfirmOrderModal(
- {intl.formatMessage({ - id: 'limit_order', - defaultMessage: 'Limit Order', - })} + {orderType == 'Limit' + ? intl.formatMessage({ + id: 'limit_order', + defaultMessage: 'Limit Order', + }) + : 'Market Order'} diff --git a/src/pages/Orderly/components/UserBoard/state.ts b/src/pages/Orderly/components/UserBoard/state.ts index c230f65c1..91eb337ef 100644 --- a/src/pages/Orderly/components/UserBoard/state.ts +++ b/src/pages/Orderly/components/UserBoard/state.ts @@ -57,7 +57,8 @@ export function useTokensBalances( tokens: TokenWithDecimals[] | undefined, tokenInfo: TokenInfo[] | undefined, trigger: any, - freeCollateral: string + freeCollateral: string, + curHoldingOut ) { const [showbalances, setShowBalances] = useState([]); @@ -146,10 +147,11 @@ export function useTokensBalances( holdings, ]); - if (showbalances.length > 0 && freeCollateral !== '-') { + if (showbalances.length > 0 && freeCollateral !== '-' && curHoldingOut) { showbalances.forEach((sb) => { - if (sb.name === 'USDC') { - sb.holding = Number(freeCollateral); + if (sb.name === 'USDC' || sb.name === 'USDC.e') { + const usdcBalance = curHoldingOut.holding + curHoldingOut.pending_short; + sb.holding = Math.min(Number(freeCollateral), Number(usdcBalance)); } }); } @@ -257,7 +259,7 @@ export function useTokensOrderlyBalances( if (showbalances.length > 0 && freeCollateral !== '-') { showbalances.forEach((sb) => { - if (sb.name === 'USDC') { + if (sb.name === 'USDC' || sb.name === 'USDC.e') { sb.holding = Number(freeCollateral); } }); @@ -267,7 +269,7 @@ export function useTokensOrderlyBalances( showbalances.forEach((sb) => { const curBalance = balances[sb.name]; - if (curBalance && sb.name !== 'USDC') { + if (curBalance && sb.name !== 'USDC' && sb.name !== 'USDC.e') { sb.holding = Number( new Big(curBalance.holding + curBalance.pendingShortQty).toFixed( Math.min(8, sb.meta.decimals || 9), diff --git a/src/pages/Orderly/components/UserBoardPerp/components/DepositTip.tsx b/src/pages/Orderly/components/UserBoardPerp/components/DepositTip.tsx index e4931a16a..bcc5f9402 100644 --- a/src/pages/Orderly/components/UserBoardPerp/components/DepositTip.tsx +++ b/src/pages/Orderly/components/UserBoardPerp/components/DepositTip.tsx @@ -58,7 +58,7 @@ export function DepositTip(props: { )} - {props.type === 'perp' && ` USDC`} + {props.type === 'perp' && ` USDC.e`} )} diff --git a/src/pages/Orderly/components/UserBoardPerp/components/HoverText.tsx b/src/pages/Orderly/components/UserBoardPerp/components/HoverText.tsx index 3d9183070..67d857b1e 100644 --- a/src/pages/Orderly/components/UserBoardPerp/components/HoverText.tsx +++ b/src/pages/Orderly/components/UserBoardPerp/components/HoverText.tsx @@ -1,9 +1,10 @@ import React, { useEffect, useState } from 'react'; import { FormattedMessage, useIntl } from 'react-intl'; -import { QuestionMark } from '../../Common'; +import { QuestionMark, CollatteralTokenIcon } from '../../Common'; import { isMobile } from '../../../../../utils/device'; import { useClientMobile } from '../../../../../utils/device'; import ReactTooltip from 'react-tooltip'; +import { numberWithCommas } from '../../../utiles'; export function MarginRatioText() { const [hover, setHover] = useState(false); @@ -40,7 +41,7 @@ export function MarginRatioText() {
@@ -140,7 +141,7 @@ export function UnsettlePnl() {
@@ -197,3 +198,192 @@ export function LiquidationPriceText() {
); } + +export function TotalCollateralText() { + const [hover, setHover] = useState(false); + + const intl = useIntl(); + + return ( +
+ + + + +
{ + setHover(true); + }} + onMouseLeave={() => { + setHover(false); + }} + > + + + {hover && ( +
+ Total Collateral = USDC.e Balance + unsettle PnL +
+ )} +
+
+ ); +} +export function FreeCollateralText() { + const [hover, setHover] = useState(false); + + const intl = useIntl(); + + return ( +
+ + + + +
{ + setHover(true); + }} + onMouseLeave={() => { + setHover(false); + }} + > + + + {hover && ( +
+ Free Collateral = Total Collateral - order/postion +
+ )} +
+
+ ); +} +export function UsdcAvailableBalanceText({ + p, +}: { + p?: 'top' | 'right' | 'left' | 'bottom'; +}) { + const [hover, setHover] = useState(false); + + const intl = useIntl(); + + return ( +
+ USDC.e Available Balance + +
{ + setHover(true); + }} + onMouseLeave={() => { + setHover(false); + }} + > + + {hover && ( +
+ USDC.e Available Balance = min(USDC.e Balance, Free Collateral) +
+ )} +
+
+ ); +} + +export function CollatteralToken({ + d, +}: { + d?: 'top' | 'right' | 'left' | 'bottom'; +}) { + const [hover, setHover] = useState(false); + return ( +
+
{ + setHover(true); + }} + onMouseLeave={() => { + setHover(false); + }} + > + + + {hover && ( +
+ collatteral token +
+ )} +
+
+ ); +} +export function CollatteralTokenAvailableCell({ + finalBalance, + usdcBalance, + freeCollateral, +}) { + const [collateralTokenTip, setCollateralTokenTip] = useState(false); + return ( +
+
{ + setCollateralTokenTip(true); + }} + onMouseLeave={() => { + setCollateralTokenTip(false); + }} + > + {finalBalance} + + {collateralTokenTip && ( +
+
+ Balance + {usdcBalance} +
+
+ Free Collateral + + {freeCollateral === '-' + ? '-' + : numberWithCommas(freeCollateral)} + +
+
+ )} +
+
+ ); +} diff --git a/src/pages/Orderly/components/UserBoardPerp/components/LiquidationHistory.tsx b/src/pages/Orderly/components/UserBoardPerp/components/LiquidationHistory.tsx index 884c29803..087d91923 100644 --- a/src/pages/Orderly/components/UserBoardPerp/components/LiquidationHistory.tsx +++ b/src/pages/Orderly/components/UserBoardPerp/components/LiquidationHistory.tsx @@ -169,7 +169,7 @@ function LiquidationHistoryModal(
@@ -191,7 +191,7 @@ function LiquidationHistoryModal( @@ -215,7 +215,7 @@ function LiquidationHistoryModal( @@ -526,7 +526,7 @@ export function MobileliquidationList({ @@ -555,7 +555,7 @@ export function MobileliquidationList({ @@ -573,7 +573,7 @@ export function MobileliquidationList({ diff --git a/src/pages/Orderly/components/UserBoardPerp/index.tsx b/src/pages/Orderly/components/UserBoardPerp/index.tsx index c0d7f3df9..897703941 100644 --- a/src/pages/Orderly/components/UserBoardPerp/index.tsx +++ b/src/pages/Orderly/components/UserBoardPerp/index.tsx @@ -111,6 +111,11 @@ import { MarginRatioText, TotaluPNLText, UnsettlePnl, + TotalCollateralText, + FreeCollateralText, + UsdcAvailableBalanceText, + CollatteralToken, + CollatteralTokenAvailableCell, } from './components/HoverText'; import { getLqPrice, @@ -534,6 +539,8 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) { const [confirmModalOpen, setConfirmModalOpen] = useState(false); const [agreeCheck, setAgreeCheck] = useState(false); + const [collateralTokenTip, setCollateralTokenTip] = useState(false); + const { totalCollateral, mmr, @@ -547,6 +554,7 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) { userInfo, newPositions, accountCurLeverage, + collateralTokenAvailableBalance, } = usePerpData(); const [registerModalOpen, setRegisterModalOpen] = useState(false); @@ -680,19 +688,22 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) { tokenOut?.id, JSON.stringify(balances) ); - - const tokenOutHolding = - tokenOut?.symbol?.toLowerCase()?.includes('usdc') && freeCollateral !== '-' - ? freeCollateral - : curHoldingOut - ? toPrecision( - new Big( - curHoldingOut.holding + curHoldingOut.pending_short - ).toString(), - Math.min(8, tokenOut?.decimals || 8), - false - ) - : balances && balances[symbolTo]?.holding; + // const tokenOutHolding = + // tokenOut?.symbol?.toLowerCase()?.includes('usdc') && freeCollateral !== '-' + // ? freeCollateral + // : curHoldingOut + // ? toPrecision( + // new Big( + // curHoldingOut.holding + curHoldingOut.pending_short + // ).toString(), + // Math.min(8, tokenOut?.decimals || 8), + // false + // ) + // : balances && balances[symbolTo]?.holding; + + const usdcAvailableBalance = curHoldingOut + ? new Big(curHoldingOut.holding + curHoldingOut.pending_short).toFixed(2) + : '-'; const marketPrice = !orders ? 0 @@ -1317,38 +1328,35 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) { {mmr} - - {/* free collateral */} - + {/* total colleteral */}
- - + - {freeCollateral === '-' ? '-' : numberWithCommas(freeCollateral)} + {!newPositions || totalCollateral === '-' + ? '-' + : numberWithCommas(totalCollateral)}
- - {/* total colleteral */} + {/* Usdc Available Balance */}
- - + - {!newPositions || totalCollateral === '-' + {collateralTokenAvailableBalance === '-' ? '-' - : numberWithCommas(totalCollateral)} + : numberWithCommas(collateralTokenAvailableBalance)} + +
+ {/* free collateral */} +
+ + + {freeCollateral === '-' ? '-' : numberWithCommas(freeCollateral)}
{/* Total uPnL */}
- {totaluPnl}
@@ -1558,9 +1566,7 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) { {/* account */} - {perpBoardTab === 'account' && PerpAccountInfo} - {/* balance */} {perpBoardTab == 'balance' && (
@@ -1659,6 +1665,7 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) { alt="" /> {symbolTo} +
{!!tokenToBalance ? digitWrapperAsset(tokenToBalance, 2) : ''}
- -
- {tokenOutHolding - ? digitWrapperAsset(tokenOutHolding.toString(), 2) - : 0} -
+
@@ -2097,7 +2094,7 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) { setOnTotalFocus(false); }} /> - USDC + USDC.e
@@ -2110,7 +2107,7 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) {
{lqPrice} - USDC + USDC.e
@@ -2135,7 +2132,7 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) { )}{' '} - USDC + USDC.e
@@ -2376,6 +2373,7 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) { {showAllAssets && ( { setShowAllAssets(false); }} @@ -2396,6 +2394,7 @@ export default function UserBoard({ maintenance }: { maintenance: boolean }) { accountBalance={tokenInHolding || 0} tokenInfo={tokenInfo} freeCollateral={freeCollateral} + curHoldingOut={curHoldingOut} /> (tokenIdProp); @@ -2508,9 +2511,9 @@ export function AssetManagerModal( }) || [], tokenInfo, isOpen, - freeCollateral + freeCollateral, + curHoldingOut ); - const walletBalance = balances?.find((b: any) => b.id.toLowerCase() === tokenId.toLowerCase()) ?.wallet_balance || @@ -3216,6 +3219,7 @@ function ConfirmOrderModal( totalCost: number | '-'; onClick: () => Promise; userInfo: ClientInfo; + orderType: string; } ) { const { @@ -3228,6 +3232,7 @@ function ConfirmOrderModal( totalCost, onClick, userInfo, + orderType, } = props; const [loading, setLoading] = useState(false); @@ -3269,10 +3274,12 @@ function ConfirmOrderModal(
- {intl.formatMessage({ - id: 'limit_order', - defaultMessage: 'Limit Order', - })} + {orderType == 'Limit' + ? intl.formatMessage({ + id: 'limit_order', + defaultMessage: 'Limit Order', + }) + : 'Market Order'} @@ -4521,7 +4528,7 @@ export function UserBoardMobilePerp({ maintenance }: { maintenance: boolean }) {
@@ -4603,7 +4610,7 @@ export function UserBoardMobilePerp({ maintenance }: { maintenance: boolean }) {
{lqPrice} - USDC + USDC.e
@@ -4628,7 +4635,7 @@ export function UserBoardMobilePerp({ maintenance }: { maintenance: boolean }) { )}{' '} - USDC + USDC.e
@@ -4876,6 +4883,7 @@ export function UserBoardMobilePerp({ maintenance }: { maintenance: boolean }) { tokenId={operationId} tokenInfo={tokenInfo} freeCollateral={freeCollateral} + curHoldingOut={curHoldingOut} /> @@ -4887,6 +4895,7 @@ export function UserBoardMobilePerp({ maintenance }: { maintenance: boolean }) { symbolFrom={symbolFrom} symbolTo={symbolTo} side={side} + orderType={orderType} quantity={inputValue} price={ orderType === 'Limit' ? limitPrice : marketPrice?.toString() || '0' diff --git a/src/pages/Orderly/components/UserBoardPerp/math.ts b/src/pages/Orderly/components/UserBoardPerp/math.ts index 726390586..64cd1603d 100644 --- a/src/pages/Orderly/components/UserBoardPerp/math.ts +++ b/src/pages/Orderly/components/UserBoardPerp/math.ts @@ -96,7 +96,7 @@ const getAvailable = ( const available = displayBalances.reduce((acc, cur, index) => { const markPrice = markPrices?.find( - (item) => item.symbol === `SPOT_${cur.tokenMeta.symbol}_USDC` + (item) => item.symbol === `SPOT_${cur.tokenMeta.symbol}_USDC.e` )?.price || 1; const value = @@ -123,7 +123,7 @@ const getTotalEst = ( const availables = displayBalances.reduce((acc, cur, index) => { const markPrice = markPrices?.find( - (item) => item.symbol === `SPOT_${cur.tokenMeta.symbol}_USDC` + (item) => item.symbol === `SPOT_${cur.tokenMeta.symbol}_USDC.e` )?.price || 1; const value = @@ -319,6 +319,25 @@ const getFreeCollateral = ( return freeCollateral; }; +function getCollateralTokenAvailableBalance( + positions: PositionsType, + markprices: MarkPrice[], + userInfo: ClientInfo, + curHoldingOut: Holding +) { + const freeCollateral = getFreeCollateral( + positions, + markprices, + userInfo, + curHoldingOut + ); + const balance = new Big(curHoldingOut.holding + curHoldingOut.pending_short); + if (balance.lt(freeCollateral)) { + return balance; + } else { + return freeCollateral; + } +} const getTotalnotional = ( markPrices: MarkPrice[], @@ -374,7 +393,8 @@ const getMMR = ( userInfo: ClientInfo, position_notional: number ) => { - const { symbolFrom } = parseSymbol(symbol.symbol); + // const { symbolFrom } = parseSymbol(symbol.symbol); + const symbolFrom = symbol.symbol; const base_mmr = symbol.base_mmr; const base_imr = symbol.base_imr; @@ -750,4 +770,5 @@ export { getAvailable, getTotalEst, getLqPriceFloat, + getCollateralTokenAvailableBalance, }; diff --git a/src/pages/Orderly/components/UserBoardPerp/state.ts b/src/pages/Orderly/components/UserBoardPerp/state.ts index e4292d614..2386b59b9 100644 --- a/src/pages/Orderly/components/UserBoardPerp/state.ts +++ b/src/pages/Orderly/components/UserBoardPerp/state.ts @@ -20,6 +20,7 @@ import { getAvailable, getTotalEst, getLqPriceFloat, + getCollateralTokenAvailableBalance, } from './math'; import { parseSymbol } from '../RecentTrade'; import { @@ -142,7 +143,6 @@ export function usePerpData(deps?: { if (diffSymbols && diffSymbols.length > 0) { setPositionTrigger((b) => !b); - // console.log('setPositionTrigger: ', diffSymbols); diffSymbols.forEach((s) => { const item = positionPush?.find((p) => p.symbol === s); @@ -236,6 +236,21 @@ export function usePerpData(deps?: { } }, [newPositions, markPrices, userInfo, curHoldingOut]); + const collateralTokenAvailableBalance = useMemo(() => { + try { + if (!curHoldingOut) return '0'; + + return getCollateralTokenAvailableBalance( + newPositions, + markPrices, + userInfo, + curHoldingOut + ).toFixed(2); + } catch (error) { + return '-'; + } + }, [newPositions, markPrices, userInfo, curHoldingOut]); + const totaluPnl = useMemo(() => { try { return getTotaluPnl(newPositions, markPrices); @@ -422,5 +437,6 @@ export function usePerpData(deps?: { totalEst, holdings, accountCurLeverage, + collateralTokenAvailableBalance, }; } diff --git a/src/pages/Orderly/config.ts b/src/pages/Orderly/config.ts index 7e324413b..482006469 100644 --- a/src/pages/Orderly/config.ts +++ b/src/pages/Orderly/config.ts @@ -1,6 +1,6 @@ // @ts-nocheck -export function getExtendConfig(env: string = process.env.NEAR_ENV) { +export function getExtendConfig(env: string = process.env.REACT_APP_NEAR_ENV) { switch (env) { case 'production': case 'mainnet': @@ -93,7 +93,8 @@ export function getCustomConfig() { return customRpcMap; } export default function getConfig( - env: string = process.env.NEAR_ENV || process.env.REACT_APP_NEAR_ENV + env: string = process.env.REACT_APP_NEAR_ENV || + process.env.REACT_APP_REACT_APP_NEAR_ENV ) { const RPC_LIST_system = getExtendConfig().RPC_LIST; const RPC_LIST_custom = getCustomConfig(); @@ -395,7 +396,8 @@ export default function getConfig( } export function getExtraStablePoolConfig( - env: string = process.env.NEAR_ENV || process.env.REACT_APP_NEAR_ENV + env: string = process.env.REACT_APP_NEAR_ENV || + process.env.REACT_APP_REACT_APP_NEAR_ENV ) { switch (env) { case 'production': @@ -592,7 +594,8 @@ export function getExtraStablePoolConfig( } export function getTransakConfig( accountId: string, - env: string = process.env.NEAR_ENV || process.env.REACT_APP_NEAR_ENV + env: string = process.env.REACT_APP_NEAR_ENV || + process.env.REACT_APP_REACT_APP_NEAR_ENV ) { switch (env) { case 'production': @@ -649,7 +652,8 @@ export function getTransakConfig( } export function getOrderlyConfig( - env: string = process.env.NEAR_ENV || process.env.REACT_APP_NEAR_ENV + env: string = process.env.REACT_APP_NEAR_ENV || + process.env.REACT_APP_REACT_APP_NEAR_ENV ) { switch (env) { case 'production': diff --git a/src/pages/Orderly/orderly/OrderlyContext.tsx b/src/pages/Orderly/orderly/OrderlyContext.tsx index 1188f6e76..480256022 100644 --- a/src/pages/Orderly/orderly/OrderlyContext.tsx +++ b/src/pages/Orderly/orderly/OrderlyContext.tsx @@ -177,7 +177,7 @@ const OrderlyContextProvider: React.FC = ({ children }) => { if (isPerp) { // find if PERP_{token}_{USDC} exist in availableSymbols, if exist, set to this symbol else set to PERP_NEAR_USDC - let newSymbol = 'PERP_NEAR_USDC'; + let newSymbol = 'PERP_NEAR_USDC.e'; const perpSymbol = availableSymbols?.find((s) => { const storedSymbol = localStorage.getItem(REF_ORDERLY_SYMBOL_KEY); diff --git a/src/pages/Orderly/orderly/constantWjsx.tsx b/src/pages/Orderly/orderly/constantWjsx.tsx index 5e6218fa1..95aff1779 100644 --- a/src/pages/Orderly/orderly/constantWjsx.tsx +++ b/src/pages/Orderly/orderly/constantWjsx.tsx @@ -334,7 +334,7 @@ export const usePortableOrderlyTable = ({ backgroundColor: 'rgba(126, 138, 147, 0.15)', }} > - USDC + USDC.e @@ -630,7 +630,7 @@ export const usePortableOrderlyTable = ({ backgroundColor: 'rgba(126, 138, 147, 0.15)', }} > - USDC + USDC.e @@ -742,7 +742,7 @@ export const usePortableOrderlyTable = ({ { key: 'fill_qty', header: 'Fill / Qty', - colSpan: 5, + colSpan: 4, render: ({ executed, quantity, side, status }) => (
( {status.toLocaleLowerCase()} @@ -1500,7 +1500,7 @@ export const usePortableOrderlyTable = ({ {settled_amount >= 0 ? '+' : ''} {settled_amount} -  USDC +  USDC.e
@@ -1529,7 +1529,7 @@ export const usePortableOrderlyTable = ({ className="text-[10px] px-1.5 py-0.5 ml-1 rounded-md" style={{ backgroundColor: 'rgba(126, 138, 147, 0.15)' }} > - USDC + USDC.e
), colSpan: 2, @@ -1559,7 +1559,7 @@ export const usePortableOrderlyTable = ({ className="text-[10px] px-1.5 py-0.5 ml-1 rounded-md" style={{ backgroundColor: 'rgba(126, 138, 147, 0.15)' }} > - USDC + USDC.e ), colSpan: 2, @@ -1618,7 +1618,7 @@ export const usePortableOrderlyTable = ({ {funding_fee < 0 ? '+' : ''} {(funding_fee * -1).toFixed(4)} -  USDC +  USDC.e
{formatTimeDate(created_time)} @@ -1674,7 +1674,7 @@ export const usePortableOrderlyTable = ({ > {funding_fee < 0 ? '+' : ''} {funding_fee * -1} -  USDC +  USDC.e ), diff --git a/src/pages/Orderly/orderly/off-chain-ws.ts b/src/pages/Orderly/orderly/off-chain-ws.ts index 8794c3624..fb3e841e6 100644 --- a/src/pages/Orderly/orderly/off-chain-ws.ts +++ b/src/pages/Orderly/orderly/off-chain-ws.ts @@ -40,7 +40,6 @@ export const useOrderlyWS = () => { reconnectInterval: 10000, share: false, }); - useEffect(() => { if (lastMessage !== null) { setMessageHistory((prev: any) => prev.concat(lastMessage)); diff --git a/src/pages/ReferendumPage.tsx b/src/pages/ReferendumPage.tsx index 18be86086..018385e40 100644 --- a/src/pages/ReferendumPage.tsx +++ b/src/pages/ReferendumPage.tsx @@ -388,7 +388,7 @@ const timeStampToDate = (ts: number) => { return moment(ts * 1000).format('YYYY-MM-DD'); }; -export const getVEPoolId = (env: string = process.env.NEAR_ENV) => { +export const getVEPoolId = (env: string = process.env.REACT_APP_NEAR_ENV) => { switch (env) { case 'pub-testnet': return 17; diff --git a/src/pages/SwapPage.tsx b/src/pages/SwapPage.tsx index de3d073c8..98a08bb4a 100644 --- a/src/pages/SwapPage.tsx +++ b/src/pages/SwapPage.tsx @@ -428,19 +428,19 @@ function SwapPage() { /> )} - {!isMobile && ( + {/* {!isMobile && (
- )} + )} */}
- {isMobile && ( + {/* {isMobile && (
- )} + )} */} ); } diff --git a/src/services/aurora/aurora.ts b/src/services/aurora/aurora.ts index b8fc46759..aafbc1d63 100644 --- a/src/services/aurora/aurora.ts +++ b/src/services/aurora/aurora.ts @@ -132,11 +132,11 @@ export const decodeOutput = (abi: any[], methodName: string, buffer: any) => { if (!abiItem) { return null; } - console.log( - 'xx', - abiItem.outputs, - AbiCoder.decodeParameters(abiItem.outputs, `0x${buffer.toString('hex')}`) - ); + // console.log( + // 'xx', + // abiItem.outputs, + // AbiCoder.decodeParameters(abiItem.outputs, `0x${buffer.toString('hex')}`) + // ); return AbiCoder.decodeParameters( abiItem.outputs, `0x${buffer.toString('hex')}` diff --git a/src/services/aurora/config.ts b/src/services/aurora/config.ts index 58b6ee18d..f1b140a7c 100644 --- a/src/services/aurora/config.ts +++ b/src/services/aurora/config.ts @@ -1,4 +1,4 @@ -export function getAuroraConfig(env: string = process.env.NEAR_ENV) { +export function getAuroraConfig(env: string = process.env.REACT_APP_NEAR_ENV) { switch (env) { case 'production': case 'pub-testnet': diff --git a/src/services/config.ts b/src/services/config.ts index 93fd20d9e..29dd979da 100644 --- a/src/services/config.ts +++ b/src/services/config.ts @@ -1,4 +1,4 @@ -export function getExtendConfig(env: string = process.env.NEAR_ENV) { +export function getExtendConfig(env: string = process.env.REACT_APP_NEAR_ENV) { switch (env) { case 'production': case 'mainnet': @@ -90,7 +90,9 @@ export function getCustomConfig() { } return customRpcMap; } -export default function getConfig(env: string = process.env.NEAR_ENV) { +export default function getConfig( + env: string = process.env.REACT_APP_NEAR_ENV +) { const RPC_LIST_system = getExtendConfig().RPC_LIST; const RPC_LIST_custom = getCustomConfig(); const RPC_LIST = Object.assign(RPC_LIST_system, RPC_LIST_custom) as any; @@ -451,7 +453,9 @@ export default function getConfig(env: string = process.env.NEAR_ENV) { } } -export function getExtraStablePoolConfig(env: string = process.env.NEAR_ENV) { +export function getExtraStablePoolConfig( + env: string = process.env.REACT_APP_NEAR_ENV +) { switch (env) { case 'production': case 'mainnet': @@ -683,7 +687,7 @@ export function getExtraStablePoolConfig(env: string = process.env.NEAR_ENV) { } export function getTransakConfig( accountId: string, - env: string = process.env.NEAR_ENV + env: string = process.env.REACT_APP_NEAR_ENV ) { switch (env) { case 'production': diff --git a/src/services/configV2.ts b/src/services/configV2.ts index 6def7c50a..0cc77a273 100644 --- a/src/services/configV2.ts +++ b/src/services/configV2.ts @@ -1,4 +1,6 @@ -export default function getConfig(env: string = process.env.NEAR_ENV) { +export default function getConfig( + env: string = process.env.REACT_APP_NEAR_ENV +) { switch (env) { case 'production': case 'mainnet': diff --git a/src/services/farm.ts b/src/services/farm.ts index f219bf343..ad25ec740 100644 --- a/src/services/farm.ts +++ b/src/services/farm.ts @@ -1469,7 +1469,7 @@ export const frontConfigBoost = { }; export function getFarmClassification(): any { - const env: string = process.env.NEAR_ENV; + const env: string = process.env.REACT_APP_NEAR_ENV; if (env == 'pub-testnet') { return { near: [ diff --git a/src/services/tokens_static.ts b/src/services/tokens_static.ts index d3b18cae3..50d40c972 100644 --- a/src/services/tokens_static.ts +++ b/src/services/tokens_static.ts @@ -138,7 +138,7 @@ const testnet_tokens = { }; export function getTokens() { - const env: string = process.env.NEAR_ENV; + const env: string = process.env.REACT_APP_NEAR_ENV; if (env == 'testnet') return dev_tokens; if (env == 'pub-testnet') return testnet_tokens; return main_tokens; diff --git a/src/utils/FarmData/index.tsx b/src/utils/FarmData/index.tsx index 09924b5c4..2e32a42ba 100644 --- a/src/utils/FarmData/index.tsx +++ b/src/utils/FarmData/index.tsx @@ -7,7 +7,7 @@ export let farmConfig: { name: string; }; }; -const env: string = process.env.NEAR_ENV; +const env: string = process.env.REACT_APP_NEAR_ENV; switch (env) { case 'mainnet': farmConfig = {};