1.0.0 • Published 3 years ago

pooltogether-versioning v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

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

  1. Ensure .envrc variables are set and run direnv allow and nvm use
  2. Upon deploying a new version of contracts (for example v3.3.1) be sure to git tag this as a release
  3. Import these files as an npm package using the Github URL as the source
  4. Run yarn reinstall. This will fetch all the contract versions, parse and fire some synchronous rpc calls. This may take some time.
  5. 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