mirror of
https://github.com/comit-network/xmr-btc-swap.git
synced 2025-12-20 19:06:43 -05:00
fix: Issues with 1.1.0-rc (#328)
* bump(rust): Toolchain to 1.82 * bump(tauri): Bump some Tauri peer-dependencies * fix(gui): Prefer maker with known version, bump MIN_ASB_VERSION to 1.1.0-rc.3 * amend: CHANGELOG.md
This commit is contained in:
parent
0c4de7e4cd
commit
e66881d6eb
12 changed files with 411 additions and 538 deletions
|
|
@ -1,31 +1,29 @@
|
|||
import { ExtendedMakerStatus } from "models/apiModel";
|
||||
import { isMakerOnCorrectNetwork, isMakerOutdated } from "./multiAddrUtils";
|
||||
import _ from 'lodash';
|
||||
|
||||
export function sortMakerList(list: ExtendedMakerStatus[]) {
|
||||
return list
|
||||
return _(list)
|
||||
// Filter out makers that are on the wrong network (testnet / mainnet)
|
||||
.filter(isMakerOnCorrectNetwork)
|
||||
.concat()
|
||||
// Sort by criteria
|
||||
.sort((firstEl, secondEl) => {
|
||||
// If either provider is outdated, prioritize the one that isn't
|
||||
if (isMakerOutdated(firstEl) && !isMakerOutdated(secondEl)) return 1;
|
||||
if (!isMakerOutdated(firstEl) && isMakerOutdated(secondEl)) return -1;
|
||||
|
||||
// If neither of them have a relevancy score or they are the same, sort by price
|
||||
if (firstEl.relevancy == secondEl.relevancy) {
|
||||
return firstEl.price - secondEl.price;
|
||||
}
|
||||
|
||||
// If only one of the two doesn't have a relevancy score, prioritize the one that does
|
||||
if (firstEl.relevancy == null) return 1;
|
||||
if (secondEl.relevancy == null) return -1;
|
||||
|
||||
// Otherwise, sort by relevancy score
|
||||
return secondEl.relevancy - firstEl.relevancy;
|
||||
})
|
||||
// Remove duplicate makers
|
||||
.filter((provider, index, self) =>
|
||||
index === self.findIndex((p) => p.peerId === provider.peerId)
|
||||
.orderBy(
|
||||
[
|
||||
// Prefer makers that have a 'version' attribute
|
||||
// If we don't have a version, we cannot clarify if it's outdated or not
|
||||
m => (m.version ? 0 : 1),
|
||||
// Prefer makers that are not outdated
|
||||
m => (isMakerOutdated(m) ? 1 : 0),
|
||||
// Prefer makers that have a relevancy score
|
||||
m => (m.relevancy == null ? 1 : 0),
|
||||
// Prefer makers with a higher relevancy score
|
||||
m => -(m.relevancy ?? 0),
|
||||
// Prefer makers with a lower price
|
||||
m => m.price
|
||||
],
|
||||
['asc', 'asc', 'asc', 'asc', 'asc']
|
||||
)
|
||||
// Remove duplicate makers
|
||||
.uniqBy(m => m.peerId)
|
||||
.value();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue