Skip to content

feat:Implement EIP-7702 (Type 4 transactions)#2558

Open
emiliyank wants to merge 5 commits intomainfrom
feature/type-4-transactions
Open

feat:Implement EIP-7702 (Type 4 transactions)#2558
emiliyank wants to merge 5 commits intomainfrom
feature/type-4-transactions

Conversation

@emiliyank
Copy link
Copy Markdown
Contributor

Description:
feat:Implement EIP-7702 (Type 4 transactions)

Related issue(s):

Fixes #2541

Checklist

  • Tested (unit, integration, etc.)

@emiliyank emiliyank requested review from a team as code owners December 12, 2025 13:59
@emiliyank emiliyank requested a review from agadzhalov December 12, 2025 13:59
@emiliyank emiliyank force-pushed the feature/type-4-transactions branch 2 times, most recently from 947e1b9 to 5767374 Compare December 12, 2025 19:40
Signed-off-by: emiliyank <e.kadiyski@gmail.com>
@emiliyank emiliyank force-pushed the feature/type-4-transactions branch from 5767374 to 8b75605 Compare December 12, 2025 19:48
Signed-off-by: emiliyank <e.kadiyski@gmail.com>
@emiliyank emiliyank force-pushed the feature/type-4-transactions branch from a843c91 to ef984af Compare December 12, 2025 19:56
…thod length

Signed-off-by: emiliyank <e.kadiyski@gmail.com>
Signed-off-by: emiliyank <e.kadiyski@gmail.com>
Signed-off-by: emiliyank <e.kadiyski@gmail.com>
@emiliyank emiliyank requested a review from a team as a code owner February 3, 2026 08:11
@emiliyank emiliyank requested a review from andrewb1269 February 3, 2026 08:11
Copy link
Copy Markdown
Contributor

@andrewb1269 andrewb1269 left a comment

Choose a reason for hiding this comment

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

Approve .github/workflows/build.yml file.

return EthereumTransactionDataLegacy.fromBytes(bytes);
} else {
return EthereumTransactionDataEip1559.fromBytes(bytes);
var typeByte = rlpItem.asByte();
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I other Java repositories we decided to not use var since it makes the code often less readable. We should do the same in the SDK.

/**
* ID of the chain.
*/
public byte[] chainId;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Since we do not have any setters for all the fields we should make them final. If all fields are final we can convert the class to a record

throw new IllegalArgumentException("expected RLP element list");
}
List<RLPItem> rlpList = rlpItem.asRLPList().elements();
if (rlpList.size() != 13) {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We have a lot of magic numbers in this code block. Can we externalize them as constants and add doc to them pls

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.

Support Pectra EVM transaction encoding

3 participants