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

Clarify version incompatibility #405

Merged
merged 5 commits into from
Jun 26, 2024
Merged

Conversation

cam-schultz
Copy link
Contributor

Why this should be merged

Adds to the top-level README a note about TeleporterMessenger version incompatibility.

How this works

How this was tested

How is this documented

Updates top level README

geoff-vball
geoff-vball previously approved these changes Jun 20, 2024
Copy link
Contributor

@bernard-avalabs bernard-avalabs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a clarification question about major releases and versions.

README.md Outdated

| Contract | Address | Chain |
| --------------------- | ---------------------------------------------- | ------------------------ |
| `TeleporterMessenger` | **0x253b2784c75e510dD0fF1da844684a1aC0aa5fcf** | All chains, all networks |
| `TeleporterRegistry` | **0x7C43605E14F391720e1b37E49C78C4b03A488d98** | Mainnet C-Chain |
| `TeleporterRegistry` | **0xF86Cb19Ad8405AEFa7d09C778215D2Cb6eBfB228** | Fuji C-Chain |

- When deployed using [Nick's method](https://yamenmerhi.medium.com/nicks-method-ethereum-keyless-execution-168a6659479c#), `TeleporterMessenger` will be at the same address on all chains. See [Teleporter Contract Deployment](./utils/contract-deployment/README.md) and [Deploy Teleporter to a Subnet](#deploy-teleporter-to-a-subnet) for more details.
- Using [Nick's method](https://yamenmerhi.medium.com/nicks-method-ethereum-keyless-execution-168a6659479c#), `TeleporterMessenger` deploys at a universal address across all chains, varying with each teleporter major release. **Compatibility exists only between same-version `TeleporterMessenger` instances.** See [Teleporter Contract Deployment](./utils/contract-deployment/README.md) and [Deploy Teleporter to a Subnet](#deploy-teleporter-to-a-subnet) for more details.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There was a mention of different "major" releases of Teleporter in the first sentence. Is compatibility provided only between the exact same version of TeleporterMessenger instances, or are instances compatible as long as they are part of the same major release (but differ in their minor release/version)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technically speaking, any change to the TeleporterMessenger bytecode creates an incompatibility. This is reflected in our release/versioning policy of reserving major releases for such changes. Minor/Patch releases should remain compatible. To ensure this, we reserve such releases for contract changes that do not change the TeleporterMessenger bytecode, and for non-Solidity utility changes.

I've gone ahead and added this to the README as well.

geoff-vball
geoff-vball previously approved these changes Jun 20, 2024
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
Copy link
Contributor

@bernard-avalabs bernard-avalabs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@cam-schultz cam-schultz merged commit 0529c8a into main Jun 26, 2024
14 checks passed
@geoff-vball geoff-vball deleted the version-incompatibility-readme branch August 1, 2024 13:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

4 participants