Contracts through which API3 services are delivered
This package provides the tools to integrate data feeds that can be found at the API3 Market. The typical workflow is as follows:
- Purchase data feed subscriptions and get the respective proxy addresses at the API3 Market
- Use the proxy address computation utility function provided by this package (
computeCommunalApi3ReaderProxyV1Address()
) to validate the proxy addresses being used - Use the proxy contract interfaces provided by this package in the reader contract, as demonstrated in https://github.com/api3dao/data-feed-reader-example
A more complete list of what this package includes is as follows:
- All contracts that facilitate API3 data feed services, including OEV auctions
-
@typechain/ethers-v6
typings of these contracts - Addresses of the API3 deployments of these contracts
- Proxy address computation utility functions
We have conducted 10+ audits of our contracts and their off-chain components. Below are the reports of the ones that are directly related to the contracts in this repo (or in some cases, earlier versions of them).
- 2024-10-24 Quantstamp (refer to here for the commit hash)
- 2024-02-20 Quantstamp
- 2023-12-20 Quantstamp
- 2023-03-02 Sigma Prime
- 2022-03-30 Trail of Bits
- 2021-12-16 Sigma Prime
For bug reports, contact security@api3.org
Install the dependencies and build
pnpm i && pnpm build
Test the contracts, get coverage and gas reports
pnpm test
pnpm test:extended
# Outputs to `./coverage`
pnpm test:coverage
# Outputs to `gas_report`
pnpm test:gas
Verify that the vendor contracts are identical to the ones from their respective packages.
pnpm verify-vendor-contracts
Validate the deployment config
pnpm validate-deployment-config
Verify the deployments and validate their current state
# on all chains
pnpm verify-deployments
# or a single chain
NETWORK=ethereum pnpm verify-deployments
# on all chains
pnpm validate-deployments
# or a single chain
NETWORK=ethereum pnpm validate-deployments