Skip to content

Commit

Permalink
Merge branch 'andrius/refactor' into 'main'
Browse files Browse the repository at this point in the history
Refactoring: move rewarding logic out of ftso-core

See merge request flarenetwork/ftso/ftso-scaling!146
  • Loading branch information
adg-flare committed Jan 6, 2025
2 parents c2407ee + 52c3729 commit da3b236
Show file tree
Hide file tree
Showing 151 changed files with 1,843 additions and 1,818 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// PDP (Protocol Data Provider) Response

import { AbiDataInput } from "../../../../libs/ftso-core/src/utils/ABICache";
import { FeedResultWithProof, TreeResult } from "../../../../libs/ftso-core/src/utils/MerkleTreeStructs";
import { AbiDataInput } from "../../../../libs/contracts/src/abi/AbiCache";
import { FeedResultWithProof, TreeResult } from "../../../../libs/ftso-core/src/data/MerkleTreeStructs";
import { MedianCalculationResult } from "../../../../libs/ftso-core/src/voting-types";

export enum PDPResponseStatusEnum {
Expand Down
4 changes: 2 additions & 2 deletions apps/ftso-data-provider/src/ftso-data-provider.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ import {
UseGuards,
} from "@nestjs/common";
import { ApiSecurity, ApiTags } from "@nestjs/swagger";
import { ProtocolMessageMerkleRoot } from "../../../libs/fsp-utils/src/ProtocolMessageMerkleRoot";
import { EPOCH_SETTINGS } from "../../../libs/ftso-core/src/configs/networks";
import { ProtocolMessageMerkleRoot } from "../../../libs/ftso-core/src/fsp-utils/ProtocolMessageMerkleRoot";
import { EPOCH_SETTINGS } from "../../../libs/ftso-core/src/constants";
import { ApiKeyAuthGuard } from "./auth/apikey.guard";
import {
AbiDefinitionsResponse,
Expand Down
22 changes: 11 additions & 11 deletions apps/ftso-data-provider/src/ftso-data-provider.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,24 @@ import { Injectable, InternalServerErrorException, Logger } from "@nestjs/common
import { ConfigService } from "@nestjs/config";
import { LRUCache } from "lru-cache";
import { EntityManager } from "typeorm";
import { IPayloadMessage } from "../../../libs/fsp-utils/src/PayloadMessage";
import { IPayloadMessage } from "../../../libs/ftso-core/src/fsp-utils/PayloadMessage";
import {
IProtocolMessageMerkleData,
IProtocolMessageMerkleRoot,
} from "../../../libs/fsp-utils/src/ProtocolMessageMerkleRoot";
} from "../../../libs/ftso-core/src/fsp-utils/ProtocolMessageMerkleRoot";
import { DataAvailabilityStatus, DataManager } from "../../../libs/ftso-core/src/DataManager";
import { IndexerClient } from "../../../libs/ftso-core/src/IndexerClient";
import { RewardEpochManager } from "../../../libs/ftso-core/src/RewardEpochManager";
import { ContractMethodNames } from "../../../libs/ftso-core/src/configs/contracts";
import { ContractMethodNames } from "../../../libs/contracts/src/definitions";
import {
CONTRACTS,
FTSO2_PROTOCOL_ID,
RANDOM_GENERATION_BENCHING_WINDOW,
} from "../../../libs/ftso-core/src/configs/networks";
} from "../../../libs/ftso-core/src/constants";
import { calculateResultsForVotingRound } from "../../../libs/ftso-core/src/ftso-calculation/ftso-calculation-logic";
import { CommitData, ICommitData } from "../../../libs/ftso-core/src/utils/CommitData";
import { EncodingUtils } from "../../../libs/ftso-core/src/utils/EncodingUtils";
import { FeedValueEncoder } from "../../../libs/ftso-core/src/utils/FeedValueEncoder";
import { FeedResultWithProof, MerkleTreeStructs } from "../../../libs/ftso-core/src/utils/MerkleTreeStructs";
import { IRevealData } from "../../../libs/ftso-core/src/utils/RevealData";
import { CommitData, ICommitData } from "../../../libs/ftso-core/src/data/CommitData";
import { FeedValueEncoder } from "../../../libs/ftso-core/src/data/FeedValueEncoder";
import { FeedResultWithProof, MerkleTreeStructs } from "../../../libs/ftso-core/src/data/MerkleTreeStructs";
import { IRevealData } from "../../../libs/ftso-core/src/data/RevealData";
import { errorString } from "../../../libs/ftso-core/src/utils/error";
import { retry } from "../../../libs/ftso-core/src/utils/retry";
import { Bytes32 } from "../../../libs/ftso-core/src/utils/sol-types";
Expand All @@ -30,6 +28,8 @@ import { JSONAbiDefinition } from "./dto/data-provider-responses.dto";
import { Api, FeedId } from "./feed-value-provider-api/generated/provider-api";

