Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade Strategy #7

Closed
minghinmatthewlam opened this issue Aug 28, 2023 · 1 comment
Closed

Upgrade Strategy #7

minghinmatthewlam opened this issue Aug 28, 2023 · 1 comment
Assignees
Labels
enhancement New feature or request upgradeability

Comments

@minghinmatthewlam
Copy link

Context and scope
Currently Teleporter is a non upgradeable contract, but in this case any bugs are found, or new features would like to be added, we would need some form of upgrade strategy.

Discussion and alternatives

  1. Implementing a pass-through proxy that forwards Teleporter calls on to the correct implementation contract, where the individual implementations maintain their own state. - @minghinmatthewlam points out that this would make it difficult to handle the msg.sender value when receiving teleporter messages, since it would change with each new implementation.
  2. Using the standard upgradable proxy smart contract pattern. - In this case, we would need to be careful about the contract state and variable ordering. This would mean that the proxy contract needs to be deployed to the same contract on each chain using Nick's method, and that it would be possible for different Teleporter versions to send messages to one another. This is a non-starter as Teleporter depends on knowing that the messages it receives are from the same contract deployed bytecode deployed on another chain.
  3. Using a upgradable protocol registry. - Instead of using a proxy, applications will simply lookup the current address to be used from a registry. We will provide a small intuitive library that wraps the necessary calls with the proper look up.
@minghinmatthewlam minghinmatthewlam added the enhancement New feature or request label Aug 28, 2023
@minghinmatthewlam minghinmatthewlam self-assigned this Aug 28, 2023
@minghinmatthewlam minghinmatthewlam moved this from 📋 Backlog to 🏗 In progress in Avalanche Warp Messaging Aug 29, 2023
@minghinmatthewlam minghinmatthewlam moved this from 🏗 In progress to ✍️ Design in Avalanche Warp Messaging Aug 31, 2023
@minghinmatthewlam minghinmatthewlam moved this from ✍️ Design to 🏗 In progress in Avalanche Warp Messaging Sep 22, 2023
@meeshhhh meeshhhh moved this from 🏗 In progress to 👀 In review in Avalanche Warp Messaging Oct 6, 2023
@minghinmatthewlam
Copy link
Author

closed with #43

@github-project-automation github-project-automation bot moved this from 👀 In review to ✅ Done in Avalanche Warp Messaging Nov 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request upgradeability
Projects
No open projects
Status: Done
Development

No branches or pull requests

1 participant