Skip to content
This repository was archived by the owner on Mar 18, 2025. It is now read-only.

Commit 23c728f

Browse files
committed
update setCandidateInvalidity function
1 parent 944206a commit 23c728f

File tree

7 files changed

+50
-41
lines changed

7 files changed

+50
-41
lines changed

apps/1kv-backend-staging/templates/kusama-otv-backend.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ spec:
6363
"unclaimedEraThreshold": 4,
6464
"sanctionedGeoArea": {
6565
"skip": false,
66-
"sanctionedCountries": ["RU", "IR", "CU", "KP", "SY"],
67-
"sanctionedRegions": ["Crimea", "Autonomous Republic of Crimea", "Republic of Crimea", "Luhansk", "Luhanska Oblast", "Luhanska", "Luganskaya Oblast’", "Luganskaya", "Donetsk", "Donetska Oblast", "Donetskaya Oblast’", "Donetska", "Donetskaya", "Sevastopol City", "Sevastopol", "Gorod Sevastopol" ]
66+
"sanctionedCountries": ["XXX"],
67+
"sanctionedRegions": ["XXX" ]
6868
}
6969
},
7070
"cron": {

apps/1kv-backend-staging/templates/polkadot-otv-backend.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ spec:
6262
"unclaimedEraThreshold": 1,
6363
"sanctionedGeoArea": {
6464
"skip": false,
65-
"sanctionedCountries": ["RU", "IR", "CU", "KP", "SY"],
66-
"sanctionedRegions": ["Crimea", "Autonomous Republic of Crimea", "Republic of Crimea", "Luhansk", "Luhanska Oblast", "Luhanska", "Luganskaya Oblast’", "Luganskaya", "Donetsk", "Donetska Oblast", "Donetskaya Oblast’", "Donetska", "Donetskaya", "Sevastopol City", "Sevastopol", "Gorod Sevastopol" ]
65+
"sanctionedCountries": ["XXX"],
66+
"sanctionedRegions": ["XXX" ]
6767
}
6868
},
6969
"cron": {

apps/1kv-backend/templates/kusama-otv-backend.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ spec:
6161
"unclaimedEraThreshold": 4,
6262
"sanctionedGeoArea": {
6363
"skip": false,
64-
"sanctionedCountries": ["RU", "IR", "CU", "KP", "SY"],
65-
"sanctionedRegions": ["Crimea", "Autonomous Republic of Crimea", "Republic of Crimea", "Luhansk", "Luhanska Oblast", "Luhanska", "Luganskaya Oblast’", "Luganskaya", "Donetsk", "Donetska Oblast", "Donetskaya Oblast’", "Donetska", "Donetskaya", "Sevastopol City", "Sevastopol", "Gorod Sevastopol" ]
64+
"sanctionedCountries": ["XXX"],
65+
"sanctionedRegions": ["XXX" ]
6666
}
6767
},
6868
"cron": {

apps/1kv-backend/templates/polkadot-otv-backend.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ spec:
6060
"unclaimedEraThreshold": 1,
6161
"sanctionedGeoArea": {
6262
"skip": false,
63-
"sanctionedCountries": ["RU", "IR", "CU", "KP", "SY"],
64-
"sanctionedRegions": ["Crimea", "Autonomous Republic of Crimea", "Republic of Crimea", "Luhansk", "Luhanska Oblast", "Luhanska", "Luganskaya Oblast’", "Luganskaya", "Donetsk", "Donetska Oblast", "Donetskaya Oblast’", "Donetska", "Donetskaya", "Sevastopol City", "Sevastopol", "Gorod Sevastopol" ]
63+
"sanctionedCountries": ["XXX"],
64+
"sanctionedRegions": ["XXX" ]
6565
}
6666
},
6767
"cron": {

packages/common/src/constraints/ValidityChecks.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -446,13 +446,13 @@ export const checkSanctionedGeoArea = async (
446446
!config.constraints?.sanctionedGeoArea?.sanctionedCountries?.length &&
447447
!config.constraints?.sanctionedGeoArea?.sanctionedRegions?.length
448448
) {
449-
setSanctionedGeoAreaValidity(candidate, true);
449+
await setSanctionedGeoAreaValidity(candidate, true);
450450
return true;
451451
}
452452

453453
const location = await queries.getCandidateLocation(candidate.slotId);
454454
if (!location?.region || !location?.country) {
455-
setSanctionedGeoAreaValidity(candidate, true);
455+
await setSanctionedGeoAreaValidity(candidate, true);
456456
return true;
457457
}
458458

packages/common/src/db/queries/Candidate.ts

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ export const getIdentityAddresses = async (
339339
export const setCandidateOnlineValid = async (
340340
candidate: Candidate,
341341
): Promise<void> => {
342-
setCandidateInvalidity(candidate, InvalidityReasonType.ONLINE, true);
342+
await setCandidateInvalidity(candidate, InvalidityReasonType.ONLINE, true);
343343

344344
await CandidateModel.findOneAndUpdate(
345345
{
@@ -355,7 +355,7 @@ export const setCandidateOnlineNotValid = async (
355355
candidate: Candidate,
356356
): Promise<void> => {
357357
const invalidityMessage = `Candidate ${candidate.name} offline. Offline since ${Date.now()}.`;
358-
setCandidateInvalidity(
358+
await setCandidateInvalidity(
359359
candidate,
360360
InvalidityReasonType.ONLINE,
361361
false,
@@ -827,7 +827,7 @@ export const setOnlineValidity = async (
827827
): Promise<void> => {
828828
const candidate = await getCandidateBySlotId(slotId);
829829
const invalidityMessage = `${candidate.name} offline. Last seen online ${candidate.onlineSince}.`;
830-
setCandidateInvalidity(
830+
await setCandidateInvalidity(
831831
candidate,
832832
InvalidityReasonType.ONLINE,
833833
isValid,
@@ -841,7 +841,7 @@ export const setValidateIntentionValidity = async (
841841
isValid: boolean,
842842
): Promise<void> => {
843843
const invalidityMessage = `${candidate.name} does not have a validate intention.`;
844-
setCandidateInvalidity(
844+
await setCandidateInvalidity(
845845
candidate,
846846
InvalidityReasonType.VALIDATE_INTENTION,
847847
isValid,
@@ -855,7 +855,7 @@ export const setLatestClientReleaseValidity = async (
855855
isValid: boolean,
856856
): Promise<void> => {
857857
const invalidityMessage = `${candidate.name} is not on the latest client version`;
858-
setCandidateInvalidity(
858+
await setCandidateInvalidity(
859859
candidate,
860860
InvalidityReasonType.CLIENT_UPGRADE,
861861
isValid,
@@ -870,7 +870,7 @@ export const setConnectionTimeInvalidity = async (
870870
isValid: boolean,
871871
): Promise<void> => {
872872
const invalidityMessage = `${candidate.name} has not been connected for minimum length`;
873-
setCandidateInvalidity(
873+
await setCandidateInvalidity(
874874
candidate,
875875
InvalidityReasonType.CONNECTION_TIME,
876876
isValid,
@@ -888,7 +888,7 @@ export const setIdentityInvalidity = async (
888888
const invalidityMessage = message
889889
? message
890890
: `${candidate.name} has not properly set their identity`;
891-
setCandidateInvalidity(
891+
await setCandidateInvalidity(
892892
candidate,
893893
InvalidityReasonType.IDENTITY,
894894
isValid,
@@ -903,7 +903,7 @@ export const setOfflineAccumulatedInvalidity = async (
903903
isValid: boolean,
904904
): Promise<void> => {
905905
const invalidityMessage = `${candidate.name} has been offline ${candidate.offlineAccumulated / 1000 / 60} minutes this week.`;
906-
setCandidateInvalidity(
906+
await setCandidateInvalidity(
907907
candidate,
908908
InvalidityReasonType.ACCUMULATED_OFFLINE_TIME,
909909
isValid,
@@ -919,7 +919,7 @@ export const setRewardDestinationInvalidity = async (
919919
isValid: boolean,
920920
): Promise<void> => {
921921
const invalidityMessage = `${candidate.name} does not have reward destination as Staked`;
922-
setCandidateInvalidity(
922+
await setCandidateInvalidity(
923923
candidate,
924924
InvalidityReasonType.REWARD_DESTINATION,
925925
isValid,
@@ -937,7 +937,7 @@ export const setCommissionInvalidity = async (
937937
const invalidityMessage = message
938938
? message
939939
: `${candidate.name} has not properly set their commission`;
940-
setCandidateInvalidity(
940+
await setCandidateInvalidity(
941941
candidate,
942942
InvalidityReasonType.COMMISION,
943943
isValid,
@@ -955,7 +955,7 @@ export const setSelfStakeInvalidity = async (
955955
const invalidityMessage = message
956956
? message
957957
: `${candidate.name} has not properly bonded enough self stake`;
958-
setCandidateInvalidity(
958+
await setCandidateInvalidity(
959959
candidate,
960960
InvalidityReasonType.SELF_STAKE,
961961
isValid,
@@ -973,7 +973,7 @@ export const setUnclaimedInvalidity = async (
973973
const invalidityMessage = message
974974
? message
975975
: `${candidate.name} has not properly claimed era rewards`;
976-
setCandidateInvalidity(
976+
await setCandidateInvalidity(
977977
candidate,
978978
InvalidityReasonType.UNCLAIMED_REWARDS,
979979
isValid,
@@ -991,7 +991,7 @@ export const setBlockedInvalidity = async (
991991
const invalidityMessage = message
992992
? message
993993
: `${candidate.name} blocks external nominations`;
994-
setCandidateInvalidity(
994+
await setCandidateInvalidity(
995995
candidate,
996996
InvalidityReasonType.BLOCKED,
997997
isValid,
@@ -1009,7 +1009,7 @@ export const setProviderInvalidity = async (
10091009
const invalidityMessage = message
10101010
? message
10111011
: `${candidate.name} has banned infrastructure provider`;
1012-
setCandidateInvalidity(
1012+
await setCandidateInvalidity(
10131013
candidate,
10141014
InvalidityReasonType.PROVIDER,
10151015
isValid,
@@ -1027,7 +1027,7 @@ export const setKusamaRankInvalidity = async (
10271027
const invalidityMessage = message
10281028
? message
10291029
: `${candidate.name} has not properly claimed era rewards`;
1030-
setCandidateInvalidity(
1030+
await setCandidateInvalidity(
10311031
candidate,
10321032
InvalidityReasonType.KUSAMA_RANK,
10331033
isValid,
@@ -1044,7 +1044,7 @@ export const setBeefyKeysInvalidity = async (
10441044
const invalidityMessage = message
10451045
? message
10461046
: `${candidate.name} does not have beefy keys`;
1047-
setCandidateInvalidity(
1047+
await setCandidateInvalidity(
10481048
candidate,
10491049
InvalidityReasonType.BEEFY,
10501050
isValid,
@@ -1059,7 +1059,7 @@ export const setSanctionedGeoAreaValidity = async (
10591059
isValid: boolean,
10601060
): Promise<void> => {
10611061
const invalidityMessage = `${candidate.name} in sanctioned area.`;
1062-
setCandidateInvalidity(
1062+
await setCandidateInvalidity(
10631063
candidate,
10641064
InvalidityReasonType.SANCTIONED_GEO_AREA,
10651065
isValid,

packages/common/src/db/queries/CandidateUtils.ts

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,25 +35,34 @@ export const setCandidateInvalidity = async (
3535
) => {
3636
if (skipIfNoData && !isCandidateInvaliditySet(candidate)) return;
3737

38-
const invalidityReasons = filterCandidateInvalidityFields(
39-
candidate,
40-
invalidityType,
41-
);
38+
const invalidityReason: InvalidityReason = {
39+
valid: isValid,
40+
type: invalidityType,
41+
updated: Date.now(),
42+
details: isValid ? "" : `${invalidityMessage}`,
43+
};
44+
45+
await CandidateModel.updateOne(
46+
{
47+
slotId: candidate.slotId,
48+
"invalidity.type": invalidityType,
49+
},
50+
{
51+
$set: {
52+
"invalidity.$": invalidityReason,
53+
},
54+
},
55+
).exec();
4256

43-
await CandidateModel.findOneAndUpdate(
57+
await CandidateModel.updateOne(
4458
{
4559
slotId: candidate.slotId,
60+
"invalidity.type": { $ne: invalidityType },
4661
},
4762
{
48-
invalidity: [
49-
...invalidityReasons,
50-
{
51-
valid: isValid,
52-
type: invalidityType,
53-
updated: Date.now(),
54-
details: isValid ? "" : `${invalidityMessage}`,
55-
},
56-
],
63+
$push: {
64+
invalidity: invalidityReason,
65+
},
5766
},
5867
).exec();
5968
};

0 commit comments

Comments
 (0)