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

feat(protocol)!: reserve 2 slots for TaikoData.Transition [wait for base PR to be merged first] #15711

Closed

Conversation

dantaik
Copy link
Contributor

@dantaik dantaik commented Feb 9, 2024

No description provided.

@dantaik dantaik marked this pull request as ready for review February 9, 2024 05:20
@dantaik dantaik changed the title feat(protocol)!: reserve 2 slots for TaikoData.Transition feat(protocol)!: reserve 2 slots for TaikoData.Transition [do not auto-merge] Feb 9, 2024
Comment on lines -789 to +792
TaikoData.Transition memory tran = TaikoData.Transition({
parentHash: parentHash,
blockHash: blockHash,
stateRoot: stateRoot,
graffiti: 0x0
});
TaikoData.Transition memory tran;
tran.parentHash = parentHash;
tran.blockHash = blockHash;
tran.stateRoot = stateRoot;
Copy link
Contributor

Choose a reason for hiding this comment

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

I would still use the normal struct initialization, otherwise if the struct does still change it will be tricky to track all the places it needs to be updated. (Generally it's even more gas efficient like that because I think now solidity zeros the memory first and then needs to still overwrite it anyway, but the difference is so small it doesn't really matter).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think in test the current approach is fine. And even if we use the "normal struct initialisation", we cannot prevent individual fields from being reassigned new values. We still have to know what shall be assigned and what shall not.

Copy link
Contributor

Choose a reason for hiding this comment

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

Reassigning is a good thing I feel because it's a conscious decision. Compared to forgetting to set something to the correct updated value, that's not so good.

But for tests indeed not so important except a bit harder to maintain the code.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Closed this one to use #15716

@dantaik dantaik changed the title feat(protocol)!: reserve 2 slots for TaikoData.Transition [do not auto-merge] feat(protocol)!: reserve 2 slots for TaikoData.Transition [wait for base PR to be merged first] Feb 9, 2024
@dantaik dantaik closed this Feb 9, 2024
@dantaik dantaik deleted the reserve_slots_for-TaikoData.Transition branch March 1, 2024 04:01
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.

2 participants