diff --git a/scripts/deploy_accountant.py b/scripts/deploy_accountant.py index 9277b44..9d366a5 100644 --- a/scripts/deploy_accountant.py +++ b/scripts/deploy_accountant.py @@ -12,8 +12,7 @@ def deploy_accountant(): deployer = input("Name of account to use? ") deployer = accounts.load(deployer) - accountant = project.GenericAccountant - + accountant salt = getSalt(f"Accountant {chain.pending_timestamp}") print(f"Salt we are using {salt}") diff --git a/scripts/deploy_accountant_factory.py b/scripts/deploy_accountant_factory.py new file mode 100644 index 0000000..80b0e00 --- /dev/null +++ b/scripts/deploy_accountant_factory.py @@ -0,0 +1,35 @@ +from ape import project, accounts, Contract, chain, networks +from hexbytes import HexBytes +from scripts.deployments import getSalt, deploy_contract + + +def deploy_accountant(): + print("Deploying an Accountant Factory on ChainID", chain.chain_id) + + if input("Do you want to continue? ") == "n": + return + + deployer = input("Name of account to use? ") + deployer = accounts.load(deployer) + + accountant_factory = project.AccountantFactory + + salt = getSalt(f"Accountant Factory") + + print(f"Salt we are using {salt}") + print("Init balance:", deployer.balance / 1e18) + + # generate and deploy + deploy_bytecode = HexBytes( + accountant_factory.contract_type.deployment_bytecode.bytecode + ) + + print(f"Deploying Accountant actory...") + + deploy_contract(deploy_bytecode, salt, deployer) + + print("------------------") + + +def main(): + deploy_accountant() diff --git a/tests/conftest.py b/tests/conftest.py index 431bdcb..f3561d8 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -255,7 +255,17 @@ def deploy_generic_accountant( @pytest.fixture(scope="session") -def deploy_accountant(project, daddy, fee_recipient): +def deploy_accountant_factory(project, daddy): + def deploy_accountant_factory(): + accountant_factory = daddy.deploy(project.AccountantFactory) + + return accountant_factory + + yield deploy_accountant_factory + + +@pytest.fixture(scope="session") +def deploy_accountant(project, accountant_factory, daddy, fee_recipient): def deploy_accountant( manager=daddy, fee_recipient=fee_recipient, @@ -266,8 +276,7 @@ def deploy_accountant( max_gain=10_000, max_loss=0, ): - accountant = daddy.deploy( - project.Accountant, + accountant = accountant_factory.newAccountant( manager, fee_recipient, management_fee, @@ -276,9 +285,10 @@ def deploy_accountant( max_fee, max_gain, max_loss, + sender=daddy, ) - return accountant + return project.Accountant.at(accountant.return_value) yield deploy_accountant @@ -319,6 +329,13 @@ def generic_accountant(deploy_generic_accountant): yield generic_accountant +@pytest.fixture(scope="session") +def accountant_factory(deploy_accountant_factory): + accountant_factory = deploy_accountant_factory() + + yield accountant_factory + + @pytest.fixture(scope="session") def accountant(deploy_accountant): accountant = deploy_accountant()