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

runtime-transaction no gate traits #2986

Merged
merged 1 commit into from
Sep 30, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 2 additions & 14 deletions runtime-transaction/src/runtime_transaction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,19 +41,7 @@ pub struct RuntimeTransaction<T> {
meta: TransactionMeta,
}

// These traits gate access to static and dynamic metadata
// so that only transactions with supporting message types
// can access them.
trait StaticMetaAccess {}
trait DynamicMetaAccess: StaticMetaAccess {}

// Implement the gate traits for the message types that should
// have access to the static and dynamic metadata.
impl StaticMetaAccess for SanitizedVersionedTransaction {}
impl StaticMetaAccess for SanitizedTransaction {}
impl DynamicMetaAccess for SanitizedTransaction {}

impl<T: StaticMetaAccess> StaticMeta for RuntimeTransaction<T> {
impl<T> StaticMeta for RuntimeTransaction<T> {
Copy link
Author

Choose a reason for hiding this comment

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

static meta is available regardless of type.
access is gated via constructors.

fn message_hash(&self) -> &Hash {
&self.meta.message_hash
}
Expand All @@ -70,7 +58,7 @@ impl<T: StaticMetaAccess> StaticMeta for RuntimeTransaction<T> {
}
}

impl<T: DynamicMetaAccess> DynamicMeta for RuntimeTransaction<T> {}
impl<T: SVMMessage> DynamicMeta for RuntimeTransaction<T> {}
Copy link
Author

Choose a reason for hiding this comment

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

dynamic meta available for any type of SVMMessage, this that's where we know to have resolved ATLs


impl<T> Deref for RuntimeTransaction<T> {
type Target = T;
Expand Down
Loading