From 3539886e67c6d3602da6d3d2b0417a6e3f9feb05 Mon Sep 17 00:00:00 2001 From: eerkaijun Date: Sun, 24 Sep 2023 13:11:51 +0100 Subject: [PATCH 1/2] separation of deployer and paymaster signer --- bundler.py | 19 ++++++++++++------- config.py | 8 +++++++- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/bundler.py b/bundler.py index ae38f1e..a4140ca 100644 --- a/bundler.py +++ b/bundler.py @@ -71,7 +71,17 @@ def setup_4337_contracts(config: L2Config): config.deployer_key = priv_key else: priv_key = config.deployer_key - lib.run("set private key", f"echo PRIVATE_KEY={priv_key} > account-abstraction/.env") + lib.run("set deployment key", f"echo PRIVATE_KEY={priv_key} > account-abstraction/.env") + # set private key for paymaster + if config.paymaster_key is None: + paymaster_key = input("Enter private key for paymaster signer: ") + config.paymaster_key = paymaster_key + else: + paymaster_key = config.paymaster_key + lib.run( + "set paymaster key", + f"echo PAYMASTER_PRIVATE_KEY={paymaster_key} >> account-abstraction/.env" + ) # set rpc url for deployment lib.run("set rpc url", f"echo RPC_URL={config.l2_engine_rpc} >> account-abstraction/.env") log_file = "logs/deploy_4337_contracts.log" @@ -155,12 +165,7 @@ def setup_paymaster(config: L2Config): f"echo TIME_VALIDITY={config.paymaster_validity} >> paymaster/.env" ) # set private key for paymaster - if config.deployer_key is None: - priv_key = input("Enter private key for paymaster signer: ") - config.deployer_key = priv_key - else: - priv_key = config.deployer_key - lib.run("set private key", f"echo PRIVATE_KEY={priv_key} >> paymaster/.env") + lib.run("set private key", f"echo PRIVATE_KEY={config.paymaster_key} >> paymaster/.env") # start paymaster signer service print("Starting paymaster signer service...") diff --git a/config.py b/config.py index 117772d..11fc531 100644 --- a/config.py +++ b/config.py @@ -382,7 +382,7 @@ def __init__(self): self.deployer_key = None """ - Private key to use for deploying 4337 contracts and paymaster signature (None by default). + Private key to use for deploying 4337 contracts (None by default). Will be used if set, otherwise will prompt users to enter private key. """ @@ -392,6 +392,12 @@ def __init__(self): Will be used if set, otherwise will prompt users to enter private key. """ + self.paymaster_key = None + """ + Private key as paymaster signer (None by default). + Will be used if set, otherwise will prompt users to enter private key. + """ + self.paymaster_validity = 300 """ Time validity (in seconds) for the sponsored transaction that is signed by paymaster. From c518e89d5d19b50139902d5b670d1febe401e545 Mon Sep 17 00:00:00 2001 From: eerkaijun Date: Sun, 24 Sep 2023 23:42:22 +0100 Subject: [PATCH 2/2] simplify key management statements --- bundler.py | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/bundler.py b/bundler.py index a4140ca..1da8871 100644 --- a/bundler.py +++ b/bundler.py @@ -67,20 +67,14 @@ def setup_4337_contracts(config: L2Config): ) # set private key for deployment if config.deployer_key is None: - priv_key = input("Enter private key that you would like to deploy contracts with: ") - config.deployer_key = priv_key - else: - priv_key = config.deployer_key - lib.run("set deployment key", f"echo PRIVATE_KEY={priv_key} > account-abstraction/.env") + config.deployer_key = input("Enter private key that you would like to deploy contracts with: ") + lib.run("set deployment key", f"echo PRIVATE_KEY={config.deployer_key} > account-abstraction/.env") # set private key for paymaster if config.paymaster_key is None: - paymaster_key = input("Enter private key for paymaster signer: ") - config.paymaster_key = paymaster_key - else: - paymaster_key = config.paymaster_key + config.paymaster_key = input("Enter private key for paymaster signer: ") lib.run( "set paymaster key", - f"echo PAYMASTER_PRIVATE_KEY={paymaster_key} >> account-abstraction/.env" + f"echo PAYMASTER_PRIVATE_KEY={config.paymaster_key} >> account-abstraction/.env" ) # set rpc url for deployment lib.run("set rpc url", f"echo RPC_URL={config.l2_engine_rpc} >> account-abstraction/.env") @@ -108,11 +102,8 @@ def setup_stackup_bundler(config: L2Config): f"echo ERC4337_BUNDLER_ETH_CLIENT_URL={config.l2_engine_rpc} > .env" ) if config.bundler_key is None: - priv_key = input("Enter private key for bundler: ") - config.bundler_key = priv_key - else: - priv_key = config.bundler_key - lib.run("set private key", f"echo ERC4337_BUNDLER_PRIVATE_KEY={priv_key} >> .env") + config.bundler_key = input("Enter private key for bundler: ") + lib.run("set private key", f"echo ERC4337_BUNDLER_PRIVATE_KEY={config.bundler_key} >> .env") # start bundler as a persistent process print("Starting bundler...")