Fixing linter errors

This commit is contained in:
Greg Hysen
2019-06-26 16:08:59 -07:00
parent 5147b6e699
commit a934c71ccd
6 changed files with 104 additions and 144 deletions

View File

@@ -71,20 +71,20 @@ describe('Math Libraries', () => {
it('nth root #3 with fixed point', async () => {
const decimals = 18;
const base = stakingWrapper.toFixedPoint(4.234, decimals);
const base = StakingWrapper.toFixedPoint(4.234, decimals);
const n = new BigNumber(2);
const root = await stakingWrapper.nthRootFixedPointAsync(base, n);
const rootAsFloatingPoint = stakingWrapper.toFloatingPoint(root, decimals);
const rootAsFloatingPoint = StakingWrapper.toFloatingPoint(root, decimals);
const expectedResult = new BigNumber(2.057668584);
expect(rootAsFloatingPoint).to.be.bignumber.equal(expectedResult);
});
it('nth root #3 with fixed point (integer nth root would fail here)', async () => {
const decimals = 18;
const base = stakingWrapper.toFixedPoint(5429503678976, decimals);
const base = StakingWrapper.toFixedPoint(5429503678976, decimals);
const n = new BigNumber(9);
const root = await stakingWrapper.nthRootFixedPointAsync(base, n);
const rootAsFloatingPoint = stakingWrapper.toFloatingPoint(root, decimals);
const rootAsFloatingPoint = StakingWrapper.toFloatingPoint(root, decimals);
const expectedResult = new BigNumber(26);
expect(rootAsFloatingPoint).to.be.bignumber.equal(expectedResult);
});
@@ -92,20 +92,20 @@ describe('Math Libraries', () => {
it.skip('nth root #4 with fixed point (integer nth root would fail here) (max number of decimals - currently does not retain)', async () => {
// @TODO This is the gold standard for nth root. Retain all these decimals :)
const decimals = 18;
const base = stakingWrapper.toFixedPoint(new BigNumber('5429503678976.295036789761543678', 10), decimals);
const base = StakingWrapper.toFixedPoint(new BigNumber('5429503678976.295036789761543678', 10), decimals);
const n = new BigNumber(9);
const root = await stakingWrapper.nthRootFixedPointAsync(base, n);
const rootAsFloatingPoint = stakingWrapper.toFloatingPoint(root, decimals);
const rootAsFloatingPoint = StakingWrapper.toFloatingPoint(root, decimals);
const expectedResult = new BigNumber(26);
expect(rootAsFloatingPoint).to.be.bignumber.equal(expectedResult);
});
it('cobb douglas - approximate', async () => {
const totalRewards = stakingWrapper.toBaseUnitAmount(57.154398);
const ownerFees = stakingWrapper.toBaseUnitAmount(5.64375);
const totalFees = stakingWrapper.toBaseUnitAmount(29.00679);
const ownerStake = stakingWrapper.toBaseUnitAmount(56);
const totalStake = stakingWrapper.toBaseUnitAmount(10906);
const totalRewards = StakingWrapper.toBaseUnitAmount(57.154398);
const ownerFees = StakingWrapper.toBaseUnitAmount(5.64375);
const totalFees = StakingWrapper.toBaseUnitAmount(29.00679);
const ownerStake = StakingWrapper.toBaseUnitAmount(56);
const totalStake = StakingWrapper.toBaseUnitAmount(10906);
const alphaNumerator = new BigNumber(3);
const alphaDenominator = new BigNumber(7);
// create expected output
@@ -121,8 +121,8 @@ describe('Math Libraries', () => {
alphaNumerator,
alphaDenominator,
);
const ownerRewardFloatingPoint = stakingWrapper.trimFloat(
stakingWrapper.toFloatingPoint(ownerReward, 18),
const ownerRewardFloatingPoint = StakingWrapper.trimFloat(
StakingWrapper.toFloatingPoint(ownerReward, 18),
4,
);
// validation
@@ -131,11 +131,11 @@ describe('Math Libraries', () => {
it('cobb douglas - simplified (alpha = 1/x)', async () => {
// setup test parameters
const totalRewards = stakingWrapper.toBaseUnitAmount(57.154398);
const ownerFees = stakingWrapper.toBaseUnitAmount(5.64375);
const totalFees = stakingWrapper.toBaseUnitAmount(29.00679);
const ownerStake = stakingWrapper.toBaseUnitAmount(56);
const totalStake = stakingWrapper.toBaseUnitAmount(10906);
const totalRewards = StakingWrapper.toBaseUnitAmount(57.154398);
const ownerFees = StakingWrapper.toBaseUnitAmount(5.64375);
const totalFees = StakingWrapper.toBaseUnitAmount(29.00679);
const ownerStake = StakingWrapper.toBaseUnitAmount(56);
const totalStake = StakingWrapper.toBaseUnitAmount(10906);
const alphaDenominator = new BigNumber(3);
// create expected output
// https://www.wolframalpha.com/input/?i=57.154398+*+(5.64375%2F29.00679)+%5E+(1%2F3)+*+(56+%2F+10906)+%5E+(1+-+1%2F3)
@@ -149,8 +149,8 @@ describe('Math Libraries', () => {
totalStake,
alphaDenominator,
);
const ownerRewardFloatingPoint = stakingWrapper.trimFloat(
stakingWrapper.toFloatingPoint(ownerReward, 18),
const ownerRewardFloatingPoint = StakingWrapper.trimFloat(
StakingWrapper.toFloatingPoint(ownerReward, 18),
14,
);
// validation
@@ -158,11 +158,11 @@ describe('Math Libraries', () => {
});
it('cobb douglas - simplified inverse (1 - alpha = 1/x)', async () => {
const totalRewards = stakingWrapper.toBaseUnitAmount(57.154398);
const ownerFees = stakingWrapper.toBaseUnitAmount(5.64375);
const totalFees = stakingWrapper.toBaseUnitAmount(29.00679);
const ownerStake = stakingWrapper.toBaseUnitAmount(56);
const totalStake = stakingWrapper.toBaseUnitAmount(10906);
const totalRewards = StakingWrapper.toBaseUnitAmount(57.154398);
const ownerFees = StakingWrapper.toBaseUnitAmount(5.64375);
const totalFees = StakingWrapper.toBaseUnitAmount(29.00679);
const ownerStake = StakingWrapper.toBaseUnitAmount(56);
const totalStake = StakingWrapper.toBaseUnitAmount(10906);
const inverseAlphaDenominator = new BigNumber(3);
// create expected output
// https://www.wolframalpha.com/input/?i=57.154398+*+(5.64375%2F29.00679)+%5E+(2%2F3)+*+(56+%2F+10906)+%5E+(1+-+2%2F3)
@@ -176,8 +176,8 @@ describe('Math Libraries', () => {
totalStake,
inverseAlphaDenominator,
);
const ownerRewardFloatingPoint = stakingWrapper.trimFloat(
stakingWrapper.toFloatingPoint(ownerReward, 18),
const ownerRewardFloatingPoint = StakingWrapper.trimFloat(
StakingWrapper.toFloatingPoint(ownerReward, 18),
12,
);
// validation

View File

@@ -68,22 +68,22 @@ describe('End-To-End Simulations', () => {
numberOfPools: 3,
poolOperatorShares: [100, 100, 100],
stakeByPoolOperator: [
stakingWrapper.toBaseUnitAmount(42),
stakingWrapper.toBaseUnitAmount(84),
stakingWrapper.toBaseUnitAmount(97),
StakingWrapper.toBaseUnitAmount(42),
StakingWrapper.toBaseUnitAmount(84),
StakingWrapper.toBaseUnitAmount(97),
],
numberOfMakers: 6,
numberOfMakersPerPool: [1, 2, 3],
protocolFeesByMaker: [
// pool 1
stakingWrapper.toBaseUnitAmount(0.304958),
StakingWrapper.toBaseUnitAmount(0.304958),
// pool 2
stakingWrapper.toBaseUnitAmount(3.2),
stakingWrapper.toBaseUnitAmount(12.123258),
StakingWrapper.toBaseUnitAmount(3.2),
StakingWrapper.toBaseUnitAmount(12.123258),
// pool 3
stakingWrapper.toBaseUnitAmount(23.577),
stakingWrapper.toBaseUnitAmount(4.54522236),
stakingWrapper.toBaseUnitAmount(0),
StakingWrapper.toBaseUnitAmount(23.577),
StakingWrapper.toBaseUnitAmount(4.54522236),
StakingWrapper.toBaseUnitAmount(0),
],
numberOfDelegators: 0,
numberOfDelegatorsPerPool: [0, 0, 0],
@@ -91,9 +91,9 @@ describe('End-To-End Simulations', () => {
delegateInNextEpoch: false, // no shadow eth
withdrawByUndelegating: false, // profits are withdrawn without undelegating
expectedFeesByPool: [
stakingWrapper.toBaseUnitAmount(0.304958),
stakingWrapper.toBaseUnitAmount(15.323258),
stakingWrapper.toBaseUnitAmount(28.12222236),
StakingWrapper.toBaseUnitAmount(0.304958),
StakingWrapper.toBaseUnitAmount(15.323258),
StakingWrapper.toBaseUnitAmount(28.12222236),
],
expectedPayoutByPool: [
new BigNumber('4.75677'), // 4.756772362932728793619590327361600155564384201215274334070
@@ -132,36 +132,36 @@ describe('End-To-End Simulations', () => {
numberOfPools: 3,
poolOperatorShares: [39, 59, 43],
stakeByPoolOperator: [
stakingWrapper.toBaseUnitAmount(42),
stakingWrapper.toBaseUnitAmount(84),
stakingWrapper.toBaseUnitAmount(97),
StakingWrapper.toBaseUnitAmount(42),
StakingWrapper.toBaseUnitAmount(84),
StakingWrapper.toBaseUnitAmount(97),
],
numberOfMakers: 6,
numberOfMakersPerPool: [1, 2, 3],
protocolFeesByMaker: [
// pool 1
stakingWrapper.toBaseUnitAmount(0.304958),
StakingWrapper.toBaseUnitAmount(0.304958),
// pool 2
stakingWrapper.toBaseUnitAmount(3.2),
stakingWrapper.toBaseUnitAmount(12.123258),
StakingWrapper.toBaseUnitAmount(3.2),
StakingWrapper.toBaseUnitAmount(12.123258),
// pool 3
stakingWrapper.toBaseUnitAmount(23.577),
stakingWrapper.toBaseUnitAmount(4.54522236),
stakingWrapper.toBaseUnitAmount(0),
StakingWrapper.toBaseUnitAmount(23.577),
StakingWrapper.toBaseUnitAmount(4.54522236),
StakingWrapper.toBaseUnitAmount(0),
],
numberOfDelegators: 3,
numberOfDelegatorsPerPool: [0, 0, 3],
stakeByDelegator: [
stakingWrapper.toBaseUnitAmount(17),
stakingWrapper.toBaseUnitAmount(75),
stakingWrapper.toBaseUnitAmount(90),
StakingWrapper.toBaseUnitAmount(17),
StakingWrapper.toBaseUnitAmount(75),
StakingWrapper.toBaseUnitAmount(90),
],
delegateInNextEpoch: false, // delegated stake is included in payout computation + no shadow ether
withdrawByUndelegating: false, // profits are withdrawn without undelegating
expectedFeesByPool: [
stakingWrapper.toBaseUnitAmount(0.304958),
stakingWrapper.toBaseUnitAmount(15.323258),
stakingWrapper.toBaseUnitAmount(28.12222236),
StakingWrapper.toBaseUnitAmount(0.304958),
StakingWrapper.toBaseUnitAmount(15.323258),
StakingWrapper.toBaseUnitAmount(28.12222236),
],
expectedPayoutByPool: [
new BigNumber('2.89303'), // 2.8930364057678784829875695710382241749912199174798475
@@ -214,36 +214,36 @@ describe('End-To-End Simulations', () => {
numberOfPools: 3,
poolOperatorShares: [39, 59, 43],
stakeByPoolOperator: [
stakingWrapper.toBaseUnitAmount(42),
stakingWrapper.toBaseUnitAmount(84),
stakingWrapper.toBaseUnitAmount(97),
StakingWrapper.toBaseUnitAmount(42),
StakingWrapper.toBaseUnitAmount(84),
StakingWrapper.toBaseUnitAmount(97),
],
numberOfMakers: 6,
numberOfMakersPerPool: [1, 2, 3],
protocolFeesByMaker: [
// pool 1
stakingWrapper.toBaseUnitAmount(0.304958),
StakingWrapper.toBaseUnitAmount(0.304958),
// pool 2
stakingWrapper.toBaseUnitAmount(3.2),
stakingWrapper.toBaseUnitAmount(12.123258),
StakingWrapper.toBaseUnitAmount(3.2),
StakingWrapper.toBaseUnitAmount(12.123258),
// pool 3
stakingWrapper.toBaseUnitAmount(23.577),
stakingWrapper.toBaseUnitAmount(4.54522236),
stakingWrapper.toBaseUnitAmount(0),
StakingWrapper.toBaseUnitAmount(23.577),
StakingWrapper.toBaseUnitAmount(4.54522236),
StakingWrapper.toBaseUnitAmount(0),
],
numberOfDelegators: 3,
numberOfDelegatorsPerPool: [0, 0, 3],
stakeByDelegator: [
stakingWrapper.toBaseUnitAmount(17),
stakingWrapper.toBaseUnitAmount(75),
stakingWrapper.toBaseUnitAmount(90),
StakingWrapper.toBaseUnitAmount(17),
StakingWrapper.toBaseUnitAmount(75),
StakingWrapper.toBaseUnitAmount(90),
],
delegateInNextEpoch: true, // delegated stake is included in payout computation + forces shadow eth
withdrawByUndelegating: true, // profits are withdrawn as result of undelegating
expectedFeesByPool: [
stakingWrapper.toBaseUnitAmount(0.304958),
stakingWrapper.toBaseUnitAmount(15.323258),
stakingWrapper.toBaseUnitAmount(28.12222236),
StakingWrapper.toBaseUnitAmount(0.304958),
StakingWrapper.toBaseUnitAmount(15.323258),
StakingWrapper.toBaseUnitAmount(28.12222236),
],
expectedPayoutByPool: [
new BigNumber('4.75677'), // 4.756772362932728793619590327361600155564384201215274334070
@@ -293,36 +293,36 @@ describe('End-To-End Simulations', () => {
numberOfPools: 3,
poolOperatorShares: [39, 59, 43],
stakeByPoolOperator: [
stakingWrapper.toBaseUnitAmount(42),
stakingWrapper.toBaseUnitAmount(84),
stakingWrapper.toBaseUnitAmount(97),
StakingWrapper.toBaseUnitAmount(42),
StakingWrapper.toBaseUnitAmount(84),
StakingWrapper.toBaseUnitAmount(97),
],
numberOfMakers: 6,
numberOfMakersPerPool: [1, 2, 3],
protocolFeesByMaker: [
// pool 1
stakingWrapper.toBaseUnitAmount(0.304958),
StakingWrapper.toBaseUnitAmount(0.304958),
// pool 2
stakingWrapper.toBaseUnitAmount(3.2),
stakingWrapper.toBaseUnitAmount(12.123258),
StakingWrapper.toBaseUnitAmount(3.2),
StakingWrapper.toBaseUnitAmount(12.123258),
// pool 3
stakingWrapper.toBaseUnitAmount(23.577),
stakingWrapper.toBaseUnitAmount(4.54522236),
stakingWrapper.toBaseUnitAmount(0),
StakingWrapper.toBaseUnitAmount(23.577),
StakingWrapper.toBaseUnitAmount(4.54522236),
StakingWrapper.toBaseUnitAmount(0),
],
numberOfDelegators: 3,
numberOfDelegatorsPerPool: [0, 0, 3],
stakeByDelegator: [
stakingWrapper.toBaseUnitAmount(17),
stakingWrapper.toBaseUnitAmount(75),
stakingWrapper.toBaseUnitAmount(90),
StakingWrapper.toBaseUnitAmount(17),
StakingWrapper.toBaseUnitAmount(75),
StakingWrapper.toBaseUnitAmount(90),
],
delegateInNextEpoch: true, // delegated stake is included in payout computation + forces shadow eth
withdrawByUndelegating: false, // profits are withdrawn without undelegating
expectedFeesByPool: [
stakingWrapper.toBaseUnitAmount(0.304958),
stakingWrapper.toBaseUnitAmount(15.323258),
stakingWrapper.toBaseUnitAmount(28.12222236),
StakingWrapper.toBaseUnitAmount(0.304958),
StakingWrapper.toBaseUnitAmount(15.323258),
StakingWrapper.toBaseUnitAmount(28.12222236),
],
expectedPayoutByPool: [
new BigNumber('4.75677'), // 4.756772362932728793619590327361600155564384201215274334070

View File

@@ -60,10 +60,10 @@ describe('Staking & Delegating', () => {
describe('Staking', () => {
it('basic staking/unstaking', async () => {
// setup test parameters
const amountToStake = stakingWrapper.toBaseUnitAmount(10);
const amountToDeactivate = stakingWrapper.toBaseUnitAmount(4);
const amountToReactivate = stakingWrapper.toBaseUnitAmount(1);
const amountToWithdraw = stakingWrapper.toBaseUnitAmount(1.5);
const amountToStake = StakingWrapper.toBaseUnitAmount(10);
const amountToDeactivate = StakingWrapper.toBaseUnitAmount(4);
const amountToReactivate = StakingWrapper.toBaseUnitAmount(1);
const amountToWithdraw = StakingWrapper.toBaseUnitAmount(1.5);
// run test - this actor will validate its own state
const staker = new StakerActor(stakers[0], stakingWrapper);
await staker.depositAndStakeAsync(amountToStake);
@@ -86,10 +86,10 @@ describe('Staking & Delegating', () => {
describe('Delegating', () => {
it('basic delegating/undelegating', async () => {
// setup test parameters
const amountToDelegate = stakingWrapper.toBaseUnitAmount(10);
const amountToDeactivate = stakingWrapper.toBaseUnitAmount(4);
const amountToReactivate = stakingWrapper.toBaseUnitAmount(1);
const amountToWithdraw = stakingWrapper.toBaseUnitAmount(1.5);
const amountToDelegate = StakingWrapper.toBaseUnitAmount(10);
const amountToDeactivate = StakingWrapper.toBaseUnitAmount(4);
const amountToReactivate = StakingWrapper.toBaseUnitAmount(1);
const amountToWithdraw = StakingWrapper.toBaseUnitAmount(1.5);
const poolOperator = stakers[1];
const operatorShare = 39;
const poolId = await stakingWrapper.createPoolAsync(poolOperator, operatorShare);

View File

@@ -1,40 +0,0 @@
import { signingUtils } from '@0x/contracts-test-utils';
import { SignatureType } from '@0x/types';
import * as ethUtil from 'ethereumjs-util';
import { hashUtils } from './hash_utils';
import { SignedStakingPoolApproval } from './types';
export class ApprovalFactory {
private readonly _privateKey: Buffer;
private readonly _verifyingContractAddress: string;
private readonly _chainId: number;
constructor(privateKey: Buffer, verifyingContractAddress: string, chainId: number) {
this._privateKey = privateKey;
this._verifyingContractAddress = verifyingContractAddress;
this._chainId = chainId;
}
public newSignedApproval(
poolId: string,
makerAddress: string,
signatureType: SignatureType = SignatureType.EthSign,
): SignedStakingPoolApproval {
const approvalHashBuff = hashUtils.getStakingPoolApprovalHashBuffer(
poolId,
makerAddress,
this._verifyingContractAddress,
this._chainId,
);
const signatureBuff = signingUtils.signMessage(approvalHashBuff, this._privateKey, signatureType);
const signedApproval = {
makerAddress,
poolId,
verifyingContractAddress: this._verifyingContractAddress,
chainId: this._chainId,
signature: ethUtil.addHexPrefix(signatureBuff.toString('hex')),
};
return signedApproval;
}
}

View File

@@ -73,8 +73,8 @@ export class Simulation {
await delegator.deactivateAndTimelockDelegatedStakeAsync(poolId, amountOfStakeDelegated);
const finalEthBalance = await this._stakingWrapper.getEthBalanceAsync(delegatorAddress);
const reward = finalEthBalance.minus(initEthBalance);
const rewardTrimmed = this._stakingWrapper.trimFloat(
this._stakingWrapper.toFloatingPoint(reward, 18),
const rewardTrimmed = StakingWrapper.trimFloat(
StakingWrapper.toFloatingPoint(reward, 18),
5,
);
const expectedReward = p.expectedPayoutByDelegator[delegatorIdx];
@@ -101,8 +101,8 @@ export class Simulation {
await this._stakingWrapper.withdrawTotalRewardAsync(poolId, delegatorAddress);
const finalEthBalance = await this._stakingWrapper.getEthBalanceAsync(delegatorAddress);
const reward = finalEthBalance.minus(initEthBalance);
const rewardTrimmed = this._stakingWrapper.trimFloat(
this._stakingWrapper.toFloatingPoint(reward, 18),
const rewardTrimmed = StakingWrapper.trimFloat(
StakingWrapper.toFloatingPoint(reward, 18),
5,
);
const expectedReward = p.expectedPayoutByDelegator[delegatorIdx];
@@ -218,8 +218,8 @@ export class Simulation {
// check pool balance in vault
const poolId = this._poolIds[i];
const rewardVaultBalance = await this._stakingWrapper.rewardVaultBalanceOfAsync(poolId);
const rewardVaultBalanceTrimmed = this._stakingWrapper.trimFloat(
this._stakingWrapper.toFloatingPoint(rewardVaultBalance, 18),
const rewardVaultBalanceTrimmed = StakingWrapper.trimFloat(
StakingWrapper.toFloatingPoint(rewardVaultBalance, 18),
5,
);
const expectedRewardBalance = p.expectedPayoutByPool[i];
@@ -229,8 +229,8 @@ export class Simulation {
).to.be.bignumber.equal(expectedRewardBalance);
// check operator's balance
const poolOperatorVaultBalance = await this._stakingWrapper.getRewardBalanceOfOperatorAsync(poolId);
const poolOperatorVaultBalanceTrimmed = this._stakingWrapper.trimFloat(
this._stakingWrapper.toFloatingPoint(poolOperatorVaultBalance, 18),
const poolOperatorVaultBalanceTrimmed = StakingWrapper.trimFloat(
StakingWrapper.toFloatingPoint(poolOperatorVaultBalance, 18),
5,
);
const expectedPoolOperatorVaultBalance = p.expectedPayoutByPoolOperator[i];
@@ -240,8 +240,8 @@ export class Simulation {
).to.be.bignumber.equal(expectedPoolOperatorVaultBalance);
// check balance of pool members
const membersVaultBalance = await this._stakingWrapper.getRewardBalanceOfPoolAsync(poolId);
const membersVaultBalanceTrimmed = this._stakingWrapper.trimFloat(
this._stakingWrapper.toFloatingPoint(membersVaultBalance, 18),
const membersVaultBalanceTrimmed = StakingWrapper.trimFloat(
StakingWrapper.toFloatingPoint(membersVaultBalance, 18),
5,
);
const expectedMembersVaultBalance = p.expectedMembersPayoutByPool[i];
@@ -266,7 +266,7 @@ export class Simulation {
await this._stakingWrapper.withdrawTotalOperatorRewardAsync(poolId, poolOperatorAddress);
const finalEthBalance = await this._stakingWrapper.getEthBalanceAsync(poolOperatorAddress);
const reward = finalEthBalance.minus(initEthBalance);
const rewardTrimmed = this._stakingWrapper.trimFloat(this._stakingWrapper.toFloatingPoint(reward, 18), 5);
const rewardTrimmed = StakingWrapper.trimFloat(StakingWrapper.toFloatingPoint(reward, 18), 5);
const expectedReward = p.expectedPayoutByPoolOperator[i];
expect(rewardTrimmed, `reward withdrawn from pool ${poolId} for operator`).to.be.bignumber.equal(
expectedReward,

View File

@@ -17,7 +17,7 @@ import {
ZrxVaultContract,
} from '../../src';
import { ApprovalFactory } from './ApprovalFactory';
import { ApprovalFactory } from './approval_factory';
import { constants } from './constants';
import { SignedStakingPoolApproval } from './types';