Skip to content
This repository has been archived by the owner on Jan 9, 2025. It is now read-only.

Commit

Permalink
refactor: remove coinbase constructor arg (#1438)
Browse files Browse the repository at this point in the history
<!--- Please provide a general summary of your changes in the title
above -->

<!-- Give an estimate of the time you spent on this PR in terms of work
days.
Did you spend 0.5 days on this PR or rather 2 days?  -->

Time spent on this PR:

## Pull request type

<!-- Please try to limit your pull request to one type,
submit multiple pull requests if needed. -->

Please check the type of change your PR introduces:

- [ ] Bugfix
- [ ] Feature
- [ ] Code style update (formatting, renaming)
- [ ] Refactoring (no functional changes, no api changes)
- [ ] Build related changes
- [ ] Documentation content changes
- [ ] Other (please describe):

## What is the current behavior?

<!-- Please describe the current behavior that you are modifying,
or link to a relevant issue. -->

Resolves #1391

## What is the new behavior?

<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Removes the COINBASE constructor argument. If not set later, fees will
be burnt.
-
-

<!-- Reviewable:start -->
- - -
This change is [<img src="https://reviewable.io/review_button.svg"
height="34" align="absmiddle"
alt="Reviewable"/>](https://reviewable.io/reviews/kkrt-labs/kakarot/1438)
<!-- Reviewable:end -->

---------

Co-authored-by: Clément Walter <[email protected]>
  • Loading branch information
enitrat and ClementWalter authored Sep 24, 2024
1 parent 45e5f7c commit f364214
Show file tree
Hide file tree
Showing 6 changed files with 15 additions and 14 deletions.
2 changes: 1 addition & 1 deletion kakarot_scripts/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ class ChainId(IntEnum):
ETH_TOKEN_ADDRESS = 0x49D36570D4E46F48E99674BD3FCC84644DDD6B96F7C741B1562B82F9E004DC7
COINBASE = int(
os.getenv("KAKAROT_COINBASE_RECIPIENT")
or "0x20eB005C0b9c906691F885eca5895338E15c36De",
or "0x20eB005C0b9c906691F885eca5895338E15c36De", # Defaults to faucet on appchain sepolia
16,
)
CAIRO_ZERO_DIR = Path("src")
Expand Down
16 changes: 13 additions & 3 deletions kakarot_scripts/deploy_kakarot.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
)
from kakarot_scripts.utils.kakarot import dump_deployments as dump_evm_deployments
from kakarot_scripts.utils.kakarot import get_deployments as get_evm_deployments
from kakarot_scripts.utils.starknet import declare
from kakarot_scripts.utils.starknet import call, declare
from kakarot_scripts.utils.starknet import deploy as deploy_starknet
from kakarot_scripts.utils.starknet import (
dump_declarations,
Expand Down Expand Up @@ -63,9 +63,14 @@ async def main():
class_hash["account_contract"], # account_contract_class_hash_
class_hash["uninitialized_account"], # uninitialized_account_class_hash_
class_hash["Cairo1Helpers"],
COINBASE,
BLOCK_GAS_LIMIT,
)
await invoke(
"EVM",
"set_coinbase",
COINBASE,
address=starknet_deployments["EVM"]["address"],
)
starknet_deployments["Counter"] = await deploy_starknet("Counter")
starknet_deployments["MockPragmaOracle"] = await deploy_starknet(
"MockPragmaOracle"
Expand Down Expand Up @@ -105,7 +110,6 @@ async def main():
class_hash["account_contract"], # account_contract_class_hash_
class_hash["uninitialized_account"], # uninitialized_account_class_hash_
class_hash["Cairo1Helpers"],
COINBASE,
BLOCK_GAS_LIMIT,
)
await invoke(
Expand Down Expand Up @@ -149,6 +153,12 @@ async def main():
)
await invoke("kakarot", "set_coinbase", int(bridge.address, 16))

coinbase = (await call("kakarot", "get_coinbase")).coinbase
if coinbase == 0:
logger.error("❌ Coinbase is set to 0, all transaction fees will be lost")
else:
logger.info(f"✅ Coinbase set to: 0x{coinbase:040x}")

weth = await deploy_evm("WETH", "WETH9")
evm_deployments["WETH"] = {
"address": int(weth.address, 16),
Expand Down
2 changes: 0 additions & 2 deletions src/kakarot/kakarot.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,6 @@ func constructor{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr
account_contract_class_hash: felt,
uninitialized_account_class_hash: felt,
cairo1_helpers_class_hash: felt,
coinbase: felt,
block_gas_limit: felt,
) {
return Kakarot.constructor(
Expand All @@ -87,7 +86,6 @@ func constructor{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr
account_contract_class_hash,
uninitialized_account_class_hash,
cairo1_helpers_class_hash,
coinbase,
block_gas_limit,
);
}
Expand Down
3 changes: 0 additions & 3 deletions src/kakarot/library.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -43,22 +43,19 @@ namespace Kakarot {
// @param account_contract_class_hash The clash hash of the contract account.
// @param uninitialized_account_class_hash The class hash of the uninitialized account used for deterministic address calculation.
// @param cairo1_helpers_class_hash The precompiles class hash for precompiles not implemented in Kakarot.
// @param coinbase The EOA whose key is owned by the deployer (or known to be owned by Coinbase)
func constructor{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}(
owner: felt,
native_token_address,
account_contract_class_hash,
uninitialized_account_class_hash,
cairo1_helpers_class_hash,
coinbase,
block_gas_limit,
) {
Ownable.initializer(owner);
Kakarot_native_token_address.write(native_token_address);
Kakarot_account_contract_class_hash.write(account_contract_class_hash);
Kakarot_uninitialized_account_class_hash.write(uninitialized_account_class_hash);
Kakarot_cairo1_helpers_class_hash.write(cairo1_helpers_class_hash);
Kakarot_coinbase.write(coinbase);
Kakarot_block_gas_limit.write(block_gas_limit);
return ();
}
Expand Down
1 change: 1 addition & 0 deletions tests/fixtures/EVM.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ from kakarot.kakarot import (
get_account_contract_class_hash,
get_cairo1_helpers_class_hash,
get_native_token,
set_coinbase,
)
from backend.starknet import Starknet, Internals as StarknetInternals
from utils.dict import dict_keys, dict_values
Expand Down
5 changes: 0 additions & 5 deletions tests/utils/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,6 @@
# Account balance is the amount of funds that the account has after being deployed
ACCOUNT_BALANCE = PRE_FUND_AMOUNT

# Coinbase address is the address of the sequencer
MOCK_COINBASE_ADDRESS = (
0x388CA486B82E20CC81965D056B4CDCAACDFFE0CF08E20ED8BA10EA97A487004
)

# STACK
STACK_MAX_DEPTH = 1024

Expand Down

0 comments on commit f364214

Please sign in to comment.