OpenZeppelin / OpenZeppelin/openzeppelin-upgrades

Register proxies in hardhat node for logging purposes

Open
#137 5 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

buidler
Dominant language
TypeScript
Stars
658
Forks
286
PR merge metrics
No merged PRs in 30d

Description

Buidler's wrapper around ethereumjs-vm, buidler node, provides meaningful logs regarding contract deployment, since it recognizes each contract from its bytecode:

eth_sendTransaction
  Contract deployment: Pool
  Contract address:    0x7c2c195cd6d34b8f845992d380aadb2730bb9c6f
  Transaction:         0xd33fa355826d6e90b300718e1ab43e933f8dfe3a38e95dba307b82829047b897
  From:                0xc783df8a850f42e7f7e57013759c285caa701eb6
  Value:               0 ETH
  Gas used:            382547 of 1912735
  Block #1:            0xa7fd692368f8066a5d5171f6823366848ae81aea226ab59deb56449285bc5e28

However, when deploying a proxy, the operation is shown on an UnrecognizedContract:

eth_sendTransaction
  Contract deployment: <UnrecognizedContract>

See if it's possible to use buidler_addCompilationResult or a similar method to register the proxies bytecode and name, so they show as Proxy in the logs.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by investigating Buidler's buidler_addCompilationResult or a similar registration method and how buidler node identifies contract bytecode for transaction logs. Confirm whether proxy bytecode and the name Proxy can be registered, then verify that proxy deployments are reported as Proxy rather than <UnrecognizedContract>.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
blockchain, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.