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

fix(connector-besu): set contract bytecode field's max length to 49154 #3637

Merged
merged 1 commit into from
Nov 30, 2024

Conversation

petermetz
Copy link
Contributor

Prior to this commit the Besu connector's API validated requests when deploying solidity
contracts via their bytecode such that the length of the bytecode parameter
cannot be longer than 24576 characters, but instead it should have an upper limit of
49154 characters because each byte is represented as two characters in hex.

See https://ethereum.stackexchange.com/a/47556 regarding the maximum length of the bytecode.
2 + (24576 * 2) = 49154 meaning that hex stores each byte in 2 characters and that
there is a 0x prefix (2 characters) which does not count towards the EVM 24576 bytecode limit."

Fixes #3636

Signed-off-by: Peter Somogyvari [email protected]

Pull Request Requirements

  • Rebased onto upstream/main branch and squashed into single commit to help maintainers review it more efficient and to avoid spaghetti git commit graphs that obfuscate which commit did exactly what change, when and, why.
  • Have git sign off at the end of commit message to avoid being marked red. You can add -s flag when using git commit command. You may refer to this link for more information.
  • Follow the Commit Linting specification. You may refer to this link for more information.

Character Limit

  • Pull Request Title and Commit Subject must not exceed 72 characters (including spaces and special characters).
  • Commit Message per line must not exceed 80 characters (including spaces and special characters).

A Must Read for Beginners
For rebasing and squashing, here's a must read guide for beginners.

Copy link
Contributor

@jagpreetsinghsasan jagpreetsinghsasan left a comment

Choose a reason for hiding this comment

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

LGTM

Prior to this commit the Besu connector's API validated requests when deploying solidity
contracts via their bytecode such that the length of the bytecode parameter
cannot be longer than 24576 characters, but instead it should have an upper limit of
49154 characters because each byte is represented as two characters in hex.

See https://ethereum.stackexchange.com/a/47556 regarding the maximum length of the bytecode.
2 + (24576 * 2) = 49154 meaning that hex stores each byte in 2 characters and that
there is a 0x prefix (2 characters) which does not count towards the EVM 24576 bytecode limit."

Fixes hyperledger-cacti#3636

Signed-off-by: Peter Somogyvari <[email protected]>
@petermetz petermetz requested a review from takeutak as a code owner November 30, 2024 18:13
@petermetz petermetz merged commit 33b2cf0 into hyperledger-cacti:main Nov 30, 2024
131 of 137 checks passed
@petermetz petermetz deleted the petermetz/issue3636 branch November 30, 2024 18:32
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.

fix(connector-besu): set contract bytecode field's max length to 49154
3 participants