fix(notifications): add ended instant sale auctions to notifications

This commit is contained in:
shotgunofdeath 2021-09-20 18:43:17 +03:00
parent b943864d1e
commit 0445dacd5a
3 changed files with 14 additions and 11 deletions

View File

@ -558,9 +558,6 @@ export const AuctionCard = ({
auctionView.auction = newAuctionState[0];
auctionView.myBidderPot = newAuctionState[1];
auctionView.myBidderMetadata = newAuctionState[2];
console.log('vault state before redeem');
console.log(auctionView.vault.info.state === VaultState.Deactivated);
// Claim the purchase
try {
await sendRedeemBid(
@ -576,8 +573,6 @@ export const AuctionCard = ({
await update();
setShowBidModal(false);
setShowRedeemedBidModal(true);
console.log('vault state after redeem');
console.log(auctionView.vault.info.state === VaultState.Deactivated);
});
} catch (e) {
console.error(e);

View File

@ -182,7 +182,7 @@ export function useSettlementAuctions({
const { accountByMint } = useUserAccounts();
const walletPubkey = wallet?.publicKey?.toBase58();
const { bidderPotsByAuctionAndBidder } = useMeta();
const auctionsNeedingSettling = useAuctions(AuctionViewState.Ended);
const auctionsNeedingSettling = [...useAuctions(AuctionViewState.Ended), ...useAuctions(AuctionViewState.BuyNow)];
const [validDiscoveredEndedAuctions, setValidDiscoveredEndedAuctions] =
useState<Record<string, number>>({});
@ -190,10 +190,13 @@ export function useSettlementAuctions({
const f = async () => {
const nextBatch = auctionsNeedingSettling
.filter(
a =>
walletPubkey &&
a => {
const isEndedInstantSale = a.isInstantSale && a.items.length === a.auction.info.bidState.bids.length;
return walletPubkey &&
a.auctionManager.authority === walletPubkey &&
a.auction.info.ended(),
(a.auction.info.ended() || isEndedInstantSale)
}
)
.sort(
(a, b) =>
@ -213,7 +216,12 @@ export function useSettlementAuctions({
av.auction.info.bidState.bids
.map(b => b.amount.toNumber())
.reduce((acc, r) => (acc += r), 0) > 0) ||
(balance.value.uiAmount || 0) > 0.01
// FIXME: Why 0.01? If this is used,
// no auctions with lower prices (e.g. 0.0001) appear in notifications,
// thus making settlement of such an auction impossible.
// Temporarily making the number a lesser one.
// (balance.value.uiAmount || 0) > 0.01
(balance.value.uiAmount || 0) > 0.00001
) {
setValidDiscoveredEndedAuctions(old => ({
...old,

View File

@ -713,7 +713,7 @@ impl BidState {
pub fn lowest_winning_bid_is_instant_bid_price(&self, instant_sale_amount: u64) -> bool {
match self {
// In a capped auction, track the limited number of winners.
BidState::EnglishAuction { bids, max } | BidState::OpenEdition { bids, max } => {
BidState::EnglishAuction { bids, max } => {
// bids.len() - max = index of the last winner bid
bids.len() >= *max && bids[bids.len() - *max].1 >= instant_sale_amount
}