diff --git a/package.json b/package.json index 2e3a8fdd6f..6335fb7025 100644 --- a/package.json +++ b/package.json @@ -12,13 +12,13 @@ "packages/*" ], "resolutions": { - "@polkadot/api": "^4.15.1", - "@polkadot/api-contract": "^4.15.1", + "@polkadot/api": "^4.15.2-2", + "@polkadot/api-contract": "^4.15.2-2", "@polkadot/hw-ledger": "^6.9.1", "@polkadot/keyring": "^6.9.1", "@polkadot/networks": "^6.9.1", "@polkadot/phishing": "^0.6.206", - "@polkadot/types": "^4.15.1", + "@polkadot/types": "^4.15.2-2", "@polkadot/util": "^6.9.1", "@polkadot/util-crypto": "^6.9.1", "@polkadot/wasm-crypto": "^4.0.2", diff --git a/packages/apps-config/src/ci/util.ts b/packages/apps-config/src/ci/util.ts index 7993b91e48..df70616c9f 100644 --- a/packages/apps-config/src/ci/util.ts +++ b/packages/apps-config/src/ci/util.ts @@ -55,6 +55,7 @@ export function checkEndpoints (issueFile: string, failures: string[]): void { api = new ApiPromise({ provider, throwOnConnect: true, + throwOnUnknown: true, typesBundle, typesChain }); diff --git a/packages/page-accounts/package.json b/packages/page-accounts/package.json index b7d72225d6..3869650278 100644 --- a/packages/page-accounts/package.json +++ b/packages/page-accounts/package.json @@ -8,7 +8,7 @@ "@babel/runtime": "^7.14.0", "@polkadot/phishing": "^0.6.206", "@polkadot/react-components": "^0.93.2-29", - "@polkadot/vanitygen": "^0.38.1", + "@polkadot/vanitygen": "^0.39.1", "detect-browser": "^5.2.0", "file-saver": "^2.0.5" }, diff --git a/packages/page-contracts/package.json b/packages/page-contracts/package.json index c3be25c31a..9f40016872 100644 --- a/packages/page-contracts/package.json +++ b/packages/page-contracts/package.json @@ -6,6 +6,6 @@ "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.14.0", - "@polkadot/api-contract": "^4.15.1" + "@polkadot/api-contract": "^4.15.2-2" } } diff --git a/packages/page-parachains/src/Auctions/Auction.tsx b/packages/page-parachains/src/Auctions/Auction.tsx index 3e53fefa1d..2d08debfd0 100644 --- a/packages/page-parachains/src/Auctions/Auction.tsx +++ b/packages/page-parachains/src/Auctions/Auction.tsx @@ -2,9 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 import type { ParaId } from '@polkadot/types/interfaces'; -import type { AuctionInfo, Campaigns, WinnerData, Winning } from '../types'; +import type { AuctionInfo, Campaign, Campaigns, WinnerData, Winning } from '../types'; -import React, { useCallback, useRef } from 'react'; +import React, { useCallback, useMemo, useRef } from 'react'; import { Table } from '@polkadot/react-components'; import { useApi, useCall } from '@polkadot/react-hooks'; @@ -34,29 +34,39 @@ function Auction ({ auctionInfo, campaigns, className, winningData }: Props): Re [t('value')] ]); + const loans = useMemo( + (): Campaign[] | undefined => { + if (newRaise && auctionInfo && auctionInfo.leasePeriod && campaigns.funds) { + const leasePeriodStart = auctionInfo.leasePeriod; + const leasePeriodEnd = leasePeriodStart.add(rangeMax); + + return campaigns.funds + .filter(({ firstSlot, lastSlot, paraId }) => + newRaise.some((n) => n.eq(paraId)) && + firstSlot.gte(leasePeriodStart) && + lastSlot.lte(leasePeriodEnd) + ) + .sort((a, b) => b.value.cmp(a.value)); + } else { + return undefined; + } + }, + [auctionInfo, campaigns, newRaise, rangeMax] + ); + const interleave = useCallback( (winners: WinnerData[], asIs: boolean): WinnerData[] => { - if (asIs || !newRaise || !auctionInfo?.leasePeriod) { + if (asIs || !newRaise || !auctionInfo?.leasePeriod || !loans) { return winners; } - const leasePeriod = auctionInfo.leasePeriod; - const leasePeriodEnd = leasePeriod.add(rangeMax); - const sorted = (campaigns.funds || []) - .filter(({ firstSlot, lastSlot, paraId }) => - newRaise.some((n) => n.eq(paraId)) && - firstSlot.gte(leasePeriod) && - lastSlot.lte(leasePeriodEnd) - ) - .sort((a, b) => b.value.cmp(a.value)); - return winners - .concat(...sorted.filter(({ firstSlot, lastSlot, paraId, value }) => + .concat(...loans.filter(({ firstSlot, lastSlot, paraId, value }) => !winners.some((w) => w.firstSlot.eq(firstSlot) && w.lastSlot.eq(lastSlot) ) && - !sorted.some((e) => + !loans.some((e) => !paraId.eq(e.paraId) && firstSlot.eq(e.firstSlot) && lastSlot.eq(e.lastSlot) && @@ -64,7 +74,7 @@ function Auction ({ auctionInfo, campaigns, className, winningData }: Props): Re ) )) .map((w): WinnerData => - sorted.find(({ firstSlot, lastSlot, value }) => + loans.find(({ firstSlot, lastSlot, value }) => w.firstSlot.eq(firstSlot) && w.lastSlot.eq(lastSlot) && w.value.lt(value) @@ -76,7 +86,7 @@ function Auction ({ auctionInfo, campaigns, className, winningData }: Props): Re : a.firstSlot.cmp(b.firstSlot) ); }, - [auctionInfo, campaigns, newRaise, rangeMax] + [auctionInfo, loans, newRaise] ); return ( @@ -92,7 +102,7 @@ function Auction ({ auctionInfo, campaigns, className, winningData }: Props): Re header={headerRef.current} noBodyTag > - {auctionInfo && newRaise && winningData && ( + {auctionInfo && auctionInfo.leasePeriod && winningData && loans && ( winningData.length ? winningData.map(({ blockNumber, winners }, round) => ( @@ -108,7 +118,7 @@ function Auction ({ auctionInfo, campaigns, className, winningData }: Props): Re ))} )) - : newRaise && (newRaise.length !== 0) && ( + : (loans.length !== 0) && ( {interleave([], false).map((value, index) => (