Skip to content

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

impl #impl_generics tree_hash::TreeHash for #name #ty_generics #where_clause {
fn tree_hash_type() -> tree_hash::TreeHashType {
#(
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