feat!: RulesHooks.CanCreateContract() accepts and returns gas #28
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why this should be merged
Allows contract-creation allowlist hooks to consume all (or some) gas. The check is also placed equivalently to the deployer allowlist, to ensure parity with
subnet-evm
+coreth
.Closes #24
How this works
The hook is updated to accept
gas
and returngasRemaining
in addition to any error. TheNOOPHook
simply echoes its incoming gas value.The placement of the check is in keeping with the deployer allowlist, but not the
IsProhibited()
check. The latter is unnecessary as it checks that the 160-bit truncation of akeccak
hash is not specific values1, the pre-images of which are unknown.How this was tested
Footnotes
Prohibited values are
address(0)
and the precompiles, which are all of the form0x020000...00[x]
wherex
is incrementing. ↩