diff --git a/apps/1kv-backend-staging/templates/kusama-otv-backend.yaml b/apps/1kv-backend-staging/templates/kusama-otv-backend.yaml index 061d12ca0..418038f61 100644 --- a/apps/1kv-backend-staging/templates/kusama-otv-backend.yaml +++ b/apps/1kv-backend-staging/templates/kusama-otv-backend.yaml @@ -17,7 +17,7 @@ spec: source: repoURL: https://w3f.github.io/helm-charts/ chart: otv-backend - targetRevision: v3.0.17 + targetRevision: v3.0.18 plugin: env: - name: HELM_VALUES diff --git a/apps/1kv-backend-staging/templates/polkadot-otv-backend.yaml b/apps/1kv-backend-staging/templates/polkadot-otv-backend.yaml index 464dee06a..862d4ee1f 100644 --- a/apps/1kv-backend-staging/templates/polkadot-otv-backend.yaml +++ b/apps/1kv-backend-staging/templates/polkadot-otv-backend.yaml @@ -17,7 +17,7 @@ spec: source: repoURL: https://w3f.github.io/helm-charts/ chart: otv-backend - targetRevision: v3.0.17 + targetRevision: v3.0.18 plugin: env: - name: HELM_VALUES diff --git a/apps/1kv-backend/templates/kusama-otv-backend.yaml b/apps/1kv-backend/templates/kusama-otv-backend.yaml index 88af8384a..691ebd230 100644 --- a/apps/1kv-backend/templates/kusama-otv-backend.yaml +++ b/apps/1kv-backend/templates/kusama-otv-backend.yaml @@ -17,7 +17,7 @@ spec: source: repoURL: https://w3f.github.io/helm-charts/ chart: otv-backend - targetRevision: v3.0.17 + targetRevision: v3.0.18 plugin: env: - name: HELM_VALUES diff --git a/apps/1kv-backend/templates/polkadot-otv-backend.yaml b/apps/1kv-backend/templates/polkadot-otv-backend.yaml index 4d110ffca..b8f734647 100644 --- a/apps/1kv-backend/templates/polkadot-otv-backend.yaml +++ b/apps/1kv-backend/templates/polkadot-otv-backend.yaml @@ -17,7 +17,7 @@ spec: source: repoURL: https://w3f.github.io/helm-charts/ chart: otv-backend - targetRevision: v3.0.17 + targetRevision: v3.0.18 plugin: env: - name: HELM_VALUES diff --git a/charts/otv-backend/Chart.yaml b/charts/otv-backend/Chart.yaml index 90f1deabc..76486f549 100644 --- a/charts/otv-backend/Chart.yaml +++ b/charts/otv-backend/Chart.yaml @@ -1,5 +1,5 @@ description: 1K Validators Backend name: otv-backend -version: v3.0.17 -appVersion: v3.0.17 +version: v3.0.18 +appVersion: v3.0.18 apiVersion: v2 diff --git a/packages/common/package.json b/packages/common/package.json index 37ca7fe5b..d337a558d 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -1,6 +1,6 @@ { "name": "@1kv/common", - "version": "3.0.17", + "version": "3.0.18", "description": "Services for running the Thousand Validator Program.", "main": "build/index.js", "types": "build/index.d.ts", diff --git a/packages/common/src/db/index.ts b/packages/common/src/db/index.ts index 523d1e214..743b65ca2 100644 --- a/packages/common/src/db/index.ts +++ b/packages/common/src/db/index.ts @@ -18,6 +18,8 @@ export type NodeDetails = [ export * from "./queries"; +export * from "./models"; + export const dbLabel = { label: "DB" }; export class Db { diff --git a/packages/common/src/db/models.ts b/packages/common/src/db/models.ts index 6f9e47f63..19f9bf851 100644 --- a/packages/common/src/db/models.ts +++ b/packages/common/src/db/models.ts @@ -321,6 +321,22 @@ export const EraSchema = new Schema({ export const EraModel = mongoose.model("Era", EraSchema); +export interface Nominator { + address: string; + stash?: string; + proxy?: string; + bonded?: number; + avgStake?: number; + nominateAmount?: number; + proxyDelay?: number; + rewardDestination?: string; + newBondedAmount?: number; + current?: [{ name?: string; stash?: string; identity?: any }]; + lastNomination?: number; + createdAt?: number; + now?: number; +} + export const NominatorSchema = new Schema({ // The controller address address: String, diff --git a/packages/common/src/db/queries/Nominator.ts b/packages/common/src/db/queries/Nominator.ts index 1cb691e74..2695a1577 100644 --- a/packages/common/src/db/queries/Nominator.ts +++ b/packages/common/src/db/queries/Nominator.ts @@ -1,4 +1,4 @@ -import { CandidateModel, NominatorModel } from "../models"; +import { CandidateModel, Nominator, NominatorModel } from "../models"; import logger from "../../logger"; import { getCandidate } from "./Candidate"; @@ -24,26 +24,19 @@ export const removeStaleNominators = async ( }; /** Nominator accessor functions */ -export const addNominator = async ( - nominator: any, - // address: string, - // stash: string, - // proxy: string, - // bonded: number, - // now: number, - // proxyDelay: number, - // rewardDestination: string - - // avgStake: number, - // nominateAmount: number, - // newBondedAmount: number -): Promise => { - const { address, stash, proxy, bonded, now, proxyDelay, rewardDestination } = - nominator; - - logger.info(`(Db::addNominator) Adding ${address} at ${now}.`); - +export const addNominator = async (nominator: Nominator): Promise => { try { + const { + address, + stash, + proxy, + bonded, + now, + proxyDelay, + rewardDestination, + } = nominator; + + logger.info(`(Db::addNominator) Adding ${address} at ${now}.`); const data = await NominatorModel.findOne({ address }).lean(); if (!data) { const nominator = new NominatorModel({ @@ -53,9 +46,6 @@ export const addNominator = async ( bonded, proxyDelay, rewardDestination, - // avgStake, - // nominateAmount, - // newBondedAmount, current: [], lastNomination: 0, createdAt: now, @@ -75,19 +65,10 @@ export const addNominator = async ( bonded, proxyDelay, rewardDestination, - // avgStake, - // nominateAmount, - // newBondedAmount, }, ); } catch (e) { logger.info(JSON.stringify(e)); - logger.info(address); - logger.info(stash); - logger.info(proxy); - logger.info(bonded); - logger.info(proxyDelay); - logger.info(rewardDestination); } }; @@ -182,11 +163,15 @@ export const setLastNomination = async ( return true; }; -export const getCurrentTargets = async (address: string): Promise => { +export const getCurrentTargets = async ( + address: string, +): Promise<{ name?: string; stash?: string; identity?: any }[]> => { try { - const nominator = await NominatorModel.findOne({ address }).lean(); + const nominator = await NominatorModel.findOne({ + address, + }).lean(); if (nominator) { - return nominator?.current; + return nominator?.current || []; } else { return []; } @@ -195,10 +180,10 @@ export const getCurrentTargets = async (address: string): Promise => { } }; -export const allNominators = async (): Promise => { - return NominatorModel.find({ address: /.*/ }).lean().exec(); +export const allNominators = async (): Promise => { + return NominatorModel.find({ address: /.*/ }).lean(); }; -export const getNominator = async (stash: string): Promise => { - return NominatorModel.findOne({ stash: stash }).lean().exec(); +export const getNominator = async (stash: string): Promise => { + return NominatorModel.findOne({ stash: stash }).lean(); }; diff --git a/packages/common/src/index.ts b/packages/common/src/index.ts index ccc19ff62..b0d1082f9 100644 --- a/packages/common/src/index.ts +++ b/packages/common/src/index.ts @@ -1,6 +1,7 @@ import "@polkadot/api-augment"; import { Db } from "./db"; import * as queries from "./db/queries"; +import * as Models from "./db/models"; import * as Config from "./config"; import logger from "./logger"; import { ChainData } from "./chaindata"; @@ -23,4 +24,5 @@ export { Util, Constraints, Score, + Models, }; diff --git a/packages/core/package.json b/packages/core/package.json index 6707669a4..a7fc00e0f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@1kv/core", - "version": "3.0.17", + "version": "3.0.18", "description": "Services for running the Thousand Validator Program.", "main": "index.js", "scripts": { diff --git a/packages/core/src/nominator.ts b/packages/core/src/nominator.ts index 7c3c52edd..cc7a7e65d 100644 --- a/packages/core/src/nominator.ts +++ b/packages/core/src/nominator.ts @@ -100,7 +100,7 @@ export default class Nominator { const ledger = await api.query.staking.ledger(this.controller); if (!ledger.isSome) { logger.warn(`Account ${this.controller} is not bonded!`); - return "0x"; + return this.controller; } const { stash } = ledger.unwrap(); diff --git a/packages/core/src/scorekeeper.ts b/packages/core/src/scorekeeper.ts index 28b6eafc4..2f4878b75 100644 --- a/packages/core/src/scorekeeper.ts +++ b/packages/core/src/scorekeeper.ts @@ -9,6 +9,7 @@ import { Constants, Constraints, logger, + Models, queries, Types, Util, @@ -356,7 +357,7 @@ export default class ScoreKeeper { // const { nominationNum, newBondedAmount, targetValStake } = // await autoNumNominations(api, nom); - const nominator = { + const nominator: Models.Nominator = { address: nom.controller, stash: stash, proxy: proxy, diff --git a/packages/gateway/package.json b/packages/gateway/package.json index c1d710e1e..b6eafd695 100644 --- a/packages/gateway/package.json +++ b/packages/gateway/package.json @@ -1,6 +1,6 @@ { "name": "@1kv/gateway", - "version": "3.0.17", + "version": "3.0.18", "description": "Services for running the Thousand Validator Program.", "main": "build/index.js", "types": "build/index.d.ts", diff --git a/packages/telemetry/package.json b/packages/telemetry/package.json index 8fbb0e440..4efcac2cf 100644 --- a/packages/telemetry/package.json +++ b/packages/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@1kv/telemetry", - "version": "3.0.17", + "version": "3.0.18", "description": "Services for running the Thousand Validator Program.", "main": "build/index.js", "types": "build/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index acb1371cb..0df668b7e 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,6 +1,6 @@ { "name": "@1kv/worker", - "version": "3.0.17", + "version": "3.0.18", "description": "Services for running the Thousand Validator Program.", "main": "build/index.js", "types": "build/index.d.ts",