Skip to content

Commit

Permalink
Merge pull request #11 from pooltogether/pool-2291-update-v4-cli-bis
Browse files Browse the repository at this point in the history
feat(getContractsByType): add version parameter
  • Loading branch information
dylandesrosier committed Jun 28, 2022
2 parents ad273f9 + 8551c03 commit d4ffc75
Show file tree
Hide file tree
Showing 15 changed files with 55 additions and 33 deletions.
5 changes: 3 additions & 2 deletions __tests__/constants.ts
Expand Up @@ -4,6 +4,7 @@ import { toUtf8Bytes } from '@ethersproject/strings'
import { parseUnits } from '@ethersproject/units'

import { formatTierToBasePercentage } from '../src/utils/formatTierToBasePercentage'
import { VERSION_1 } from '../src/constants'

export const CHAIN_ID = 1
export const ADDRESS_DEAD = '0x000000000000000000000000000000000000dEaD'
Expand Down Expand Up @@ -91,13 +92,13 @@ export const PRIZE_DISTRIBUTION_EXAMPLE_INVALID = {

export const contactList = {
name: 'Mainnet ContractList',
version: { major: 1, minor: 0, patch: 0 },
version: VERSION_1,
tags: {},
contracts: [
{
chainId: 1,
address: '0x000000000000000000000000000000000000dEaD',
version: { major: 1, minor: 0, patch: 0 },
version: VERSION_1,
type: 'ContractName',
abi: []
}
Expand Down
6 changes: 3 additions & 3 deletions package.json
Expand Up @@ -3,7 +3,7 @@
"author": "PoolTogether Inc.",
"description": "Client library for simple interactions with PoolTogether V4 contracts.",
"module": "dist/v4-client-js.esm.js",
"version": "1.0.0-beta.2",
"version": "1.0.0-beta.5",
"license": "MIT",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
Expand Down Expand Up @@ -83,8 +83,8 @@
"@pooltogether/contract-list-schema": "^0.1.4",
"@pooltogether/etherplex": "^1.1.4",
"@pooltogether/evm-chains-extended": "^0.6.4-beta.1",
"@pooltogether/utilities": "^0.3.8",
"@pooltogether/v4-utils-js": "1.0.0-beta.1",
"@pooltogether/utilities": "0.4.0",
"@pooltogether/v4-utils-js": "1.0.0-beta.2",
"debug": "^4.3.3",
"ethers": "^5.4.6"
}
Expand Down
5 changes: 3 additions & 2 deletions src/ContractWrapper.ts
@@ -1,9 +1,10 @@
import { Contract } from 'ethers'
import { Provider } from '@ethersproject/abstract-provider'
import { Signer } from '@ethersproject/abstract-signer'
import { Contract } from 'ethers'

import { ContractType } from './constants'
import { getMetadataAndContract } from './utils/getMetadataAndContract'
import { Contract as ContractMetadata } from './types'
import { getMetadataAndContract } from './utils/getMetadataAndContract'
import { validateIsSigner, validateSignerNetwork } from './utils/validation'

export class ContractWrapper {
Expand Down
8 changes: 4 additions & 4 deletions src/GaugeController.ts
@@ -1,18 +1,18 @@
import { MaxUint256 } from '@ethersproject/constants'
import { Result } from '@ethersproject/abi'
import { Provider, TransactionResponse } from '@ethersproject/abstract-provider'
import { Signer } from '@ethersproject/abstract-signer'
import { MaxUint256 } from '@ethersproject/constants'
import { Contract } from '@ethersproject/contracts'
import { Contract as ContractMetadata } from '@pooltogether/contract-list-schema'
import { BigNumber, Overrides } from 'ethers'

import { ContractWrapper } from './ContractWrapper'
import { validateAddress, validateSignerOrProviderNetwork } from './utils/validation'
import ERC20Abi from './abis/ERC20Abi'
import { ContractType } from './constants'
import { createContractMetadata } from './utils/createContractMetadata'
import { ContractWrapper } from './ContractWrapper'
import { TokenData } from './types'
import { getTokenData } from './utils/contractGetters'
import { createContractMetadata } from './utils/createContractMetadata'
import { validateAddress, validateSignerOrProviderNetwork } from './utils/validation'

/**
* A Gauge Controller.
Expand Down
3 changes: 2 additions & 1 deletion src/PrizeApi.ts
Expand Up @@ -22,7 +22,8 @@ import { formatDrawResultsFromPrizes } from './utils/formatDrawResultsFromPrizes
const PRIZE_API_SUPPORTED_NETWORKS = Object.freeze([
NETWORK.avalanche,
NETWORK.mainnet,
NETWORK.polygon
NETWORK.polygon,
NETWORK['optimism-kovan']
])

/**
Expand Down
4 changes: 2 additions & 2 deletions src/PrizeDistributorV1.ts
Expand Up @@ -385,8 +385,8 @@ export class PrizeDistributorV1 extends PrizeDistributor {
numberOfPicks: result[0].numberOfPicks,
expiryDuration: result[0].expiryDuration,
prize: result[0].prize,
startTimestampOffset: result[0].drawStartTimestampOffset,
endTimestampOffset: result[0].drawEndTimestampOffset
startTimestampOffset: result[0].startTimestampOffset,
endTimestampOffset: result[0].endTimestampOffset
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/PrizePool.ts
Expand Up @@ -7,6 +7,7 @@ import { Contract as ContractMetadata, ContractList } from '@pooltogether/contra

import ERC20Abi from './abis/ERC20Abi'
import { ContractType } from './constants'
import { ContractWrapper } from './ContractWrapper'
import { PrizePoolTokenBalances, Providers, TokenData } from './types'
import {
getTokenData,
Expand All @@ -16,7 +17,6 @@ import {
createContractMetadata,
getContractsByType
} from './utils'
import { ContractWrapper } from './ContractWrapper'

/**
* A Prize Pool.
Expand Down
3 changes: 3 additions & 0 deletions src/constants.ts
Expand Up @@ -4,11 +4,14 @@ export const HOUR_IN_SECONDS = 3600

export const TIER_DENOMINATION = 9

export const VERSION_1 = { major: 1, minor: 0, patch: 0 }

/**
* A shortlist of PoolTogether v4 contract names that are used by the classes in this repo.
*/
export enum ContractType {
PrizePool = 'PrizePool',
YieldSourcePrizePool = 'YieldSourcePrizePool',
Ticket = 'Ticket',
Token = 'Token',
PrizeDistributor = 'PrizeDistributor',
Expand Down
1 change: 1 addition & 0 deletions src/index.ts
@@ -1,3 +1,4 @@
export * from './constants'
export * from './ContractFactory'
export * from './PrizePoolNetwork'
export * from './PrizePool'
Expand Down
8 changes: 2 additions & 6 deletions src/utils/createContractMetadata.ts
@@ -1,18 +1,14 @@
import { Contract as ContractMetadata } from '@pooltogether/contract-list-schema'

import { ContractType } from '../constants'
import { ContractType, VERSION_1 } from '../constants'
import { Version } from '../types'

export function createContractMetadata(
chainId: number,
address: string,
type: ContractType,
abi: any[],
version: Version = {
major: 1,
minor: 0,
patch: 0
},
version: Version = VERSION_1,
tags: string[] = [],
extensions: {
readonly [key: string]: any
Expand Down
Empty file removed src/utils/getClass
Empty file.
15 changes: 11 additions & 4 deletions src/utils/getContractsByType.ts
@@ -1,6 +1,13 @@
import { ContractType } from '../constants'
import { Contract } from '../types'
import { ContractType, VERSION_1 } from '../constants'
import { Contract, Version } from '../types'

export function getContractsByType(contracts: Contract[], type: ContractType) {
return contracts.filter((contract) => contract.type === type)
export function getContractsByType(
contracts: Contract[],
type: ContractType,
version: Version = VERSION_1
): Contract[] {
return contracts.filter(
(contract) =>
contract.type === type && JSON.stringify(contract.version) === JSON.stringify(version)
)
}
1 change: 1 addition & 0 deletions src/utils/index.ts
Expand Up @@ -4,6 +4,7 @@ export { formatTierToBasePercentage } from './formatTierToBasePercentage'
export { getContractListChainIds } from './getContractListChainIds'
export { getContractsByType } from './getContractsByType'
export { getTokenData, getUserERC20Balance, getUserTokenAllowance } from './contractGetters'
export { sortContractsByChainId } from './sortContractsByChainId'
export {
validateAddress,
validateSignerNetwork,
Expand Down
11 changes: 11 additions & 0 deletions src/utils/sortContractsByChainId.ts
@@ -0,0 +1,11 @@
import { Contract } from '../types'

export function sortContractsByChainId(contracts: Contract[]): { [key: number]: Contract[] } {
const sortedContracts = {} as { [key: number]: Contract[] }
const chainIds = new Set(contracts.map((c) => c.chainId))
chainIds.forEach((chainId) => {
const filteredContracts = contracts.filter((c) => c.chainId === chainId)
sortedContracts[chainId] = filteredContracts
})
return sortedContracts
}
16 changes: 8 additions & 8 deletions yarn.lock
Expand Up @@ -1534,15 +1534,15 @@
dependencies:
evm-chains "^0.2.0"

"@pooltogether/utilities@^0.3.8":
version "0.3.8"
resolved "https://registry.yarnpkg.com/@pooltogether/utilities/-/utilities-0.3.8.tgz#f4fa0e9618c97a152e637575560ee226d9e9752d"
integrity sha512-+9+Lw7IP6B1wvLXK/Dwi8SPkPetaCd4ayr6fS+xWwJup9xdMZmyRR+sc3VwwF/1whu5GmfhZe2X0OV6FTcXWKw==
"@pooltogether/utilities@0.4.0":
version "0.4.0"
resolved "https://registry.yarnpkg.com/@pooltogether/utilities/-/utilities-0.4.0.tgz#6fd342c16250fa2288b9280db28c41f4462ae8d6"
integrity sha512-Nwbu7Gx8PKtXgczcPyqCFdaxk4zcgtdwKdbgR8TAAVxa/FayHYz6j8mwi71gVMfabBUHOJweCyKUJ1vbwveD7g==

"@pooltogether/v4-utils-js@1.0.0-beta.1":
version "1.0.0-beta.1"
resolved "https://registry.yarnpkg.com/@pooltogether/v4-utils-js/-/v4-utils-js-1.0.0-beta.1.tgz#55a890da748093420175ed70a1fb30692cd80543"
integrity sha512-PZe98c655cFh0UbvDaHkRWvgpWkgqsFpYfAjMWQpLSF9TXyGW0hhLl28ewX/ZoeeuebQjUnclfi2UTZr4kkyrA==
"@pooltogether/v4-utils-js@1.0.0-beta.2":
version "1.0.0-beta.2"
resolved "https://registry.yarnpkg.com/@pooltogether/v4-utils-js/-/v4-utils-js-1.0.0-beta.2.tgz#1a368edebfde4e34722fa6bbd48c7bef11e29301"
integrity sha512-y3NzHU7Wb80mOYKeCsEds4/GltWOO4XnTzucsS/CNZgK6ZMFjaqjsFrf2O8Aev4CyISoFfMkfDEEdFyCB/vvrw==
dependencies:
"@ethersproject/abi" "^5.5.0"
"@ethersproject/address" "^5.5.0"
Expand Down

0 comments on commit d4ffc75

Please sign in to comment.