pooltogether-versioning
v1.0.0
Published
Versions of the PoolTogether contracts
Readme
PoolTogether Contract Versioning Tool
Ever wonder what version the contract you are looking at is? This tool is aimed to ease this pain with a package that provides a simple API to gain more information about contract versions.
How to use
- Ensure .envrc variables are set and run
direnv allowandnvm use - Upon deploying a new version of contracts (for example v3.3.1) be sure to
git tagthis as a release - Import these files as an npm package using the Github URL as the source
- Run
yarn reinstall. This will fetch all the contract versions, parse and fire some synchronous rpc calls. This may take some time. - You can now seach by Address, Bytecode, ContractName, and Contract Version as per the following API's
Note: if a new network is added, a JSON RPC endpoint must also be added.
FindByVersion
Returns all contracts for version:
function findByVersion(version: string, includeBytecode: boolean = false): ContractInterface[]
Returns all contracts for version and chainId:
function findByVersionAndChainId(version: string, chainId:number, includeBytecode: boolean = false): ContractInterface[]
FindByAddress
Returns all contracts matching address and chainId:
function findByAddressAndChainId(address: string, chainId: number, includeBytecode: boolean = false): ContractInterface[]
Returns all contracts matching address across all networks:
function findByAddress(address: string, includeBytecode: boolean = false): ContractInterface[]
Returns the contract which created the contract at the address and chainId passed. NOTE: asychronous - requires network calls.
async function findCreatingProxyFactory(address: string, chainId: number, includeBytecode: boolean = false): Promise<ContractInterface[]>
FindByBytecode
Returns all contracts matching bytecode:
function findByBytecode(bytecode: string): ContractInterface[]
FindByContractName
Returns all contracts matching contract name:
function findByContractName(contractName: string, includeBytecode: boolean = false): ContractInterface[]
Returns all contracts matching contract name and ChainId:
function findByContractNameAndChainId(contractName: string, chainId: number, includeBytecode: boolean = false): ContractInterface[]
Development
yarn && direnv allow && yarn generate && yarn start
