fix: filter disallowed collaterals

This commit is contained in:
Justin Starry 2020-11-27 10:49:09 +08:00
parent b5a0170685
commit f8db6bfde0
1 changed files with 14 additions and 1 deletions

View File

@ -1,10 +1,11 @@
import React from "react"; import React from "react";
import { useLendingReserves } from "../../hooks"; import { useLendingReserves } from "../../hooks";
import { LendingReserve } from "../../models"; import { LendingMarket, LendingReserve } from "../../models";
import { TokenIcon } from "../TokenIcon"; import { TokenIcon } from "../TokenIcon";
import { getTokenName } from "../../utils/utils"; import { getTokenName } from "../../utils/utils";
import { Select } from "antd"; import { Select } from "antd";
import { useConnectionConfig } from "../../contexts/connection"; import { useConnectionConfig } from "../../contexts/connection";
import { cache, ParsedAccount } from "../../contexts/accounts";
const { Option } = Select; const { Option } = Select;
@ -16,6 +17,13 @@ export const CollateralSelector = (props: {
const { reserveAccounts } = useLendingReserves(); const { reserveAccounts } = useLendingReserves();
const { tokenMap } = useConnectionConfig(); const { tokenMap } = useConnectionConfig();
const market = cache.get(props.reserve.lendingMarket) as ParsedAccount<
LendingMarket
>;
const onlyQuoteAllowed = !props.reserve.liquidityMint.equals(
market.info.quoteMint
);
return ( return (
<Select <Select
size="large" size="large"
@ -34,6 +42,11 @@ export const CollateralSelector = (props: {
> >
{reserveAccounts {reserveAccounts
.filter((reserve) => reserve.info !== props.reserve) .filter((reserve) => reserve.info !== props.reserve)
.filter(
(reserve) =>
!onlyQuoteAllowed ||
reserve.info.liquidityMint.equals(market.info.quoteMint)
)
.map((reserve) => { .map((reserve) => {
const mint = reserve.info.liquidityMint.toBase58(); const mint = reserve.info.liquidityMint.toBase58();
const address = reserve.pubkey.toBase58(); const address = reserve.pubkey.toBase58();