Skip to content

Commit

Permalink
working tests, linting and prettier
Browse files Browse the repository at this point in the history
  • Loading branch information
kamescg committed Jan 4, 2022
1 parent 5efb349 commit de7c224
Show file tree
Hide file tree
Showing 19 changed files with 81 additions and 55 deletions.
7 changes: 4 additions & 3 deletions src/batchCalculateDrawResults.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { Draw, DrawResults, PrizeDistribution, User } from './types';
import { calculateDrawResults } from './calculateDrawResults';
import calculateDrawResults from './calculateDrawResults';

// main entry point for tsunami draw calculations
export function batchCalculateDrawResults(
function batchCalculateDrawResults(
prizeDistribution: PrizeDistribution[],
draws: Draw[],
user: User
Expand All @@ -19,3 +18,5 @@ export function batchCalculateDrawResults(
});
return results;
}

export default batchCalculateDrawResults;
8 changes: 5 additions & 3 deletions src/calculateDrawResults.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { utils } from 'ethers';
import { generatePicks } from './generatePicks';
import generatePicks from './generatePicks';
import { sanityCheckPrizeDistribution } from './utils/sanityCheckPrizeDistribution';
import { Draw, DrawResults, PrizeDistribution, User } from './types';
import { computeDrawResults } from './computeDrawResults';
import computeDrawResults from './computeDrawResults';
import { filterResultsByValue } from './utils/filterResultsByValue';

const debug = require('debug')('pt:v4-core-js');

