question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[ProxyAdmin] Upgrade implementation of multiple proxies with one tx

See original GitHub issue

🧐 Motivation

I have 2 upgradable smart contracts that trust and interact with each other. I want to upgrade both of them in a way that changes their interaction API.

Upgrading them one by one will cause the downtime of the system when first contract is upgraded and second one is not. I don’t see a way to perform such operation even though proxies are owned by the same ProxyAdmin contract.

📝 Details

contract ProxyAdmin {
  function upgradeAll(TransparentUpgradeableProxy[] proxies, address[] implementations) public virtual onlyOwner {
    ... 
  }
} 

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:5 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
Amxxcommented, Jun 18, 2021

You might want to do

contract ProxyAdmin2 is ProxyAdmin, Multicall {}

using the new multi-call utility.

0reactions
bogdancommented, Oct 6, 2021

Yes, that works.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Proxy Upgrade Pattern - OpenZeppelin Docs
This article describes the "unstructured storage" proxy pattern, ... point to a different logic implementation and in doing so, the software is "upgraded"....
Read more >
Web3 Tutorial: write upgradeable smart contract (proxy) using ...
When upgrading the contract, what we do is: deploy a new "Implementation contract"; upgrade in "ProxyAdmin contract" by redirecting all calls to ...
Read more >
Upgrading multiple proxy contracts in Solidity in one call
As I wrote in my previous post: Each implementation contract is called a facet, like the facets of a diamond. In the proxy's...
Read more >
Upgradeable BEP20 Contracts on BSC
You can use your Solidity contracts in the OpenZeppelin Upgrades without any modifications, except for their constructors. Due to a requirement of the...
Read more >
Upgrading Smart Contracts - Should You Do it and How?
Smart contract upgrades are essentially different strategies one might ... upgrade patterns rely on a proxy contract and an implementation ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found