Skip to content

Jumbo transaction logic + feature flag #3573

@Ferparishuertas

Description

@Ferparishuertas

Problem

TBD

Solution

When i create a new smart contract via sendRawTransaction, I want to be able to directly deploy the contract via a normal Ethereum Transaction, without needing the Json RPC internally to use HFS, and custom logic, due the. 6kb restrition.

The max size has been raised to 128kb, enabling to deploy smart contract directly ( max 24kb + Call params).

We need to add a new logic behind a feature flag, activated by default, that directly pings smart contract deployment to the consensus node, If deactivated, the HFS logic will still be triggered

Acceptance Criteria

  • When i deploy a smart contract, lower than the max SC Size 24kb, via JSON RPC relay, that has the JUMBO_TX_ENABLED= true, the code should succesfully call the consensus node, and succeed, if total transaction size is 128kb

  • When i deploy a smart contract, lower than the max sc Size 24kb, via JSON RPC relay, that has the JUMBO_TX_ENABLED= true, the code should not call the consensus node, if total transaction size is >128kb, showing a validation error

  • When i deploy a smart contract, bigger than the max SC Size 24kb, via JSON RPC relay, that has the JUMBO_TX_ENABLED= true, the code should not call the consensus node, and fail, showing a validation error

  • When i deploy a smart contract, smaller than the max SC Size 24kb, via JSON RPC relay, that has the JUMBO_TX_ENABLED= false, the code should not call the consensus node durectly, using the HFS logic, and succeed.

  • When i deploy a smart contract, bugger than the max SC Size 24kb, via JSON RPC relay, that has the JUMBO_TX_ENABLED= false, the code should not call the consensus node directly, failing

#Implementation Details

  • Add a new precheck for th 24kb size ( EIp-170)
  • We need sync with Services, to see their implementation staus

Alternatives

No response

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions