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

[WIP] Implement EIP-7495: StableContainer #15

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

macladson
Copy link
Member

@macladson macladson changed the title [WIP] Implement EIP-7495 StableContainer [WIP] Implement EIP-7495: StableContainer May 17, 2024
@michaelsproul
Copy link
Member

Just pushed a smol commit (5c10761) to fix the duplicate dependency issues. The problem was the non-tree_hash crates were pulling in the git version of tree_hash, which cargo treats as completely separate from the current crate (i.e. the version of tree_hash currently checked out). The fix is to use patch to replace the git version of the crate with the local one.

Long-term I don't think this will be needed, as there'll be proper releases to depend on. Although I do wonder if there's a circular dependency now? ssz_types depends on tree_hash, but tree_hash_derive also dev-depends on ssz_types, and tree_hash dev-depends on tree_hash_derive... Maybe the fact that some of the deps are dev-dependencies makes it OK, but it kind of makes it harder to release tree_hash + tree_hash_derive together, as I think the dep chain (ignoring dev-dependencies) is now:

tree_hash <- ssz_types <- tree_hash_derive

and our release strategy previously was:

  • publish tree_hash_derive
  • publish tree_hash
  • publish ssz_types

whereas now it might have to be:

  • publish tree_hash
  • publish ssz_types
  • publish tree_hash_derive

@@ -224,11 +502,11 @@ fn tree_hash_derive_enum_transparent(
#(
assert_eq!(
Copy link

Choose a reason for hiding this comment

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

This assertion seems to prevent you from using superstruct with a transparent (or transparent_stable) tree_hash marker where one variant is a normal container and the other is a profile. This seems like a useful thing to do. Is there a way around this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants