Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge feat/governance-v2 into development #1104

Merged
merged 39 commits into from
Jul 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
3552f89
SERVICES-1379: compute undistributedBoostedRewards including unclaime…
dragos-rebegea Mar 3, 2023
5e51073
SERVICES-1379: make the code more readable
dragos-rebegea Mar 3, 2023
e1d1add
SERVICES-1554: update user services to use GetOrSet and ErrorLoggerAs…
claudiulataretu Jun 6, 2023
669a50b
SERVICES-1554: update user energy to use GetOrSet decorator
claudiulataretu Jun 6, 2023
d2452d1
SERVICES-1554: uncomment decorators
claudiulataretu Jun 7, 2023
1d20b17
SERVICES-1554: fix user metaEsdt token type
claudiulataretu Jun 7, 2023
fb88eef
SERVICES-1554: remove dependencies of GenericResolver from user resol…
claudiulataretu Jun 7, 2023
1e7129e
SERVICES-1554: refactor user service spec
claudiulataretu Jun 7, 2023
b27a33a
Merge pull request #1067 from multiversx/SERVICES-1554-user-module
claudiulataretu Jun 8, 2023
760c364
Merge pull request #1070 from multiversx/development
claudiulataretu Jun 8, 2023
7afc483
Merge pull request #1076 from multiversx/development
claudiulataretu Jun 19, 2023
3e44144
SERVICES-1573: remove time constraint from pd_close_minute
claudiulataretu Jun 21, 2023
6b31942
SERVICES-1573: add method to get block by nonce
claudiulataretu Jun 21, 2023
f494245
SERVICES-1573: use time interval to get price discovery data
claudiulataretu Jun 21, 2023
961c925
SERVICES-1573: denominate PD lauched token price from rabbitmq handler
claudiulataretu Jun 21, 2023
c61bae7
Merge branch 'main' into merge/main-into-feat-code-refactor
claudiulataretu Jun 22, 2023
c0596a9
Merge pull request #1079 from multiversx/merge/main-into-feat-code-re…
claudiulataretu Jun 22, 2023
2c5f08d
SERVICES-1573: use accepted token decimals for lauched token price de…
claudiulataretu Jun 22, 2023
33d3c96
Merge pull request #1082 from multiversx/development
claudiulataretu Jun 26, 2023
c2a04d5
Merge pull request #1084 from multiversx/development
claudiulataretu Jun 26, 2023
9540c04
Merge pull request #1086 from multiversx/development
claudiulataretu Jun 27, 2023
0a1d809
Merge pull request #1078 from multiversx/SERVICES-1573-price-discover…
claudiulataretu Jun 27, 2023
f663edc
Merge pull request #1090 from multiversx/feat/code-refactor-with-deco…
claudiulataretu Jun 27, 2023
9ffccc0
SERVICES-1379: Merge branch 'main' into SERVICES-1379
dragos-rebegea Jul 6, 2023
aaddc93
SERVICES-1379: add tests
dragos-rebegea Jul 10, 2023
9bb1ed4
Merge branch 'main' into merge/main-into-development
claudiulataretu Jul 10, 2023
bb398e5
Merge pull request #1093 from multiversx/merge/main-into-development
claudiulataretu Jul 10, 2023
5c4de31
SERVICES-1379: fixes after review
dragos-rebegea Jul 10, 2023
81158b1
MEX-316: governance implementation
dragos-rebegea Jul 12, 2023
782613a
MEX-316: fixes and add resolver fields for user related info
dragos-rebegea Jul 13, 2023
82bab4e
SERVICES-1379: remove farm v2 getter
dragos-rebegea Jul 14, 2023
555a353
Merge pull request #1096 from multiversx/SERVICES-1379
dragos-rebegea Jul 14, 2023
1b9d179
Merge pull request #1097 from multiversx/main
claudiulataretu Jul 14, 2023
e22e7c9
MEX-316: cleaner hasVoted field implementation
dragos-rebegea Jul 14, 2023
52c9ba6
MEX-316: cleaner hasVoted field implementation
dragos-rebegea Jul 14, 2023
6e4773d
MEX-316: registerEnumType GovernanceProposalStatus
dragos-rebegea Jul 14, 2023
938f9b6
MEX-316: fix imports
dragos-rebegea Jul 14, 2023
5618622
MEX-316: remove unused argument
dragos-rebegea Jul 14, 2023
8614afc
Merge pull request #1095 from multiversx/MEX-316
dragos-rebegea Jul 14, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
775 changes: 775 additions & 0 deletions src/abis/governance-v2.abi.json

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion src/config/default.json
Original file line number Diff line number Diff line change
Expand Up @@ -505,7 +505,8 @@
"energyUpdate": "./src/abis/energy-update.abi.json",
"tokenUnstake": "./src/abis/token-unstake.abi.json",
"lockedTokenWrapper": "./src/abis/locked-token-wrapper.abi.json",
"escrow": "./src/abis/lkmex-transfer.abi.json"
"escrow": "./src/abis/lkmex-transfer.abi.json",
"governance": "./src/abis/governance-v2.abi.json"
},
"cron": {
"transactionCollectorMaxHyperblocks": 10,
Expand Down
8 changes: 7 additions & 1 deletion src/config/devnet.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,13 @@
"energyUpdate": "erd1qqqqqqqqqqqqqpgqqns0u3hw0e3j0km9h77emuear4xq7k7fd8ss0cwgja",
"tokenUnstake": "erd1qqqqqqqqqqqqqpgqnysvq99c2t4a9pvvv22elnl6p73el8vw0n4spyfv7p",
"lockedTokenWrapper": "erd1qqqqqqqqqqqqqpgq9ej9vcnr38l69rgkc735kgv0qlu2ptrsd8ssu9rwtu",
"escrow": "erd1qqqqqqqqqqqqqpgqz0wkk0j6y4h0mcxfxsg023j4x5sfgrmz0n4s4swp7a"
"escrow": "erd1qqqqqqqqqqqqqpgqz0wkk0j6y4h0mcxfxsg023j4x5sfgrmz0n4s4swp7a",
"governance": {
"energy": [
"erd1qqqqqqqqqqqqqpgqu5u5kgmjm067dhwdfe4l3flwmadm2nqlczfskufug3"
],
"token": []
}
},
"farms": {
"v1.2": [],
Expand Down
54 changes: 54 additions & 0 deletions src/modules/farm/mocks/farm.v2.abi.service.mock.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import { FarmAbiServiceV2 } from '../v2/services/farm.v2.abi.service';
import { FarmAbiServiceMock } from './farm.abi.service.mock';
import { IFarmAbiServiceV2 } from '../v2/services/interfaces';
import { BoostedYieldsFactors } from '../models/farm.v2.model';

export class FarmAbiServiceMockV2
extends FarmAbiServiceMock
implements IFarmAbiServiceV2
{
async lastUndistributedBoostedRewardsCollectWeek(
farmAddress: string,
): Promise<number> {
return 1;

Check warning on line 13 in src/modules/farm/mocks/farm.v2.abi.service.mock.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/mocks/farm.v2.abi.service.mock.ts#L13

Added line #L13 was not covered by tests
}
async undistributedBoostedRewards(farmAddress: string): Promise<string> {
return '5000';

Check warning on line 16 in src/modules/farm/mocks/farm.v2.abi.service.mock.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/mocks/farm.v2.abi.service.mock.ts#L16

Added line #L16 was not covered by tests
}
async remainingBoostedRewardsToDistribute(
farmAddress: string,
week: number,
): Promise<string> {
return '1000';

Check warning on line 22 in src/modules/farm/mocks/farm.v2.abi.service.mock.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/mocks/farm.v2.abi.service.mock.ts#L22

Added line #L22 was not covered by tests
}

accumulatedRewardsForWeek(scAddress: string, week: number): Promise<string> {
throw new Error('Method not implemented.');

Check warning on line 26 in src/modules/farm/mocks/farm.v2.abi.service.mock.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/mocks/farm.v2.abi.service.mock.ts#L26

Added line #L26 was not covered by tests
}

boostedYieldsFactors(farmAddress: string): Promise<BoostedYieldsFactors> {
throw new Error('Method not implemented.');

Check warning on line 30 in src/modules/farm/mocks/farm.v2.abi.service.mock.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/mocks/farm.v2.abi.service.mock.ts#L30

Added line #L30 was not covered by tests
}

boostedYieldsRewardsPercenatage(farmAddress: string): Promise<number> {
throw new Error('Method not implemented.');

Check warning on line 34 in src/modules/farm/mocks/farm.v2.abi.service.mock.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/mocks/farm.v2.abi.service.mock.ts#L34

Added line #L34 was not covered by tests
}

energyFactoryAddress(farmAddress: string): Promise<string> {
throw new Error('Method not implemented.');

Check warning on line 38 in src/modules/farm/mocks/farm.v2.abi.service.mock.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/mocks/farm.v2.abi.service.mock.ts#L38

Added line #L38 was not covered by tests
}

lockEpochs(farmAddress: string): Promise<number> {
throw new Error('Method not implemented.');

Check warning on line 42 in src/modules/farm/mocks/farm.v2.abi.service.mock.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/mocks/farm.v2.abi.service.mock.ts#L42

Added line #L42 was not covered by tests
}

lockingScAddress(farmAddress: string): Promise<string> {
throw new Error('Method not implemented.');

Check warning on line 46 in src/modules/farm/mocks/farm.v2.abi.service.mock.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/mocks/farm.v2.abi.service.mock.ts#L46

Added line #L46 was not covered by tests
}
}


export const FarmAbiServiceProviderV2 = {
provide: FarmAbiServiceV2,
useClass: FarmAbiServiceMockV2,
};
2 changes: 2 additions & 0 deletions src/modules/farm/models/farm.v2.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ export class FarmModelV2 extends BaseFarmModel {
@Field()
undistributedBoostedRewards: string;
@Field()
undistributedBoostedRewardsClaimed: string;
@Field()
energyFactoryAddress: string;
@Field()
rewardType: FarmRewardType;
Expand Down
81 changes: 81 additions & 0 deletions src/modules/farm/specs/farm.v2.compute.service.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import { BigNumber } from 'bignumber.js';
import { Test, TestingModule } from '@nestjs/testing';
import { FarmComputeServiceV2 } from '../v2/services/farm.v2.compute.service';
import { CommonAppModule } from '../../../common.app.module';
import { CachingModule } from '../../../services/caching/cache.module';
import { FarmAbiServiceProviderV2 } from '../mocks/farm.v2.abi.service.mock';
import { FarmServiceV2 } from '../v2/services/farm.v2.service';
import { MXDataApiServiceProvider } from '../../../services/multiversx-communication/mx.data.api.service.mock';
import { WrapAbiServiceProvider } from '../../wrapping/mocks/wrap.abi.service.mock';
import { RouterAbiServiceProvider } from '../../router/mocks/router.abi.service.mock';
import { TokenComputeService } from '../../tokens/services/token.compute.service';
import { TokenGetterServiceProvider } from '../../tokens/mocks/token.getter.service.mock';
import { PairComputeServiceProvider } from '../../pair/mocks/pair.compute.service.mock';
import { PairAbiServiceProvider } from '../../pair/mocks/pair.abi.service.mock';
import { PairService } from '../../pair/services/pair.service';
import { ContextGetterServiceProvider } from '../../../services/context/mocks/context.getter.service.mock';
import { MXApiServiceProvider } from '../../../services/multiversx-communication/mx.api.service.mock';
import {
WeekTimekeepingAbiServiceProvider,
} from '../../../submodules/week-timekeeping/mocks/week.timekeeping.abi.service.mock';
import {
WeekTimekeepingComputeService,
} from '../../../submodules/week-timekeeping/services/week-timekeeping.compute.service';
import {
WeeklyRewardsSplittingAbiServiceProvider,
} from '../../../submodules/weekly-rewards-splitting/mocks/weekly.rewards.splitting.abi.mock';
import {
WeeklyRewardsSplittingComputeService,
} from '../../../submodules/weekly-rewards-splitting/services/weekly-rewards-splitting.compute.service';
import { EnergyAbiServiceProvider } from '../../energy/mocks/energy.abi.service.mock';

describe('FarmServiceV2', () => {
let module: TestingModule;

beforeEach(async () => {
module = await Test.createTestingModule({
imports: [CommonAppModule, CachingModule],
providers: [
MXApiServiceProvider,
ContextGetterServiceProvider,
PairService,
PairAbiServiceProvider,
PairComputeServiceProvider,
TokenGetterServiceProvider,
TokenComputeService,
RouterAbiServiceProvider,
WrapAbiServiceProvider,
MXDataApiServiceProvider,
WeekTimekeepingAbiServiceProvider,
WeekTimekeepingComputeService,
WeeklyRewardsSplittingAbiServiceProvider,
EnergyAbiServiceProvider,
WeeklyRewardsSplittingComputeService,
FarmComputeServiceV2,
FarmAbiServiceProviderV2,
FarmServiceV2,
],
}).compile();
});
it("should correctly calculate total rewards", async () => {
const service = module.get<FarmComputeServiceV2>(
FarmComputeServiceV2,
);
const result = await service.undistributedBoostedRewards('erd18h5dulxp5zdp80qjndd2w25kufx0rm5yqd2h7ajrfucjhr82y8vqyq0hye', 10);
const expectedTotal = new BigNumber('5000').plus('4000').integerValue().toFixed(); // 4 weeks * 1000
expect(result).toEqual(expectedTotal);
// expect(mockFarmAbi.undistributedBoostedRewards).toHaveBeenCalled();
// expect(mockFarmAbi.lastUndistributedBoostedRewardsCollectWeek).toHaveBeenCalled();
// expect(mockFarmAbi.remainingBoostedRewardsToDistribute).toHaveBeenCalledTimes(4);
});
// it("should return undistributedBoostedRewards if firstWeek > lastWeek", async () => {
// const service = module.get<FarmComputeServiceV2>(
// FarmComputeServiceV2,
// );
// const result = await service.computeUndistributedBoostedRewards('erd18h5dulxp5zdp80qjndd2w25kufx0rm5yqd2h7ajrfucjhr82y8vqyq0hye', 5);
// expect(result).toEqual('5000');
// // expect(mockFarmAbi.undistributedBoostedRewards).toHaveBeenCalled();
// // expect(mockFarmAbi.lastUndistributedBoostedRewardsCollectWeek).toHaveBeenCalled();
// }, 10000);
});

18 changes: 16 additions & 2 deletions src/modules/farm/v2/farm.v2.resolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,16 @@ import { Parent, ResolveField, Resolver } from '@nestjs/graphql';
import { BoostedYieldsFactors, FarmModelV2 } from '../models/farm.v2.model';
import { FarmResolver } from '../base-module/farm.resolver';
import { FarmServiceV2 } from './services/farm.v2.service';
import { GlobalInfoByWeekModel } from '../../../submodules/weekly-rewards-splitting/models/weekly-rewards-splitting.model';
import {
GlobalInfoByWeekModel,
} from '../../../submodules/weekly-rewards-splitting/models/weekly-rewards-splitting.model';
import { WeekTimekeepingModel } from '../../../submodules/week-timekeeping/models/week-timekeeping.model';
import { FarmComputeServiceV2 } from './services/farm.v2.compute.service';
import { constantsConfig } from '../../../config';
import { WeekTimekeepingAbiService } from 'src/submodules/week-timekeeping/services/week-timekeeping.abi.service';
import { WeeklyRewardsSplittingAbiService } from 'src/submodules/weekly-rewards-splitting/services/weekly-rewards-splitting.abi.service';
import {
WeeklyRewardsSplittingAbiService,
} from 'src/submodules/weekly-rewards-splitting/services/weekly-rewards-splitting.abi.service';
import { FarmAbiServiceV2 } from './services/farm.v2.abi.service';

@Resolver(() => FarmModelV2)
Expand Down Expand Up @@ -110,6 +114,16 @@ export class FarmResolverV2 extends FarmResolver {
@ResolveField()
async undistributedBoostedRewards(
@Parent() parent: FarmModelV2,
): Promise<string> {
const currentWeek = await this.weekTimekeepingAbi.currentWeek(
parent.address,
);
return this.farmCompute.undistributedBoostedRewards(parent.address, currentWeek);
}

@ResolveField()
async undistributedBoostedRewardsClaimed(
@Parent() parent: FarmModelV2,
): Promise<string> {
return this.farmAbi.undistributedBoostedRewards(parent.address);
}
Expand Down
17 changes: 17 additions & 0 deletions src/modules/farm/v2/services/farm.v2.abi.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,23 @@
return response.firstValue.valueOf().toFixed();
}

@ErrorLoggerAsync({
className: FarmAbiServiceV2.name,
logArgs: true,
})
@GetOrSetCache({
baseKey: 'farm',
remoteTtl: CacheTtlInfo.ContractState.remoteTtl,
localTtl: CacheTtlInfo.ContractState.localTtl,
})
async lastUndistributedBoostedRewardsCollectWeek(
farmAddress: string,
): Promise<number> {
return this.gatewayService.getSCStorageKey(farmAddress,

Check warning on line 199 in src/modules/farm/v2/services/farm.v2.abi.service.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/v2/services/farm.v2.abi.service.ts#L199

Added line #L199 was not covered by tests
'lastUndistributedBoostedRewardsCollectWeek'
);
}

@ErrorLoggerAsync({
className: FarmAbiServiceV2.name,
logArgs: true,
Expand Down
71 changes: 67 additions & 4 deletions src/modules/farm/v2/services/farm.v2.compute.service.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Inject, Injectable, forwardRef } from '@nestjs/common';
import { forwardRef, Inject, Injectable } from '@nestjs/common';
import { FarmComputeService } from '../../base-module/services/farm.compute.service';
import BigNumber from 'bignumber.js';
import { EsdtTokenPayment } from '../../../../models/esdtTokenPayment.model';
Expand All @@ -8,16 +8,22 @@
import { CalculateRewardsArgs } from '../../models/farm.args';
import { PairService } from '../../../pair/services/pair.service';
import { ContextGetterService } from '../../../../services/context/context.getter.service';
import { WeekTimekeepingComputeService } from 'src/submodules/week-timekeeping/services/week-timekeeping.compute.service';
import { WeeklyRewardsSplittingAbiService } from 'src/submodules/weekly-rewards-splitting/services/weekly-rewards-splitting.abi.service';
import {
WeekTimekeepingComputeService,
} from 'src/submodules/week-timekeeping/services/week-timekeeping.compute.service';
import {
WeeklyRewardsSplittingAbiService,
} from 'src/submodules/weekly-rewards-splitting/services/weekly-rewards-splitting.abi.service';
import { FarmAbiServiceV2 } from './farm.v2.abi.service';
import { FarmServiceV2 } from './farm.v2.service';
import { ErrorLoggerAsync } from 'src/helpers/decorators/error.logger';
import { GetOrSetCache } from 'src/helpers/decorators/caching.decorator';
import { CacheTtlInfo } from 'src/services/caching/cache.ttl.info';
import { CachingService } from 'src/services/caching/cache.service';
import { TokenDistributionModel } from 'src/submodules/weekly-rewards-splitting/models/weekly-rewards-splitting.model';
import { WeeklyRewardsSplittingComputeService } from 'src/submodules/weekly-rewards-splitting/services/weekly-rewards-splitting.compute.service';
import {
WeeklyRewardsSplittingComputeService,
} from 'src/submodules/weekly-rewards-splitting/services/weekly-rewards-splitting.compute.service';
import { IFarmComputeServiceV2 } from './interfaces';

@Injectable()
Expand Down Expand Up @@ -457,6 +463,63 @@
.toFixed();
}

@ErrorLoggerAsync({
className: FarmComputeServiceV2.name,
logArgs: true,
})
@GetOrSetCache({
baseKey: 'farm',
remoteTtl: CacheTtlInfo.ContractState.remoteTtl,
localTtl: CacheTtlInfo.ContractState.localTtl,
})
async undistributedBoostedRewards(
scAddress: string,
currentWeek: number,
): Promise<string> {
const amount = await this.undistributedBoostedRewardsRaw(

Check warning on line 479 in src/modules/farm/v2/services/farm.v2.compute.service.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/v2/services/farm.v2.compute.service.ts#L479

Added line #L479 was not covered by tests
scAddress,
currentWeek,
);
return amount.integerValue().toFixed();

Check warning on line 483 in src/modules/farm/v2/services/farm.v2.compute.service.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/v2/services/farm.v2.compute.service.ts#L483

Added line #L483 was not covered by tests
}

async undistributedBoostedRewardsRaw(
scAddress: string,
currentWeek: number,
): Promise<BigNumber> {
const [
undistributedBoostedRewards,
lastUndistributedBoostedRewardsCollectWeek,
] = await Promise.all([

Check warning on line 493 in src/modules/farm/v2/services/farm.v2.compute.service.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/v2/services/farm.v2.compute.service.ts#L493

Added line #L493 was not covered by tests
this.farmAbi.undistributedBoostedRewards(scAddress),
this.farmAbi.lastUndistributedBoostedRewardsCollectWeek(
scAddress,
),
]);

const firstWeek = lastUndistributedBoostedRewardsCollectWeek + 1;
const lastWeek = currentWeek - constantsConfig.USER_MAX_CLAIM_WEEKS - 1;

Check warning on line 501 in src/modules/farm/v2/services/farm.v2.compute.service.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/v2/services/farm.v2.compute.service.ts#L500-L501

Added lines #L500 - L501 were not covered by tests
if (firstWeek > lastWeek) {
return new BigNumber(undistributedBoostedRewards);

Check warning on line 503 in src/modules/farm/v2/services/farm.v2.compute.service.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/v2/services/farm.v2.compute.service.ts#L503

Added line #L503 was not covered by tests
}
const promises = []
for (let week = firstWeek; week <= lastWeek; week++) {
promises.push(

Check warning on line 507 in src/modules/farm/v2/services/farm.v2.compute.service.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/v2/services/farm.v2.compute.service.ts#L505-L507

Added lines #L505 - L507 were not covered by tests
this.farmAbi.remainingBoostedRewardsToDistribute(
scAddress,
week,
)
)
}
const remainingRewards = await Promise.all(promises);
const totalRemainingRewards = remainingRewards.reduce((acc, curr) => {
return new BigNumber(acc).plus(curr);

Check warning on line 516 in src/modules/farm/v2/services/farm.v2.compute.service.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/v2/services/farm.v2.compute.service.ts#L514-L516

Added lines #L514 - L516 were not covered by tests
});
return new BigNumber(undistributedBoostedRewards)

Check warning on line 518 in src/modules/farm/v2/services/farm.v2.compute.service.ts

View check run for this annotation

Codecov / codecov/patch

src/modules/farm/v2/services/farm.v2.compute.service.ts#L518

Added line #L518 was not covered by tests
.plus(totalRemainingRewards);

}

async computeBlocksInWeek(
scAddress: string,
week: number,
Expand Down
8 changes: 4 additions & 4 deletions src/modules/farm/v2/services/interfaces.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
import { TokenDistributionModel } from 'src/submodules/weekly-rewards-splitting/models/weekly-rewards-splitting.model';
import {
IFarmAbiService,
IFarmComputeService,
} from '../../base-module/services/interfaces';
import { IFarmAbiService, IFarmComputeService } from '../../base-module/services/interfaces';
import { BoostedYieldsFactors } from '../../models/farm.v2.model';
import { EsdtTokenPayment } from '../../../../models/esdtTokenPayment.model';

Expand All @@ -14,6 +11,9 @@ export interface IFarmAbiServiceV2 extends IFarmAbiService {
farmAddress: string,
week: number,
): Promise<string>;
lastUndistributedBoostedRewardsCollectWeek(
farmAddress: string,
): Promise<number>;
undistributedBoostedRewards(farmAddress: string): Promise<string>;
boostedYieldsFactors(farmAddress: string): Promise<BoostedYieldsFactors>;
accumulatedRewardsForWeek(scAddress: string, week: number): Promise<string>;
Expand Down
Loading
Loading