import { RewardEpoch } from "../../../libs/ftso-core/src/RewardEpoch";
import {AbiCache} from "../../../libs/contracts/src/abi/AbiCache";
import {CONTRACTS} from "../../../libs/contracts/src/constants";

type RoundAndAddress = string;

Expand All @@ -44,7 +44,7 @@ export class FtsoDataProviderService {

private readonly rewardEpochManager: RewardEpochManager;
private readonly dataManager: DataManager;
private readonly encodingUtils = EncodingUtils.instance;
private readonly encodingUtils = AbiCache.instance;

// Indexer top timeout margin
private readonly indexer_top_timeout: number;
Expand Down
6 changes: 3 additions & 3 deletions apps/ftso-data-provider/src/response-encoders.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { CommitData, ICommitData } from "../../../libs/ftso-core/src/utils/CommitData";
import { IPayloadMessage, PayloadMessage } from "../../../libs/fsp-utils/src/PayloadMessage";
import { IRevealData, RevealData } from "../../../libs/ftso-core/src/utils/RevealData";
import { CommitData, ICommitData } from "../../../libs/ftso-core/src/data/CommitData";
import { IPayloadMessage, PayloadMessage } from "../../../libs/ftso-core/src/fsp-utils/PayloadMessage";
import { IRevealData, RevealData } from "../../../libs/ftso-core/src/data/RevealData";

/**
* Encodes commit data payload message to bytes in 0x-prefixed hex string format
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { RewardEpochInfo } from "../../../../libs/ftso-core/src/utils/stat-info/reward-epoch-info";
import { RewardEpochInfo } from "../../../../libs/fsp-rewards/src/utils/stat-info/reward-epoch-info";

export interface IncrementalCalculationState {
rewardEpochId: number;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
import path from "path/posix";
import { CALCULATIONS_FOLDER } from "../../../../libs/ftso-core/src/configs/networks";
import { FDC_ATTESTATION_APPEARANCES_FILE } from "../../../../libs/ftso-core/src/utils/stat-info/constants";
import { deserializeDataForRewardCalculation } from "../../../../libs/ftso-core/src/utils/stat-info/reward-calculation-data";
import { deserializeRewardEpochInfo } from "../../../../libs/ftso-core/src/utils/stat-info/reward-epoch-info";
import { AttestationRequest } from "../../../../libs/ftso-core/src/events/AttestationRequest";
import { FDC_ATTESTATION_APPEARANCES_FILE } from "../../../../libs/fsp-rewards/src/utils/stat-info/constants";
import { deserializeDataForRewardCalculation } from "../../../../libs/fsp-rewards/src/utils/stat-info/reward-calculation-data";
import { deserializeRewardEpochInfo } from "../../../../libs/fsp-rewards/src/utils/stat-info/reward-epoch-info";
import { AttestationRequest } from "../../../../libs/contracts/src/events/AttestationRequest";
import {CALCULATIONS_FOLDER} from "../../../../libs/fsp-rewards/src/constants";

export interface FDCAttestationRequestAppearances {
attestationRequestId: string;
Expand Down
19 changes: 9 additions & 10 deletions apps/ftso-reward-calculation-process/src/libs/calculator-utils.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
import { Logger } from "@nestjs/common";
import { DataManagerForRewarding } from "../../../../libs/ftso-core/src/DataManagerForRewarding";
import { IndexerClientForRewarding } from "../../../../libs/ftso-core/src/IndexerClientForRewarding";
import { DataManagerForRewarding } from "../../../../libs/fsp-rewards/src/DataManagerForRewarding";
import { IndexerClientForRewarding } from "../../../../libs/fsp-rewards/src/IndexerClientForRewarding";
import {
CALCULATIONS_FOLDER,
CONTRACTS,
EPOCH_SETTINGS,
FUTURE_VOTING_ROUNDS,
RANDOM_GENERATION_BENCHING_WINDOW,
} from "../../../../libs/ftso-core/src/configs/networks";
import { RewardEpochStarted } from "../../../../libs/ftso-core/src/events";
import { prepareDataForRewardCalculationsForRange } from "../../../../libs/ftso-core/src/reward-calculation/reward-calculation";
import { fixOffersForRandomFeedSelection } from "../../../../libs/ftso-core/src/reward-calculation/reward-offers";
} from "../../../../libs/ftso-core/src/constants";
import { RewardEpochStarted } from "../../../../libs/contracts/src/events";
import { prepareDataForRewardCalculationsForRange } from "../../../../libs/fsp-rewards/src/reward-calculation/reward-calculation";
import { fixOffersForRandomFeedSelection } from "../../../../libs/fsp-rewards/src/reward-calculation/reward-offers";
import { sleepFor } from "../../../../libs/ftso-core/src/utils/retry";
import { serializeRewardEpochInfo } from "../../../../libs/ftso-core/src/utils/stat-info/reward-epoch-info";
import { serializeRewardEpochInfo } from "../../../../libs/fsp-rewards/src/utils/stat-info/reward-epoch-info";
import { IncrementalCalculationState } from "../interfaces/IncrementalCalculationState";
import { extractRandomNumbers } from "./random-number-fixing-utils";
import { initializeTemplateOffers } from "./offer-utils";
import {CALCULATIONS_FOLDER, FUTURE_VOTING_ROUNDS} from "../../../../libs/fsp-rewards/src/constants";
import {CONTRACTS} from "../../../../libs/contracts/src/constants";

/**
* Checks into the indexer for the latest reward epoch start event and returns the reward epoch id.
Expand Down
12 changes: 6 additions & 6 deletions apps/ftso-reward-calculation-process/src/libs/claim-utils.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import { Logger } from "@nestjs/common";
import { DataManagerForRewarding } from "../../../../libs/ftso-core/src/DataManagerForRewarding";
import { RANDOM_GENERATION_BENCHING_WINDOW } from "../../../../libs/ftso-core/src/configs/networks";
import { DataManagerForRewarding } from "../../../../libs/fsp-rewards/src/DataManagerForRewarding";
import { RANDOM_GENERATION_BENCHING_WINDOW } from "../../../../libs/ftso-core/src/constants";
import {
aggregateRewardClaimsInStorage,
partialRewardClaimsForVotingRound,
} from "../../../../libs/ftso-core/src/reward-calculation/reward-calculation";
import { fixOffersForRandomFeedSelection } from "../../../../libs/ftso-core/src/reward-calculation/reward-offers";
} from "../../../../libs/fsp-rewards/src/reward-calculation/reward-calculation";
import { fixOffersForRandomFeedSelection } from "../../../../libs/fsp-rewards/src/reward-calculation/reward-offers";
import { RewardEpochDuration } from "../../../../libs/ftso-core/src/utils/RewardEpochDuration";
import { sleepFor } from "../../../../libs/ftso-core/src/utils/retry";
import {
getIncrementalCalculationsTempRewards,
serializeIncrementalCalculationsTempRewards,
} from "../../../../libs/ftso-core/src/utils/stat-info/incremental-calculation-temp-rewards";
import { recordProgress } from "../../../../libs/ftso-core/src/utils/stat-info/progress";
} from "../../../../libs/fsp-rewards/src/utils/stat-info/incremental-calculation-temp-rewards";
import { recordProgress } from "../../../../libs/fsp-rewards/src/utils/stat-info/progress";
import { IncrementalCalculationState } from "../interfaces/IncrementalCalculationState";
import { OptionalCommandOptions } from "../interfaces/OptionalCommandOptions";
import { extractRandomNumbers, processRandomNumberFixingRange } from "./random-number-fixing-utils";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
import { Logger } from "@nestjs/common";
import * as workerPool from "workerpool";
import { RewardEpochManager } from "../../../../libs/ftso-core/src/RewardEpochManager";
import { EPOCH_SETTINGS, FUTURE_VOTING_ROUNDS } from "../../../../libs/ftso-core/src/configs/networks";
import { fixOffersForRandomFeedSelection } from "../../../../libs/ftso-core/src/reward-calculation/reward-offers";
import { EPOCH_SETTINGS } from "../../../../libs/ftso-core/src/constants";
import { fixOffersForRandomFeedSelection } from "../../../../libs/fsp-rewards/src/reward-calculation/reward-offers";
import { RewardEpochDuration } from "../../../../libs/ftso-core/src/utils/RewardEpochDuration";
import {
cleanupVotingRoundFolder,
createVotingRoundFolder,
} from "../../../../libs/ftso-core/src/utils/stat-info/storage";
} from "../../../../libs/fsp-rewards/src/utils/stat-info/storage";
import { IncrementalCalculationState } from "../interfaces/IncrementalCalculationState";
import { OptionalCommandOptions } from "../interfaces/OptionalCommandOptions";
import { initializeTemplateOffers } from "./offer-utils";
import { extractRandomNumbers } from "./random-number-fixing-utils";
import {FUTURE_VOTING_ROUNDS} from "../../../../libs/fsp-rewards/src/constants";

// incremental

Expand Down
10 changes: 5 additions & 5 deletions apps/ftso-reward-calculation-process/src/libs/offer-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@ import {
granulatedPartialOfferMapForFDC,
granulatedPartialOfferMapForFastUpdates,
granulatedPartialOfferMapForRandomFeedSelection,
} from "../../../../libs/ftso-core/src/reward-calculation/reward-offers";
} from "../../../../libs/fsp-rewards/src/reward-calculation/reward-offers";
import {
IFUPartialRewardOfferForRound,
IPartialRewardOfferForRound
} from "../../../../libs/ftso-core/src/utils/PartialRewardOffer";
} from "../../../../libs/fsp-rewards/src/utils/PartialRewardOffer";
import { RewardEpochDuration } from "../../../../libs/ftso-core/src/utils/RewardEpochDuration";
import { FDC_OFFERS_FILE, FU_OFFERS_FILE, OFFERS_FILE } from "../../../../libs/ftso-core/src/utils/stat-info/constants";
import { serializeGranulatedPartialOfferMap, serializeGranulatedPartialOfferMapForFDC } from "../../../../libs/ftso-core/src/utils/stat-info/granulated-partial-offers-map";
import { FDC_OFFERS_FILE, FU_OFFERS_FILE, OFFERS_FILE } from "../../../../libs/fsp-rewards/src/utils/stat-info/constants";
import { serializeGranulatedPartialOfferMap, serializeGranulatedPartialOfferMapForFDC } from "../../../../libs/fsp-rewards/src/utils/stat-info/granulated-partial-offers-map";
import {
RewardEpochInfo,
deserializeRewardEpochInfo,
} from "../../../../libs/ftso-core/src/utils/stat-info/reward-epoch-info";
} from "../../../../libs/fsp-rewards/src/utils/stat-info/reward-epoch-info";
import { OptionalCommandOptions } from "../interfaces/OptionalCommandOptions";
import { extractRandomNumbers } from "./random-number-fixing-utils";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import { soliditySha3 } from "web3-utils";
import {
deserializeDataForRewardCalculation,
writeDataForRewardCalculation,
} from "../../../../libs/ftso-core/src/utils/stat-info/reward-calculation-data";
import { deserializeRewardEpochInfo } from "../../../../libs/ftso-core/src/utils/stat-info/reward-epoch-info";
} from "../../../../libs/fsp-rewards/src/utils/stat-info/reward-calculation-data";
import { deserializeRewardEpochInfo } from "../../../../libs/fsp-rewards/src/utils/stat-info/reward-epoch-info";

export function extractRandomNumbers(
rewardEpochId: number,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { Logger } from "@nestjs/common";
import * as workerPool from "workerpool";
import { RewardEpochDuration } from "../../../../libs/ftso-core/src/utils/RewardEpochDuration";
import { recordProgress } from "../../../../libs/ftso-core/src/utils/stat-info/progress";
import { deserializeRewardEpochInfo } from "../../../../libs/ftso-core/src/utils/stat-info/reward-epoch-info";
import { recordProgress } from "../../../../libs/fsp-rewards/src/utils/stat-info/progress";
import { deserializeRewardEpochInfo } from "../../../../libs/fsp-rewards/src/utils/stat-info/reward-epoch-info";
import { OptionalCommandOptions } from "../interfaces/OptionalCommandOptions";
import { calculateClaimsAndAggregate } from "./claim-utils";
import { DataManagerForRewarding } from "../../../../libs/ftso-core/src/DataManagerForRewarding";
import { DataManagerForRewarding } from "../../../../libs/fsp-rewards/src/DataManagerForRewarding";

export async function runCalculateRewardClaimsTopJob(options: OptionalCommandOptions): Promise<RewardEpochDuration> {
const logger = new Logger();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
import { Logger } from "@nestjs/common";
import * as workerPool from "workerpool";
import { DataManagerForRewarding } from "../../../../libs/ftso-core/src/DataManagerForRewarding";
import { DataManagerForRewarding } from "../../../../libs/fsp-rewards/src/DataManagerForRewarding";
import { BlockAssuranceResult } from "../../../../libs/ftso-core/src/IndexerClient";
import { IndexerClientForRewarding } from "../../../../libs/ftso-core/src/IndexerClientForRewarding";
import { FUInflationRewardsOffered } from "../../../../libs/ftso-core/src/events/FUInflationRewardsOffered";
import { IncentiveOffered } from "../../../../libs/ftso-core/src/events/IncentiveOffered";
import { initializeRewardEpochStorage } from "../../../../libs/ftso-core/src/reward-calculation/reward-calculation";
import { IndexerClientForRewarding } from "../../../../libs/fsp-rewards/src/IndexerClientForRewarding";
import { FUInflationRewardsOffered } from "../../../../libs/contracts/src/events/FUInflationRewardsOffered";
import { IncentiveOffered } from "../../../../libs/contracts/src/events/IncentiveOffered";
import { initializeRewardEpochStorage } from "../../../../libs/fsp-rewards/src/reward-calculation/reward-calculation";
import { RewardEpochDuration } from "../../../../libs/ftso-core/src/utils/RewardEpochDuration";
import { recordProgress } from "../../../../libs/ftso-core/src/utils/stat-info/progress";
import { recordProgress } from "../../../../libs/fsp-rewards/src/utils/stat-info/progress";
import {
RewardCalculationStatus,
setRewardCalculationStatus,
} from "../../../../libs/ftso-core/src/utils/stat-info/reward-calculation-status";
} from "../../../../libs/fsp-rewards/src/utils/stat-info/reward-calculation-status";
import {
getRewardEpochInfo,
serializeRewardEpochInfo,
} from "../../../../libs/ftso-core/src/utils/stat-info/reward-epoch-info";
import { destroyStorage } from "../../../../libs/ftso-core/src/utils/stat-info/storage";
} from "../../../../libs/fsp-rewards/src/utils/stat-info/reward-epoch-info";
import { destroyStorage } from "../../../../libs/fsp-rewards/src/utils/stat-info/storage";
import { OptionalCommandOptions } from "../interfaces/OptionalCommandOptions";
import { calculationOfRewardCalculationDataForRange } from "./calculator-utils";
import { RewardEpochManager } from "../../../../libs/ftso-core/src/RewardEpochManager";
import { FDCInflationRewardsOffered } from "../../../../libs/ftso-core/src/events/FDCInflationRewardsOffered";
import { FDCInflationRewardsOffered } from "../../../../libs/contracts/src/events/FDCInflationRewardsOffered";

export async function runCalculateRewardCalculationTopJob(
indexerClient: IndexerClientForRewarding,
Expand Down
Loading

0 comments on commit da3b236

Please sign in to comment.