Skip to content
This repository was archived by the owner on Apr 8, 2026. It is now read-only.

feat: better BuildInfo support#59

Merged
mattsse merged 3 commits intofoundry-rs:developfrom
tynes:feat/better-build-info
Jun 20, 2022
Merged

feat: better BuildInfo support#59
mattsse merged 3 commits intofoundry-rs:developfrom
tynes:feat/better-build-info

Conversation

@tynes
Copy link
Copy Markdown
Collaborator

@tynes tynes commented Jun 20, 2022

This PR is a companion to foundry-rs/foundry#2012

It adds better support for hre.artifacts.getBuildInfo. The hardhat plugin doesn't currently have access to the values that make up the hash for the filename, so it simply searches through each BuildInfo to find the correct one. Not super ideal, but works for now.

It will generate the debug files in the same way that hardhat does, so hardhat plugins that rely on the debug files should just work.

To be able to optimize this, the hardhat plugin needs to be able to compute md5(_format,solcVersion,solcLongVersion,input)

tynes added 3 commits June 20, 2022 12:29
Requires foundry with foundry-rs/foundry@6ce16a4.
Generates the debug files for easy access to the build info files
during hardhat scripts.
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Jun 20, 2022

🦋 Changeset detected

Latest commit: cff90a5

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@foundry-rs/hardhat-forge Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@mattsse
Copy link
Copy Markdown
Member

mattsse commented Jun 20, 2022

To be able to optimize this, the hardhat plugin needs to be able to compute md5(_format,solcVersion,solcLongVersion,input)

perhaps we need to revise this as well:

https://github.com/gakonst/ethers-rs/blob/77ca64d850191e09aa08e2ac91061bc09b350eb0/ethers-solc/src/buildinfo.rs#L60-L62

because this rather hashes {... I think

chose this for efficiency reasons, as we can hash the json buffer without creating (large) temporary json objects that then need to be hashed.

@mattsse mattsse merged commit bb320b3 into foundry-rs:develop Jun 20, 2022
@tynes tynes mentioned this pull request Jun 20, 2022
tynes added a commit that referenced this pull request Jun 21, 2022
* feat(hardhat-forge): better `BuildInfo` support

Requires foundry with foundry-rs/foundry@6ce16a4.
Generates the debug files for easy access to the build info files
during hardhat scripts.

* feat(hardhat-forge): buildinfo tests

* feat(hardhat-forge): better `BuildInfo` support
gakonst added a commit that referenced this pull request Jun 24, 2022
* Version Packages (#44)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix(hh/forge): typechain support (#45) (#46)

Typechain uses a private method on the artifact
with an unsafe `any` typecast to get artifact paths.
To work with typechain, this method must exist until
typechain is updated.

The issue is here: dethcrypto/TypeChain#544

Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>

* Version Packages (#47)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Merge develop into master (#49)

* fix(hh/forge): typechain support (#45)

Typechain uses a private method on the artifact
with an unsafe `any` typecast to get artifact paths.
To work with typechain, this method must exist until
typechain is updated.

The issue is here: dethcrypto/TypeChain#544

* feat: `Artifacts.getBuildInfo` (#48)

Implement a naive `getBuildInfo` function. This is useful
for tooling that integrates more deeply with the hardhat ecosystem.
Note that this implementation is not 100% with the output
that the hardhat compiler toolchain outputs, but the output
is good enough to get more tooling to be compatible.

* Version Packages

* Merge develop into master (#55)

* fix(hh/forge): typechain support (#45)

Typechain uses a private method on the artifact
with an unsafe `any` typecast to get artifact paths.
To work with typechain, this method must exist until
typechain is updated.

The issue is here: dethcrypto/TypeChain#544

* feat: `Artifacts.getBuildInfo` (#48)

Implement a naive `getBuildInfo` function. This is useful
for tooling that integrates more deeply with the hardhat ecosystem.
Note that this implementation is not 100% with the output
that the hardhat compiler toolchain outputs, but the output
is good enough to get more tooling to be compatible.

* hardhat-forge: use the correct source name (#51)

The relative path to the file from the root
of the project should be used as the source name
in the artifact.

Closes #36

This will fix tooling that depends on the source name:
https://github.com/defi-wonderland/smock/blob/27fe7a5f3c351714257cdc98204e282932c11e12/src/utils/storage.ts#L54

* test: explicitly set port for anvil (#53)

* test: explicitly set port for anvil

* chore: add changeset

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* Version Packages (#56)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: `Artifacts.getBuildInfo` (#48)

Implement a naive `getBuildInfo` function. This is useful
for tooling that integrates more deeply with the hardhat ecosystem.
Note that this implementation is not 100% with the output
that the hardhat compiler toolchain outputs, but the output
is good enough to get more tooling to be compatible.

* hardhat-forge: use the correct source name (#51)

The relative path to the file from the root
of the project should be used as the source name
in the artifact.

Closes #36

This will fix tooling that depends on the source name:
https://github.com/defi-wonderland/smock/blob/27fe7a5f3c351714257cdc98204e282932c11e12/src/utils/storage.ts#L54

* test: explicitly set port for anvil (#53)

* test: explicitly set port for anvil

* chore: add changeset

* feat: better `BuildInfo` support (#59)

* feat(hardhat-forge): better `BuildInfo` support

Requires foundry with foundry-rs/foundry@6ce16a4.
Generates the debug files for easy access to the build info files
during hardhat scripts.

* feat(hardhat-forge): buildinfo tests

* feat(hardhat-forge): better `BuildInfo` support

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants