diff --git a/DOCUMENTATION.md b/DOCUMENTATION.md index 52a80c8..53fdcef 100644 --- a/DOCUMENTATION.md +++ b/DOCUMENTATION.md @@ -15,6 +15,17 @@ Helping with both **low-level calculations** and **higher-order computations**, [![Discord](https://badgen.net/badge/icon/discord?icon=discord&label)](https://discord.gg/JFBPMxv5tr) +### Namespaces + +- [calculate](calculate) +- [compute](compute) +- [core](core) +- [utils](utils) + +**Core** +- [encodeWinningPicks](core#encodeWinningPicks) +- [winningPicks](core#winningPicks) + **Calculate** - [calculateCardinality](calculate#calculatecardinality) - [calculateFractionOfPrize](calculate#calculatefractionofprize) diff --git a/docs/md/calculate.md b/docs/md/calculate.md index 43996e9..a5599ac 100644 --- a/docs/md/calculate.md +++ b/docs/md/calculate.md @@ -4,16 +4,16 @@ ### Functions -- [calculateCardinality](#calculatecardinality) -- [calculateFractionOfPrize](#calculatefractionofprize) -- [calculateNormalizedBalancePicksFromTotalPicks](#calculatenormalizedbalancepicksfromtotalpicks) -- [calculateNumberOfMatches](#calculatenumberofmatches) -- [calculateNumberOfPrizesForTierIndex](#calculatenumberofprizesfortierindex) -- [calculatePick](#calculatepick) -- [calculatePicks](#calculatepicks) -- [calculatePicksFromAverageTotalSuppliesBetween](#calculatepicksfromaveragetotalsuppliesbetween) -- [calculatePrizeForTierPercentage](#calculateprizefortierpercentage) -- [calculateTierIndexFromMatches](#calculatetierindexfrommatches) +- [calculateCardinality](calculate.md#calculatecardinality) +- [calculateFractionOfPrize](calculate.md#calculatefractionofprize) +- [calculateNormalizedBalancePicksFromTotalPicks](calculate.md#calculatenormalizedbalancepicksfromtotalpicks) +- [calculateNumberOfMatches](calculate.md#calculatenumberofmatches) +- [calculateNumberOfPrizesForTierIndex](calculate.md#calculatenumberofprizesfortierindex) +- [calculatePick](calculate.md#calculatepick) +- [calculatePicks](calculate.md#calculatepicks) +- [calculatePicksFromAverageTotalSuppliesBetween](calculate.md#calculatepicksfromaveragetotalsuppliesbetween) +- [calculatePrizeForTierPercentage](calculate.md#calculateprizefortierpercentage) +- [calculateTierIndexFromMatches](calculate.md#calculatetierindexfrommatches) ## Functions @@ -35,7 +35,7 @@ #### Defined in -[calculate/calculateCardinality.ts:6](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/calculate/calculateCardinality.ts#L6) +[calculate/calculateCardinality.ts:6](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/calculate/calculateCardinality.ts#L6) ___ @@ -56,7 +56,7 @@ ___ #### Defined in -[calculate/calculateFractionOfPrize.ts:4](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/calculate/calculateFractionOfPrize.ts#L4) +[calculate/calculateFractionOfPrize.ts:4](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/calculate/calculateFractionOfPrize.ts#L4) ___ @@ -77,7 +77,7 @@ ___ #### Defined in -[calculate/calculateNormalizedBalancePicksFromTotalPicks.ts:3](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/calculate/calculateNormalizedBalancePicksFromTotalPicks.ts#L3) +[calculate/calculateNormalizedBalancePicksFromTotalPicks.ts:3](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/calculate/calculateNormalizedBalancePicksFromTotalPicks.ts#L3) ___ @@ -100,7 +100,7 @@ ___ #### Defined in -[calculate/calculateNumberOfMatches.ts:5](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/calculate/calculateNumberOfMatches.ts#L5) +[calculate/calculateNumberOfMatches.ts:5](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/calculate/calculateNumberOfMatches.ts#L5) ___ @@ -121,7 +121,7 @@ ___ #### Defined in -[calculate/calculateNumberOfPrizesForTierIndex.ts:1](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/calculate/calculateNumberOfPrizesForTierIndex.ts#L1) +[calculate/calculateNumberOfPrizesForTierIndex.ts:1](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/calculate/calculateNumberOfPrizesForTierIndex.ts#L1) ___ @@ -142,7 +142,7 @@ ___ #### Defined in -[calculate/calculatePick.ts:6](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/calculate/calculatePick.ts#L6) +[calculate/calculatePick.ts:6](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/calculate/calculatePick.ts#L6) ___ @@ -163,7 +163,7 @@ ___ #### Defined in -[calculate/calculatePicks.ts:6](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/calculate/calculatePicks.ts#L6) +[calculate/calculatePicks.ts:6](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/calculate/calculatePicks.ts#L6) ___ @@ -185,7 +185,7 @@ ___ #### Defined in -[calculate/calculatePicksFromAverageTotalSuppliesBetween.ts:7](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/calculate/calculatePicksFromAverageTotalSuppliesBetween.ts#L7) +[calculate/calculatePicksFromAverageTotalSuppliesBetween.ts:7](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/calculate/calculatePicksFromAverageTotalSuppliesBetween.ts#L7) ___ @@ -208,7 +208,7 @@ ___ #### Defined in -[calculate/calculatePrizeForTierPercentage.ts:6](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/calculate/calculatePrizeForTierPercentage.ts#L6) +[calculate/calculatePrizeForTierPercentage.ts:6](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/calculate/calculatePrizeForTierPercentage.ts#L6) ___ @@ -229,4 +229,5 @@ ___ #### Defined in -[calculate/calculateTierIndexFromMatches.ts:1](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/calculate/calculateTierIndexFromMatches.ts#L1) +[calculate/calculateTierIndexFromMatches.ts:1](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/calculate/calculateTierIndexFromMatches.ts#L1) +es.ts#L1) diff --git a/docs/md/compute.md b/docs/md/compute.md index c0f270a..0b13fa2 100644 --- a/docs/md/compute.md +++ b/docs/md/compute.md @@ -4,14 +4,14 @@ ### Functions -- [computeDrawResults](compute.md#computedrawresults) -- [computePickPrize](compute.md#computepickprize) -- [computePicksPrizes](compute.md#computepicksprizes) -- [computePrizeAmount](compute.md#computeprizeamount) -- [computePrizeDistributionFromTicketAverageTotalSupplies](compute.md#computeprizedistributionfromticketaveragetotalsupplies) -- [computeUserPicks](compute.md#computeuserpicks) -- [computeUserWinningPicksForRandomNumber](compute.md#computeuserwinningpicksforrandomnumber) -- [computeWinningPicks](compute.md#computewinningpicks) +- [computeDrawResults](compute#computedrawresults) +- [computePickPrize](compute#computepickprize) +- [computePicksPrizes](compute#computepicksprizes) +- [computePrizeAmount](compute#computeprizeamount) +- [computePrizeDistributionFromTicketAverageTotalSupplies](compute#computeprizedistributionfromticketaveragetotalsupplies) +- [computeUserPicks](compute#computeuserpicks) +- [computeUserWinningPicksForRandomNumber](compute#computeuserwinningpicksforrandomnumber) +- [computeWinningPicks](compute#computewinningpicks) ## Functions @@ -36,7 +36,7 @@ #### Defined in -[compute/computeDrawResults.ts:10](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/compute/computeDrawResults.ts#L10) +[compute/computeDrawResults.ts:10](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/compute/computeDrawResults.ts#L10) ___ @@ -61,7 +61,7 @@ ___ #### Defined in -[compute/computePickPrize.ts:8](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/compute/computePickPrize.ts#L8) +[compute/computePickPrize.ts:8](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/compute/computePickPrize.ts#L8) ___ @@ -86,7 +86,7 @@ ___ #### Defined in -[compute/computePicksPrizes.ts:6](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/compute/computePicksPrizes.ts#L6) +[compute/computePicksPrizes.ts:6](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/compute/computePicksPrizes.ts#L6) ___ @@ -109,7 +109,7 @@ ___ #### Defined in -[compute/computePrizeAmount.ts:8](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/compute/computePrizeAmount.ts#L8) +[compute/computePrizeAmount.ts:8](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/compute/computePrizeAmount.ts#L8) ___ @@ -133,7 +133,7 @@ ___ #### Defined in -[compute/computePrizeDistributionFromTicketAverageTotalSupplies.ts:12](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/compute/computePrizeDistributionFromTicketAverageTotalSupplies.ts#L12) +[compute/computePrizeDistributionFromTicketAverageTotalSupplies.ts:12](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/compute/computePrizeDistributionFromTicketAverageTotalSupplies.ts#L12) ___ @@ -155,7 +155,7 @@ ___ #### Defined in -[compute/computeUserPicks.ts:10](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/compute/computeUserPicks.ts#L10) +[compute/computeUserPicks.ts:10](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/compute/computeUserPicks.ts#L10) ___ @@ -182,7 +182,7 @@ ___ #### Defined in -[compute/computeUserWinningPicksForRandomNumber.ts:11](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/compute/computeUserWinningPicksForRandomNumber.ts#L11) +[compute/computeUserWinningPicksForRandomNumber.ts:11](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/compute/computeUserWinningPicksForRandomNumber.ts#L11) ___ @@ -204,4 +204,6 @@ ___ #### Defined in -[compute/computeWinningPicks.ts:4](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/compute/computeWinningPicks.ts#L4) +[compute/computeWinningPicks.ts:4](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/compute/computeWinningPicks.ts#L4) +puteWinningPicks.ts#L4) +ks.ts#L4) diff --git a/docs/md/core.md b/docs/md/core.md new file mode 100644 index 0000000..4806f52 --- /dev/null +++ b/docs/md/core.md @@ -0,0 +1,60 @@ +# core + +## Table of contents + +### Functions + +- [encodeWinningPicks](core#encodewinningpicks) +- [winningPicks](core#winningpicks) + +## Functions + +### encodeWinningPicks + +▸ **encodeWinningPicks**(`user`, `drawResults`): `Claim` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `user` | `User` | +| `drawResults` | `DrawResults`[] | + +#### Returns + +`Claim` + +#### Defined in + +core/encodeWinningPicks.ts:7 + +___ + +### winningPicks + +▸ **winningPicks**(`user`, `draws`, `prizeDistributions`): `Claim` + +**`description`** Computes a User's winning picks for multiple Draws and returns an encoded transaction. + +**`dev`** Historical blockchain state must be first fetched to run computations. + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `user` | `User` | Includes an account address and a list of normalized balances. | +| `draws` | `Draw`[] | Draw(s) should be fetched from DrawHistory contract | +| `prizeDistributions` | `PrizeDistribution`[] | PrizeDistribution(s) should be fetched from PrizeTierHistory contract | + +#### Returns + +`Claim` + +Computed winning picks and encoded transaction ready for broadcast to an EVM blockchain. + +#### Defined in + +core/winningPicks.ts:13 +ts:13 +:13 +ts:13 diff --git a/docs/md/index.md b/docs/md/index.md index a0bc412..53fdcef 100644 --- a/docs/md/index.md +++ b/docs/md/index.md @@ -15,7 +15,18 @@ Helping with both **low-level calculations** and **higher-order computations**, [![Discord](https://badgen.net/badge/icon/discord?icon=discord&label)](https://discord.gg/JFBPMxv5tr) -Calculate +### Namespaces + +- [calculate](calculate) +- [compute](compute) +- [core](core) +- [utils](utils) + +**Core** +- [encodeWinningPicks](core#encodeWinningPicks) +- [winningPicks](core#winningPicks) + +**Calculate** - [calculateCardinality](calculate#calculatecardinality) - [calculateFractionOfPrize](calculate#calculatefractionofprize) - [calculateNormalizedBalancePicksFromTotalPicks](calculate#calculatenormalizedbalancepicksfromtotalpicks) @@ -27,7 +38,7 @@ Calculate - [calculatePrizeForTierPercentage](calculate#calculateprizefortierpercentage) - [calculateTierIndexFromMatches](calculate#calculatetierindexfrommatches) -### Compute +**Compute** - [computeDrawResults](compute#computedrawresults) - [computePickPrize](compute#computepickprize) - [computePicksPrizes](compute#computepicksprizes) @@ -37,7 +48,7 @@ Calculate - [computeUserWinningPicksForRandomNumber](compute#computeuserwinningpicksforrandomnumber) - [computeWinningPicks](compute#computewinningpicks) -### Utilities +**Utilities** - [createDrawResultsObject](utils#createdrawresultsobject) - [filterResultsByValue](utils#filterresultsbyvalue) - [findBitMatchesAtIndex](utils#findbitmatchesatindex) @@ -52,7 +63,7 @@ Calculate - [sumTwoBigNumbers](utils#sumtwobignumbers) - [updateDrawResultsWithWinningPicks](utils#updatedrawresultswithwinningpicks) -## Installation +## 💾  Installation This project is available as an NPM package: @@ -70,9 +81,9 @@ The repo can be cloned from Github for contributions. git clone https://github.com/pooltogether/v4-utils-js ``` -## Quickstart 🏎️ +## 🏎️  Quickstart -Draw and PrizeDistrubtion structs should be fetched using the [v4-js-client](https://github.com/pooltogether/v4-js-client) node module. +Draw and PrizeDistribution structs should be fetched using the [@pooltogether/v4-js-client](/protocol/libraries/v4-js-client/) node module. ### Winnings Picks ```ts @@ -89,7 +100,7 @@ const transaction = encodeWinningPicks(wallet.address, computedWinningPicks); wallet.send(transaction.encodedWinningPickIndices) ``` -## Low-Level Calculations & Computations +## 🧮  Examples The utility library simulates smart contract rules/operations and also encapsulates higher-level abstractions common to PoolTogether V4 required transactions. @@ -97,21 +108,25 @@ For example, in the `DrawCalculator` smart contract an account `address` is used In other words, the library exposes low-level functions like `hashUserAddress` and `calculateNumberOfMatches` so it's easier to build the high-level abstractions, like `winningPicks` which simply takes a user address, plus historical Draw/PrizeDistribution structs and generates/encode all potential winning picks for a user into a single transaction. -### Compute User Picks ([calculateNumberOfMatches](protocol/libraries/v4-utils-js/calculate#calculatenumberofmatches)) +### Compute User Picks ([computeUserPicks](/protocol/libraries/v4-utils-js/compute#computeuserpicks)) Calculates a depositor potential picks using the totalNumberOfPicks relative to the normalizedBalance. ```ts import { parseEther } from '@ethersproject/units'; import { computeUserPicks } from '@pooltogether/v4-utils-js'; +const totalPicks = parseUnits('1000', 18); +const address = '0x000.000'; +const normalizedBalance = parseUnits('0.1', 18) + const userPicksByIndexAndHash = computeUserPicks( + totalPicks, address, - parseUnits('1000', 18) - parseUnits('0.1', 18) + normalizedBalance ); ``` -### Calculate Number of Matches +### Calculate Number of Matches ([calculateNumberOfMatches](/protocol/libraries/v4-utils-js/calculate#calculatenumberofmatches)) A user's pick number and the Draw random generated number are compared to compute winning picks. diff --git a/docs/md/utils.md b/docs/md/utils.md index fd74ddf..70b6d1d 100644 --- a/docs/md/utils.md +++ b/docs/md/utils.md @@ -4,19 +4,19 @@ ### Functions -- [createDrawResultsObject](utils.md#createdrawresultsobject) -- [filterResultsByValue](utils.md#filterresultsbyvalue) -- [findBitMatchesAtIndex](utils.md#findbitmatchesatindex) -- [formatTierPercentage](utils.md#formattierpercentage) -- [hashUserAddress](utils.md#hashuseraddress) -- [isBitRangeSizeValid](utils.md#isbitrangesizevalid) -- [isTiersValid](utils.md#istiersvalid) -- [sanityCheckPrizeDistribution](utils.md#sanitycheckprizedistribution) -- [sortByBigNumberAsc](utils.md#sortbybignumberasc) -- [sortByBigNumberDesc](utils.md#sortbybignumberdesc) -- [sumBigNumbers](utils.md#sumbignumbers) -- [sumTwoBigNumbers](utils.md#sumtwobignumbers) -- [updateDrawResultsWithWinningPicks](utils.md#updatedrawresultswithwinningpicks) +- [createDrawResultsObject](utils#createdrawresultsobject) +- [filterResultsByValue](utils#filterresultsbyvalue) +- [findBitMatchesAtIndex](utils#findbitmatchesatindex) +- [formatTierPercentage](utils#formattierpercentage) +- [hashUserAddress](utils#hashuseraddress) +- [isBitRangeSizeValid](utils#isbitrangesizevalid) +- [isTiersValid](utils#istiersvalid) +- [sanityCheckPrizeDistribution](utils#sanitycheckprizedistribution) +- [sortByBigNumberAsc](utils#sortbybignumberasc) +- [sortByBigNumberDesc](utils#sortbybignumberdesc) +- [sumBigNumbers](utils#sumbignumbers) +- [sumTwoBigNumbers](utils#sumtwobignumbers) +- [updateDrawResultsWithWinningPicks](utils#updatedrawresultswithwinningpicks) ## Functions @@ -36,7 +36,7 @@ #### Defined in -[utils/createDrawResultsObject.ts:5](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/utils/createDrawResultsObject.ts#L5) +[utils/createDrawResultsObject.ts:5](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/utils/createDrawResultsObject.ts#L5) ___ @@ -57,7 +57,7 @@ ___ #### Defined in -[utils/filterResultsByValue.ts:7](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/utils/filterResultsByValue.ts#L7) +[utils/filterResultsByValue.ts:7](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/utils/filterResultsByValue.ts#L7) ___ @@ -80,7 +80,7 @@ ___ #### Defined in -[utils/findBitMatchesAtIndex.ts:6](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/utils/findBitMatchesAtIndex.ts#L6) +[utils/findBitMatchesAtIndex.ts:6](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/utils/findBitMatchesAtIndex.ts#L6) ___ @@ -100,7 +100,7 @@ ___ #### Defined in -[utils/formatTierPercentage.ts:4](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/utils/formatTierPercentage.ts#L4) +[utils/formatTierPercentage.ts:4](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/utils/formatTierPercentage.ts#L4) ___ @@ -120,7 +120,7 @@ ___ #### Defined in -[utils/hashUserAddress.ts:3](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/utils/hashUserAddress.ts#L3) +[utils/hashUserAddress.ts:3](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/utils/hashUserAddress.ts#L3) ___ @@ -141,7 +141,7 @@ ___ #### Defined in -[utils/isBitRangeSizeValid.ts:1](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/utils/isBitRangeSizeValid.ts#L1) +[utils/isBitRangeSizeValid.ts:1](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/utils/isBitRangeSizeValid.ts#L1) ___ @@ -161,7 +161,7 @@ ___ #### Defined in -[utils/isTiersValid.ts:5](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/utils/isTiersValid.ts#L5) +[utils/isTiersValid.ts:5](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/utils/isTiersValid.ts#L5) ___ @@ -181,7 +181,7 @@ ___ #### Defined in -[utils/sanityCheckPrizeDistribution.ts:5](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/utils/sanityCheckPrizeDistribution.ts#L5) +[utils/sanityCheckPrizeDistribution.ts:5](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/utils/sanityCheckPrizeDistribution.ts#L5) ___ @@ -202,7 +202,7 @@ ___ #### Defined in -[utils/sortByBigNumber.ts:3](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/utils/sortByBigNumber.ts#L3) +[utils/sortByBigNumber.ts:3](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/utils/sortByBigNumber.ts#L3) ___ @@ -223,7 +223,7 @@ ___ #### Defined in -[utils/sortByBigNumber.ts:10](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/utils/sortByBigNumber.ts#L10) +[utils/sortByBigNumber.ts:10](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/utils/sortByBigNumber.ts#L10) ___ @@ -243,7 +243,7 @@ ___ #### Defined in -[utils/sumBigNumbers.ts:10](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/utils/sumBigNumbers.ts#L10) +[utils/sumBigNumbers.ts:10](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/utils/sumBigNumbers.ts#L10) ___ @@ -264,7 +264,7 @@ ___ #### Defined in -[utils/sumBigNumbers.ts:3](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/utils/sumBigNumbers.ts#L3) +[utils/sumBigNumbers.ts:3](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/utils/sumBigNumbers.ts#L3) ___ @@ -286,4 +286,5 @@ ___ #### Defined in -[utils/updateDrawResultsWithWinningPicks.ts:5](https://github.com/pooltogether/v4-utils-js/blob/4a945a2/src/utils/updateDrawResultsWithWinningPicks.ts#L5) +[utils/updateDrawResultsWithWinningPicks.ts:5](https://github.com/pooltogether/v4-utils-js/blob/e8b45cf/src/utils/updateDrawResultsWithWinningPicks.ts#L5) +dateDrawResultsWithWinningPicks.ts#L5) diff --git a/package.json b/package.json index c4b82e7..b644ae8 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "clean": "jest --clearCache", "watch": "tsdx watch", "docs": "yarn docs:md ; yarn docs:clean", - "docs:md": "yarn typedoc --plugin typedoc-plugin-markdown --entryDocument index.md --hideBreadcrumbs true --namedAnchors false --out docs/md", + "docs:md": "yarn typedoc --plugin typedoc-plugin-markdown --plugin typedoc-plugin-remove-references --entryDocument index.md --hideBreadcrumbs true --namedAnchors false --out docs/md", "docs:html": "yarn typedoc --plugin none --out docs/app src/index.ts ", "docs:clean": "node ./scripts/docsFindAndReplace.js ; node ./scripts/docsCleanup.js", "prepublishOnly": "npm run build" @@ -70,6 +70,7 @@ "tslib": "^2.3.1", "typedoc": "^0.22.10", "typedoc-plugin-markdown": "^3.11.8", + "typedoc-plugin-remove-references": "^0.0.6", "typescript": "^4.4.4" }, "husky": { diff --git a/scripts/docsCleanup.js b/scripts/docsCleanup.js index f101ae7..b21c174 100644 --- a/scripts/docsCleanup.js +++ b/scripts/docsCleanup.js @@ -12,6 +12,7 @@ const paths = [ ['./docs/md/modules/calculate.md', './docs/md/calculate.md'], ['./docs/md/modules/compute.md', './docs/md/compute.md'], ['./docs/md/modules/utils.md', './docs/md/utils.md'], + ['./docs/md/modules/core.md', './docs/md/core.md'], ]; try { for (let index = 0; index < paths.length; index++) { diff --git a/scripts/docsFindAndReplace.js b/scripts/docsFindAndReplace.js index 6e688f9..dffcc7d 100644 --- a/scripts/docsFindAndReplace.js +++ b/scripts/docsFindAndReplace.js @@ -3,26 +3,29 @@ const replaceInFiles = require('replace-in-files'); const replaces = [ [/modules.md/g, 'modules'], - [/calculate.md/g, ''], + [/calculate.md/g, 'calculate'], + [/compute.md/g, 'compute'], + [/core.md/g, 'core'], + [/utils.md/g, 'utils'], [/Namespace:/g, ''], ] const createOptions= (from, to) => { -const options = { - files: 'docs/md/**/*.md', - from: from, // string or regex - to: to, // string or fn (fn: carrying last argument - path to replaced file) - optionsForFiles: { - ignore: ['**/node_modules/**'], - }, - saveOldFile: false, - encoding: 'utf8', - shouldSkipBinaryFiles: true, - onlyFindPathsWithoutReplace: false, - returnPaths: true, - returnCountOfMatchesByPaths: true, -}; -return options + const options = { + files: 'docs/md/**/*.md', + from: from, // string or regex + to: to, // string or fn (fn: carrying last argument - path to replaced file) + optionsForFiles: { + ignore: ['**/node_modules/**'], + }, + saveOldFile: false, + encoding: 'utf8', + shouldSkipBinaryFiles: true, + onlyFindPathsWithoutReplace: false, + returnPaths: true, + returnCountOfMatchesByPaths: true, + }; + return options } for (let index = 0; index < replaces.length; index++) { @@ -31,7 +34,7 @@ for (let index = 0; index < replaces.length; index++) { .then(({ changedFiles, countOfMatchesByPaths }) => { console.log('Modified files:', changedFiles); console.log('Count of matches by paths:', countOfMatchesByPaths); - console.log('was called with:', options); + // console.log('was called with:', options); }) .catch(error => { console.error('Error occurred:', error); diff --git a/src/encodeWinningPicks.ts b/src/core/encodeWinningPicks.ts similarity index 92% rename from src/encodeWinningPicks.ts rename to src/core/encodeWinningPicks.ts index 4200792..5f0bcc1 100644 --- a/src/encodeWinningPicks.ts +++ b/src/core/encodeWinningPicks.ts @@ -1,8 +1,8 @@ import { defaultAbiCoder } from '@ethersproject/abi'; import { BigNumber } from '@ethersproject/bignumber'; -import { User, DrawResults, Claim } from './types'; -import { sortByBigNumberAsc } from './utils'; +import { User, DrawResults, Claim } from '../types'; +import { sortByBigNumberAsc } from '../utils'; function encodeWinningPicks(user: User, drawResults: DrawResults[]): Claim { let claim: Claim = { diff --git a/src/core/index.ts b/src/core/index.ts new file mode 100644 index 0000000..05ff841 --- /dev/null +++ b/src/core/index.ts @@ -0,0 +1,2 @@ +export { default as encodeWinningPicks } from './encodeWinningPicks'; +export { default as winningPicks } from './winningPicks'; \ No newline at end of file diff --git a/src/core/winningPicks.ts b/src/core/winningPicks.ts new file mode 100644 index 0000000..3b3430b --- /dev/null +++ b/src/core/winningPicks.ts @@ -0,0 +1,24 @@ +import computeWinningPicks from '../compute/computeWinningPicks'; +import encodeWinningPicks from './encodeWinningPicks'; +import { Claim, Draw, PrizeDistribution, User } from '../types'; + +/** + * @description Computes a User's winning picks for multiple Draws and returns an encoded transaction. + * @dev Historical blockchain state must be first fetched to run computations. + * @param user Includes an account address and a list of normalized balances. + * @param draws Draw(s) should be fetched from DrawHistory contract + * @param prizeDistributions PrizeDistribution(s) should be fetched from PrizeTierHistory contract + * @returns Computed winning picks and encoded transaction ready for broadcast to an EVM blockchain. + */ +function winningPicks( + user: User, + draws: Draw[], + prizeDistributions: PrizeDistribution[] +): Claim { + return encodeWinningPicks( + user, + computeWinningPicks(user, draws, prizeDistributions) + ); +} + +export default winningPicks; diff --git a/src/index.ts b/src/index.ts index afc5e27..e495000 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,8 @@ import * as calculate from './calculate'; import * as compute from './compute'; +import * as core from './core'; import * as utils from './utils'; export * from './calculate'; export * from './compute'; -export { default as encodeWinningPicks } from './encodeWinningPicks'; -export { default as winningPicks } from './winningPicks'; -export { calculate, compute, utils }; +export * from './core'; +export { calculate, compute, utils, core }; diff --git a/src/winningPicks.ts b/src/winningPicks.ts deleted file mode 100644 index 890c0da..0000000 --- a/src/winningPicks.ts +++ /dev/null @@ -1,16 +0,0 @@ -import computeWinningPicks from './compute/computeWinningPicks'; -import encodeWinningPicks from './encodeWinningPicks'; -import { Claim, Draw, PrizeDistribution, User } from './types'; - -function winningPicks( - user: User, - draws: Draw[], - prizeDistributions: PrizeDistribution[] -): Claim { - return encodeWinningPicks( - user, - computeWinningPicks(user, draws, prizeDistributions) - ); -} - -export default winningPicks; diff --git a/yarn.lock b/yarn.lock index 112e939..7319e4a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6556,6 +6556,11 @@ typedoc-plugin-markdown@^3.11.8: dependencies: handlebars "^4.7.7" +typedoc-plugin-remove-references@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedoc-plugin-remove-references/-/typedoc-plugin-remove-references-0.0.6.tgz#6568615e5857531a497676b5536bc1ff41117443" + integrity sha512-QoyHpopznnJbWW/9JT2NHSK+eTmyShkPYebwe5ZnO8aohPLc5okk4puWUDXnNh2Tn7cJU8U3t1tEMO6ghbwE8Q== + typedoc@^0.22.10: version "0.22.10" resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.22.10.tgz#221e1a2b17bcb71817ef027dc4c4969d572e7620"