export function calculateDrawResults(
function calculateDrawResults(
prizeDistribution: PrizeDistribution,
draw: Draw,
user: User,
Expand Down Expand Up @@ -50,3 +50,5 @@ export function calculateDrawResults(

return results;
}

export default calculateDrawResults;
6 changes: 4 additions & 2 deletions src/calculateFractionOfPrize.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { parseUnits } from '@ethersproject/units';
import { BigNumber, utils } from 'ethers';
import { PrizeDistribution } from './types';
import { calculateNumberOfPrizesForIndex } from './calculateNumberOfPrizesForIndex';
import calculateNumberOfPrizesForIndex from './calculateNumberOfPrizesForIndex';
const debug = require('debug')('pt:v4-core-js');

export function calculateFractionOfPrize(
function calculateFractionOfPrize(
prizeDistributionIndex: number,
drawSettings: PrizeDistribution
): BigNumber {
Expand Down Expand Up @@ -32,3 +32,5 @@ export function calculateFractionOfPrize(
debug('fractionOfPrize: ', utils.formatEther(fractionOfPrize));
return fractionOfPrize;
}

export default calculateFractionOfPrize;
4 changes: 3 additions & 1 deletion src/calculateNumberOfPicksForUser.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { BigNumber, constants } from 'ethers';
import { PrizeDistribution } from './types';

export function calculateNumberOfPicksForUser(
function calculateNumberOfPicksForUser(
drawSettings: PrizeDistribution,
normalizedBalance: BigNumber
): number {
Expand All @@ -12,3 +12,5 @@ export function calculateNumberOfPicksForUser(
.div(constants.WeiPerEther)
.toNumber();
}

export default calculateNumberOfPicksForUser;
4 changes: 3 additions & 1 deletion src/calculateNumberOfPrizesForIndex.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export function calculateNumberOfPrizesForIndex(
function calculateNumberOfPrizesForIndex(
bitRangeSize: number,
prizeDistributionIndex: number
): number {
Expand All @@ -12,3 +12,5 @@ export function calculateNumberOfPrizesForIndex(

return numberOfPrizesForIndex;
}

export default calculateNumberOfPrizesForIndex;
4 changes: 3 additions & 1 deletion src/calculatePickPrize.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { findBitMatchesAtIndex } from './utils/findBitMatchesAtIndex';
const debug = require('debug')('pt:v4-core-js');

// returns the fraction of the total prize that the user will win for this pick
export function calculatePickPrize(
function calculatePickPrize(
randomNumberThisPick: string,
winningRandomNumber: BigNumber,
prizeDistribution: PrizeDistribution
Expand Down Expand Up @@ -46,3 +46,5 @@ export function calculatePickPrize(
// else there is no prize
return undefined;
}

export default calculatePickPrize;
2 changes: 1 addition & 1 deletion src/calculatePicksFromAverageTotalSuppliesBetween.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ const debug = require('debug')(
'v4-js-core:calculatePicksFromAverageTotalSuppliesBetween'
);

export function calculatePicksFromAverageTotalSuppliesBetween(
function calculatePicksFromAverageTotalSuppliesBetween(
totalPicks: number,
ticketPrimaryTotalSupply: BigNumber,
otherTicketsTotalSupply: BigNumber
Expand Down
4 changes: 3 additions & 1 deletion src/calculatePrizeAmount.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { PrizeDistribution, PickPrize } from './types';
import { calculatePrizeForDistributionIndex } from './calculatePrizeForDistributionIndex';
import calculatePrizeForDistributionIndex from './calculatePrizeForDistributionIndex';

const debug = require('debug')('pt:v4-core-js');

Expand Down Expand Up @@ -29,3 +29,5 @@ export function calculatePrizeAmount(
// user did not qualify for a prize
return undefined;
}

export default calculatePrizeAmount;
6 changes: 4 additions & 2 deletions src/calculatePrizeForDistributionIndex.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { BigNumber, ethers } from 'ethers';
import { PrizeDistribution } from './types';
import { calculateFractionOfPrize } from './calculateFractionOfPrize';
import calculateFractionOfPrize from './calculateFractionOfPrize';

export function calculatePrizeForDistributionIndex(
function calculatePrizeForDistributionIndex(
distributionIndex: number,
prizeDistrbution: PrizeDistribution
): BigNumber {
Expand All @@ -17,3 +17,5 @@ export function calculatePrizeForDistributionIndex(
expectedPrizeAmount = expectedPrizeAmount.div(ethers.constants.WeiPerEther);
return expectedPrizeAmount;
}

export default calculatePrizeForDistributionIndex;
2 changes: 1 addition & 1 deletion src/computeCardinality.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { BigNumber } from '@ethersproject/bignumber';
import { utils } from 'ethers';
const debug = require('debug')('pt-v4-js');

export function computeCardinality(
function computeCardinality(
bitRangeSize: BigNumber,
totalSupply: BigNumber,
totalSupplyDecimals: BigNumber
Expand Down
6 changes: 4 additions & 2 deletions src/computeDrawResults.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import {
DrawResults,
PickPrize,
} from './types';
import { calculatePickPrize } from './calculatePickPrize';
import calculatePickPrize from './calculatePickPrize';
import { ethers } from 'ethers';

export function computeDrawResults(
function computeDrawResults(
drawSettings: PrizeDistribution,
draw: Draw,
picks: Pick[]
Expand Down Expand Up @@ -42,3 +42,5 @@ export function computeDrawResults(
}
return results;
}

export default computeDrawResults;
4 changes: 3 additions & 1 deletion src/computePick.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { BigNumber, ethers } from 'ethers';

const debug = require('debug')('pt:v4-core-js');

export function computePick(address: string, pick: number): Pick {
function computePick(address: string, pick: number): Pick {
debug(`computePick::address is ${address} and pick ${pick}`);
const abiEncodedValue = ethers.utils.solidityPack(
['bytes32', 'uint256'],
Expand All @@ -24,3 +24,5 @@ export function computePick(address: string, pick: number): Pick {
hash: userRandomNumber,
};
}

export default computePick;
11 changes: 5 additions & 6 deletions src/computePicks.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import { Pick } from './types';
import { BigNumber } from 'ethers';
import { computePick } from './computePick';
import { BigNumber } from '@ethersproject/bignumber';
import computePick from './computePick';

export function computePicks(
address: string,
pickIndices: BigNumber[]
): Pick[] {
function computePicks(address: string, pickIndices: BigNumber[]): Pick[] {
return pickIndices.map(index => computePick(address, index.toNumber()));
}

export default computePicks;
8 changes: 5 additions & 3 deletions src/computePrizeDistributionFromTicketAverageTotalSupplies.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { BigNumber, BigNumberish } from '@ethersproject/bignumber';
import { Draw, PrizeDistribution, PrizeTier } from './types';
import { calculatePicksFromAverageTotalSuppliesBetween } from './calculatePicksFromAverageTotalSuppliesBetween';
import { computeCardinality } from './computeCardinality';
import calculatePicksFromAverageTotalSuppliesBetween from './calculatePicksFromAverageTotalSuppliesBetween';
import computeCardinality from './computeCardinality';
import { sumBigNumbers } from './utils';
const debug = require('debug')('v4-js-core');

function createBigNumber(value: BigNumberish) {
return BigNumber.from(value);
}

export async function computePrizeDistributionFromTicketAverageTotalSupplies(
async function computePrizeDistributionFromTicketAverageTotalSupplies(
draw: Draw,
prizeTier?: PrizeTier,
ticketPrimaryAverageTotalSupply?: BigNumberish,
Expand Down Expand Up @@ -86,3 +86,5 @@ export async function computePrizeDistributionFromTicketAverageTotalSupplies(

return prizeDistribution;
}

export default computePrizeDistributionFromTicketAverageTotalSupplies;
8 changes: 5 additions & 3 deletions src/generatePicks.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { BigNumber, ethers } from 'ethers';
import { calculateNumberOfPicksForUser } from './calculateNumberOfPicksForUser';
import { computePick } from './computePick';
import calculateNumberOfPicksForUser from './calculateNumberOfPicksForUser';
import computePick from './computePick';
import { Pick, PrizeDistribution } from './types';

export function generatePicks(
function generatePicks(
prizeDistribution: PrizeDistribution,
address: string,
normalizedBalance: BigNumber
Expand All @@ -25,3 +25,5 @@ export function generatePicks(
}
return picks;
}

export default generatePicks;
35 changes: 18 additions & 17 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
export * as utils from "./utils";
export * from "./batchCalculateDrawResults";
export * from "./calculateDrawResults";
export * from "./calculateFractionOfPrize";
export * from "./calculateNumberOfPicksForUser";
export * from "./calculateNumberOfPrizesForIndex";
export * from "./calculatePickPrize";
export * from "./calculatePicksFromAverageTotalSuppliesBetween";
export * from "./calculatePrizeAmount";
export * from "./calculatePrizeForDistributionIndex";
export * from "./computeCardinality";
export * from "./computeDrawResults";
export * from "./computePick";
export * from "./computePicks";
export * from "./computePrizeDistributionFromTicketAverageTotalSupplies";
export * from "./generatePicks";
export * from "./prepareClaims";
import * as utils from './utils';
export { default as batchCalculateDrawResults } from './batchCalculateDrawResults';
export { default as calculateDrawResults } from './calculateDrawResults';
export { default as calculateFractionOfPrize } from './calculateFractionOfPrize';
export { default as calculateNumberOfPicksForUser } from './calculateNumberOfPicksForUser';
export { default as calculateNumberOfPrizesForIndex } from './calculateNumberOfPrizesForIndex';
export { default as calculatePickPrize } from './calculatePickPrize';
export { default as calculatePicksFromAverageTotalSuppliesBetween } from './calculatePicksFromAverageTotalSuppliesBetween';
export { default as calculatePrizeAmount } from './calculatePrizeAmount';
export { default as calculatePrizeForDistributionIndex } from './calculatePrizeForDistributionIndex';
export { default as computeCardinality } from './computeCardinality';
export { default as computeDrawResults } from './computeDrawResults';
export { default as computePick } from './computePick';
export { default as computePicks } from './computePicks';
export { default as computePrizeDistributionFromTicketAverageTotalSupplies } from './computePrizeDistributionFromTicketAverageTotalSupplies';
export { default as generatePicks } from './generatePicks';
export { default as prepareClaims } from './prepareClaims';
export { utils };
5 changes: 4 additions & 1 deletion src/prepareClaims.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { BigNumber } from '@ethersproject/bignumber';
import { User, DrawResults, Claim } from './types';

export function prepareClaims(user: User, drawResults: DrawResults[]): Claim {
function prepareClaims(user: User, drawResults: DrawResults[]): Claim {
let claim: Claim = {
userAddress: user.address,
drawIds: [],
Expand All @@ -25,3 +25,6 @@ export function prepareClaims(user: User, drawResults: DrawResults[]): Claim {
});
return claim;
}


export default prepareClaims
10 changes: 5 additions & 5 deletions test/batchCalculateDrawResults.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ import {
PrizeDistribution,
User,
} from '../src/types';
import { batchCalculateDrawResults } from '../src/batchCalculateDrawResults';
import { prepareClaims } from '../src/prepareClaims';
import { calculateFractionOfPrize } from '../src/calculateFractionOfPrize';
import { calculatePrizeAmount } from '../src/calculatePrizeAmount';
import { batchCalculateDrawResults } from '../src';
import { prepareClaims } from '../src';
import { calculateFractionOfPrize } from '../src';
import { calculatePrizeAmount } from '../src';
import { findBitMatchesAtIndex } from '../src/utils/findBitMatchesAtIndex';
import { calculatePrizeForDistributionIndex } from '../src/calculatePrizeForDistributionIndex';
import { calculatePrizeForDistributionIndex } from '../src';
import { formatTierToBasePercentage } from '../src/utils/formatTierToBasePercentage';
const debug = require('debug')('v4-js-core:test');

Expand Down
2 changes: 1 addition & 1 deletion test/computeCardinality.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { BigNumber } from 'ethers';
import { computeCardinality } from '../src';
import computeCardinality from '../src/computeCardinality';

describe('computeCardinality', () => {
it('should compute cardinality for a small bitrange and total supply', () => {
Expand Down

0 comments on commit de7c224

Please sign in to comment.