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

Add 'blessed' transactions which are exempt from gas price rules #1072

Merged
merged 2 commits into from
Jun 24, 2024

Conversation

JamesHinshelwood
Copy link
Contributor

Currently this just includes the deployment transaction for the deterministic deployment proxy.

This PR also enables the REVM balance check. Previously, this was disabled because Scilla transfers would use the EVM execution flow and they often contained overly high gas limits. This is no longer the case. More alarmingly, it turns out that when the check is disabled, REVM just gives the sender of a transaction enough money to cover that transaction, meaning funds are invented out of thin air. So now mean that the sender of a transaction needs to have enough money to cover the provided gas_limit * gas_price + amount.

This means we've had to change how our 'system' transactions are processed. Previously, they would set a very high gas_limit and gas_price and the signer was the zero address. This obviously doesn't work any more since the zero address doesn't have any money at genesis. Instead, we now set the gas_price to zero and disable the gas price checks.

Resolves #1059

rrw-zilliqa
rrw-zilliqa previously approved these changes Jun 21, 2024
Copy link
Contributor

@rrw-zilliqa rrw-zilliqa left a comment

Choose a reason for hiding this comment

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

Looks good to me, modulo comments .

zilliqa/src/exec.rs Outdated Show resolved Hide resolved
zilliqa/src/exec.rs Show resolved Hide resolved
zilliqa/src/exec.rs Outdated Show resolved Hide resolved
…ministic deployment proxy.

This PR also enables the REVM balance check. Previously, this was disabled because Scilla transfers would use the EVM execution flow and they often contained overly high gas limits. This is no longer the case. More alarmingly, it turns out that when the check is disabled, REVM just gives the sender of a transaction enough money to cover that transaction, meaning funds are invented out of thin air. So now mean that the sender of a transaction needs to have enough money to cover the provided `gas_limit * gas_price + amount`.

This means we've had to change how our 'system' transactions are processed. Previously, they would set a very high gas_limit and gas_price and the signer was the zero address. This obviously doesn't work any more since the zero address doesn't have any money at genesis. Instead, we now set the gas_price to zero and disable the gas price checks.

Resolves #1059
Copy link
Contributor

@rrw-zilliqa rrw-zilliqa left a comment

Choose a reason for hiding this comment

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

Looks good to me :-)

zilliqa/src/exec.rs Show resolved Hide resolved
@rrw-zilliqa
Copy link
Contributor

#1081 .

Merged via the queue into main with commit 598aebc Jun 24, 2024
4 checks passed
@JamesHinshelwood JamesHinshelwood deleted the blessed-txs branch June 24, 2024 10:29
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.

Enable deployment of the Arachnid proxy
2 participants