Skip to content

Commit

Permalink
feat: add hardcap to staking pool, improve tests
Browse files Browse the repository at this point in the history
  • Loading branch information
hejkerooo committed Nov 22, 2021
1 parent 88ec503 commit 65dd861
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 10 deletions.
Expand Up @@ -13,6 +13,8 @@ Abstraction over staking pool smart contract
### Methods

- [checkReward](modules_staking_staking_pool_service.StakingPoolService.md#checkreward)
- [getContributionLimit](modules_staking_staking_pool_service.StakingPoolService.md#getcontributionlimit)
- [getHardCap](modules_staking_staking_pool_service.StakingPoolService.md#gethardcap)
- [getStake](modules_staking_staking_pool_service.StakingPoolService.md#getstake)
- [putStake](modules_staking_staking_pool_service.StakingPoolService.md#putstake)
- [withdraw](modules_staking_staking_pool_service.StakingPoolService.md#withdraw)
Expand Down Expand Up @@ -44,6 +46,26 @@ Accumulated reward

___

### getContributionLimit

**getContributionLimit**(): `Promise`<`BigNumber`\>

#### Returns

`Promise`<`BigNumber`\>

___

### getHardCap

**getHardCap**(): `Promise`<`BigNumber`\>

#### Returns

`Promise`<`BigNumber`\>

___

### getStake

**getStake**(): `Promise`<[`Stake`](../modules/modules_staking_staking_service.md#stake)\>
Expand Down
40 changes: 30 additions & 10 deletions e2e/staking-pool.e2e.ts
Expand Up @@ -50,25 +50,26 @@ jest.mock("../src/modules/cacheClient/cacheClient.service", () => {
};
});

const duration = 3600 * 24 * 7;

const oneEWT = utils.parseUnits("1", "ether");
const hardCap = utils.parseUnits("2", "ether");
const contributionLimit = oneEWT.mul(50000);

const ratio = 0.0002225;
const ratioInt = utils.parseUnits(ratio.toString(), 18);

const rewards = oneEWT.mul(11);

export const setupStakingPoolFactory = async () => {
const { chainId } = await deployer.provider.getNetwork();
const { claimManagerAddress } = chainConfigs()[chainId];

const { timestamp } = await deployer.provider.getBlock("latest");

const duration = 3600 * 24 * 7;
const start = timestamp + 10;
const end = start + duration;

const oneEWT = utils.parseUnits("1", "ether");
const hardCap = utils.parseUnits("2", "ether");
const contributionLimit = oneEWT.mul(50000);

const ratio = 0.0002225;
const ratioInt = utils.parseUnits(ratio.toString(), 18);

const rewards = oneEWT.mul(11);

const stakingPoolFactory = await (
await new StakingPool__factory(deployer).deploy(
claimManagerAddress,
Expand Down Expand Up @@ -164,6 +165,9 @@ describe("StakingPool tests", () => {
const stakeAfterWithdraw = await pool.getStake();

expect(stakeAfterWithdraw.amount.toNumber()).toBe(0);

const { status } = await pool.getStake();
expect(status).toBe(StakeStatus.NONSTAKING);
});

it("should withdraw without reward", async () => {
Expand All @@ -183,4 +187,20 @@ describe("StakingPool tests", () => {

expect(stake.status).toBe(StakeStatus.NONSTAKING);
});

it("should return hardcap", async () => {
const pool = await stakingPoolService.getPool();

const poolHardCap = await pool.getHardCap();

expect(poolHardCap.eq(hardCap)).toEqual(true);
});

it("should return contribution limit", async () => {
const pool = await stakingPoolService.getPool();

const poolContributionLimit = await pool.getContributionLimit();

expect(poolContributionLimit.eq(contributionLimit)).toEqual(true);
});
});
8 changes: 8 additions & 0 deletions src/modules/staking/staking-pool.service.ts
Expand Up @@ -61,6 +61,14 @@ export class StakingPoolService {
).attach(address);
}

async getHardCap(): Promise<BigNumber> {
return this.pool.connect(this.signerService.signer).hardCap();
}

async getContributionLimit(): Promise<BigNumber> {
return this.pool.connect(this.signerService.signer).contributionLimit();
}

/**
* @description Locks stake and starts accumulating reward
* @emits StakingPool.StakePut
Expand Down

0 comments on commit 65dd861

Please sign in to comment.