-
Notifications
You must be signed in to change notification settings - Fork 2
Fix deserialization error: invalid value: string "0x2d79dd80ff729c000"
#34
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
Conversation
This commit adds the `--dev` argument to the `substrate-node` to allow the chain to keep advancing as time goes own. We have found that if this option is not added then the chain won't advance forward.
|
It looks like this solution will not be needed in the long-term based on this discussion on element. So, once the new gas implementation is in place we can go ahead and remove the custom alloy network implementation here (I think) |
Fix an issue where kitchensink won't advance
| #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] | ||
| struct KitchenSinkNetwork; | ||
|
|
||
| impl Network for KitchenSinkNetwork { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything that doesn't need to be changed is used as is from the Network implementation of Ethereum.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense
xermicus
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am wondering is this something that could be fixed on our RPC to gain more compatibility with Ethereum?
|
Interesting find btw. 😀 |
|
@xermicus Yup! I think the team is planning on doing that according to this discussion in element, so it seems like this is in the plans. I thought I'd add this until we get that in and then we can remove the custom network :) |
| .clone() | ||
| .open(self.kitchensink_stderr_log_file_path())?; | ||
| self.process_substrate = Command::new(&self.substrate_binary) | ||
| .arg("--dev") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Curious why did we add this ? The plan was to start the substrate node using the chainspec file generated by the geth genesis file, so we start from the same state on both of the nodes (same addresses, etc). Wouldn't the --dev pollute this state ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
--chain has precedence if explicitly set. --dev does not override any explicitly set flags.
|
See also: paritytech/polkadot-sdk#9177 |
|
@xermicus Oh, nice! So it seems like this will soon be fixed in new versions of the polkadot SDK? |
|
@xermicus Would you be okay with us merging in this change until the PR you linked is merged into upstream polkadot-sdk and we update the version we use in this repo? (It doesn't relate to geth vs geth but it would be nice to get it merged so we can merge some of the other PRs that depend on this one) |
|
Yes if it helps you to move on please feel free to merge it. |
|
@xermicus Sounds good, can I please get a review on this PR? :) |
Summary
This PR fixes an error encountered in the Kitchensink transaction submission flow where the
alloywould error out with the following error:Description
I have a breakdown of this issue and its causes in #33. To summarize:
alloyis expecting thegasLimitto be au64(despite none of the Ethereum specs saying that it should be au64)u64.u64.alloyallows clients to define custom networks with custom types for everything such as the block header, the block structure, the transaction structure, and so much more.KitchenSinkalloy network which uses au128for the gas limit. We can then use this network anytime we create an alloy provider.