Output Solidity contract sizes with Hardhat
npm install @solidstate/hardhat-contract-sizerOutput Solidity contract sizes with Hardhat.
> Versions of this plugin prior to 3.0.0 were released as hardhat-contract-sizer, outside of the @solidstate namespace.
> Versions of this plugin prior to 2.0.0 were released as buidler-contract-sizer.
``bash`
npm install --save-dev @solidstate/hardhat-contract-sizeror
pnpm add -D @solidstate/hardhat-contract-sizer
Load plugin in Hardhat config:
`javascript
import HardhatContractSizer from '@solidstate/hardhat-contract-sizer';
const config: HardhatUserConfig = {
plugins: [
HardhatContractSizer,
],
contractSizer: {
... // see table for configuration options
},
};
`
Add configuration under the contractSizer key:
| option | description | default |
| -------------- | --------------------------------------------------------------------------------------------------------------------------- | ------- |
| alphaSort | whether to sort results table alphabetically (default sort is by contract size) | false |runOnCompile
| | whether to output contract sizes automatically after compilation | false |flat
| | whether to hide the full path to the compilation artifact and output only the contract name | false |strict
| | whether to throw an error if any contracts exceed the size limit | false |only
| | Array of String matchers used to select included contracts, defaults to all contracts if length is 0 | [] |except
| | Array of String matchers used to exclude contracts | [] |unit
| | unit of measurement for the size of contracts, which can be expressed in 'B' (bytes), 'kB' (kilobytes) or 'KiB' (kibibytes) | KiB |
Additional configuration options are provided by @solidstate/hardhat-git, which is included as a dependency.
Run the included Hardhat task to output compiled contract sizes:
`bash`
npx hardhat size-contractsor
pnpm hardhat size-contracts
By default, the hardhat compile task is run before sizing contracts. This behavior can be disabled with the --no-compile flag:
`bash`
npx hardhat size-contracts --no-compileor
pnpm hardhat size-contracts --no-compile
Install dependencies via pnpm:
`bash`
pnpm install
Setup Husky to format code on commit:
`bash``
pnpm prepare