Skip to content

Feat: Add Governance Contract#436

Merged
FHieser merged 42 commits intotemp_devfrom
governance-contract
Apr 10, 2024
Merged

Feat: Add Governance Contract#436
FHieser merged 42 commits intotemp_devfrom
governance-contract

Conversation

@FHieser
Copy link
Contributor

@FHieser FHieser commented Apr 4, 2024

Solves SC-48

@FHieser FHieser requested a review from marvinkruse April 4, 2024 14:15
@FHieser FHieser changed the base branch from main to temp_dev April 4, 2024 14:15
@FHieser FHieser marked this pull request as draft April 4, 2024 14:16
@FHieser
Copy link
Contributor Author

FHieser commented Apr 4, 2024

@marvinkruse the e2e and scripts are missing, but the logic is done as well as most of the tests (i want to still do a small improvement there)
With that I think you can already give your feedback

@marvinkruse marvinkruse changed the title Governance contract Feat: Add Governance Contract Apr 4, 2024
@@ -1,61 +0,0 @@
// SPDX-License-Identifier: LGPL-3.0-only
Copy link
Collaborator

Choose a reason for hiding this comment

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

What was this file used for? Just curious

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah my bad
I think initially this was used as an copy paste example of how to structure e2e tests,
but in my cleanup rage I deleted it. 😅
I reverted the change, but I would argue, that with our repo still constantly changing this might be something that we might not think of when we make changes to the e2e tests in general
@0xNuggan any opinion on this, because you created it?

@FHieser FHieser marked this pull request as ready for review April 9, 2024 21:23
Copy link
Member

@marvinkruse marvinkruse 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 (besides my small comments), really good work!

Feel free to just resolve any of my comments that you address/don't think make sense, so we can progress with getting this merged.

//--------------------------------------------------------------------------
// Modifiers

modifier validNewMinorVersion(uint newMinorVersion) {
Copy link
Collaborator

@Zitzak Zitzak Apr 10, 2024

Choose a reason for hiding this comment

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

Why did this modifier get removed? Will this check be done somewhere else? Would be curious about what's the thought behind this

Copy link
Contributor Author

Choose a reason for hiding this comment

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

#432

Nuggan mentioned it in this issue, so I thought I would tackle it in one go

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Also it was needed when I used the upgrade function in the beacon constructor, although there might have been ways around that, now that I think about it

Copy link
Member

Choose a reason for hiding this comment

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

Oh, I noticed this in my scripts PR as well and fixed it there as well 😂 (allowing 0 version, but only if it's the first one that is set in the beacon). But that's on me, I will go through merging hell and see what happens there once we get there.

Copy link
Member

@marvinkruse marvinkruse left a comment

Choose a reason for hiding this comment

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

lgtm - really good work! 👏

@FHieser FHieser merged commit ccd84fe into temp_dev Apr 10, 2024
@FHieser FHieser deleted the governance-contract branch April 10, 2024 11:23
marvinkruse pushed a commit that referenced this pull request Apr 12, 2024
* Create IGovernanceContract.sol

* Create GovernanceContract.sol

* Add Natspec

* Refactoring and improvements

* Create Tests

* Add more detail to test

* Add Governance to dev.env

* Update ModuleFactoryMock.sol

* Update ModuleFactory.t.sol

* Remove comment

* Remove comments

* Update Module Factory to check for governanceContract ownership

* Add Governance to E2ETests

* Update InverterBeaconE2E.t.sol

* Delete ModuleTest_Template.txt

* Fix Tests

* Fix to a buildable state in scripts

* Create DeployGovernanceContract.s.sol

* Fix description

* Remove validNewVersion and add setImplementation in Constructor

* Update Makefile

* Fix typo

* Update DeploymentScript.s.sol

* Rename to governor contract

* Correct error naming and set minimum Timelock Period to 48h

* Revert "Delete ModuleTest_Template.txt"

This reverts commit a62d07c.

* Fix based on recommondations

* Test for beacon not owned by Governor

* Make Governance Implementation a proxy in scripts and e2e

* accessible instead of accessable

* Fix typos

* Adapt naming

* Adapt naming

* Change naming

* Adapt naming

* Remove Ownable dependency

* Use AccessControlUpgradeable instead of AccessControl

* Adapt naming

* Forgot the R in Governor
marvinkruse pushed a commit that referenced this pull request Apr 12, 2024
* Create IGovernanceContract.sol

* Create GovernanceContract.sol

* Add Natspec

* Refactoring and improvements

* Create Tests

* Add more detail to test

* Add Governance to dev.env

* Update ModuleFactoryMock.sol

* Update ModuleFactory.t.sol

* Remove comment

* Remove comments

* Update Module Factory to check for governanceContract ownership

* Add Governance to E2ETests

* Update InverterBeaconE2E.t.sol

* Delete ModuleTest_Template.txt

* Fix Tests

* Fix to a buildable state in scripts

* Create DeployGovernanceContract.s.sol

* Fix description

* Remove validNewVersion and add setImplementation in Constructor

* Update Makefile

* Fix typo

* Update DeploymentScript.s.sol

* Rename to governor contract

* Correct error naming and set minimum Timelock Period to 48h

* Revert "Delete ModuleTest_Template.txt"

This reverts commit a62d07c.

* Fix based on recommondations

* Test for beacon not owned by Governor

* Make Governance Implementation a proxy in scripts and e2e

* accessible instead of accessable

* Fix typos

* Adapt naming

* Adapt naming

* Change naming

* Adapt naming

* Remove Ownable dependency

* Use AccessControlUpgradeable instead of AccessControl

* Adapt naming

* Forgot the R in Governor
marvinkruse added a commit that referenced this pull request Apr 14, 2024
* [DO NOT MERGE] OpenZeppelin V5 update (#401)

* chore: update OZ lib to V5

* chore: update openzeppelin to v5

- updated paths were needed
- added constructor arguments for Ownable update
- updated OZErrors and the expectRevert that were using them to work with
custom errors
- replaces Address.isContract with the logic it used, as it has been removed

* chore: update Solidity version 0.8.19 -> 0.8.20

* format: format code

* chore: fix CI and update version

The CI failed because of imports, which are now corrected.

Next to this we decided to set the Solidity version to 0.8.23 because
it will be more up-to-date when we launch to mainnet

* Delete .gas-snapshot

* Update .gitignore

* Change TestsupportsInterface to only check immediate Iterfaces

---------

Co-authored-by: hieser <47272854+FHieser@users.noreply.github.com>
Co-authored-by: FHieser <felix_hieser@web.de>

* chore: update CI to include testing scripts

* Update ci.yml (#421)

* fix: solved address collition in bc test

* SC-122: Implement MultiCall and MetaTransaction Support (#405)

* chore: update OZ lib to V5

* chore: update openzeppelin to v5

- updated paths were needed
- added constructor arguments for Ownable update
- updated OZErrors and the expectRevert that were using them to work with
custom errors
- replaces Address.isContract with the logic it used, as it has been removed

* chore: update Solidity version 0.8.19 -> 0.8.20

* format: format code

* 394 metatransactions dev (#399)

* Modify ModuleManager to enact ERC2771

* Intermediate Push

I need to check something and pushing makes most sense he

* Fix inheritance to enable build

* Expose isTrustedForwarder in Orchestrator

* Implement modified ERC2771 to Module

* Fix Tests

A lot of modules havent  been properly initialized in the tests. The fix targets that by actually using the proxy Clone implementation and then properly  initializing them

* Add Module Test

* Implement MinimalForwarder

* Fix MakeFile

* Create E2ETest

* Add specific Role section in E2E Test

* Remove todo

* Marvin G Fix

* Foundryup formatting

* Fix after openZepplelin Update

* Create Transaction forwarder

* Update IModule.sol

* Change to Transaction forwarder

* chore: fix CI and update version

The CI failed because of imports, which are now corrected.

Next to this we decided to set the Solidity version to 0.8.23 because
it will be more up-to-date when we launch to mainnet

* WIP

* Fixing tests

* Cleanup

* Add Multicall Section into E2ETest

* Cleanup

* Merge fix

* Fix based on comments

* Delete .gas-snapshot

* Update .gitignore

* Change TestsupportsInterface to only check immediate Iterfaces

* Fix merge

* Create DeployAndSetUpTransactionForwarder.s.sol

* Add Transaction Forwarder Script to deployment scripts

---------

Co-authored-by: Zitzak <marvin88gr@gmail.com>

* SC-140: Implement version and intervention mechanism in beacon (#418)

* Rename Contracts

* Refactor Beacons and add Version function

* Make it buildable

* Fix test

* Cleanup

* Update InverterBeacon.t.sol

* Update InverterBeacon.t.sol

* add BeaconProxy Test

* Clarify Outcommented

* Fix Beacon Upgrade Script

* Update UpgradeBeacon.s.sol

* Add Intervention Mechanism to InverterBeacon

* Make it buildable

* PR comment fix

* Add tests

* Add Interface

* Cleanup

* Move and update Beacon e2e

* Update InverterBeaconE2E.t.sol

* Cleanup

* Adapt naming

* Fix after merge

* Fix ModuleTest bug

* Create digest helper function for meta tx forwarder (#430)

* Create digest creation function

* Cleanup

* Add getDigest Test

* add _ to getStructHash()

* Update deployment metadata

* typo fixes

* format + change active addresses

* Fix: Revamp scripts & re-add to CI (#419)

* Fix: Workflow File Syntax

* Chore: Update VSCode settings

- Adding the git.detectSubmodule setting to the config. This tells your local VSCode to ignore the submodules in the "git" tab. Which makes it a bit easier to work with, as we will only touch the submodules via forge commands anyways.
- Update remote compiler version to 0.8.23 as well (just in case)

* Chore: Add install cmd to Makefile

* Fix: Old Wording in Makefile

* Add basic run functions

* Update ci.yml

* Swap scripts to higher position

* Update ci.yml

* Test removing the override of the clean command

* Split make pre-test into pre-test and pre-script

* Update Makefile

* Update Env Variables in make file

* Fix typo

* Quick test

* Revert "Quick test"

This reverts commit 192f71e.

* Change comments

* Update ci.yml to source the env from dev.env

* Test if set dev command was wrong

* Update ci.yml

* Update ci.yml

* Test setting env in make file directly

* Load directly from the dev.env file

* Create DeployRecurringPaymentManager.s.sol

* Simplify Transaction Forwarder Script

* Update DeployAndSetUpBeacon.s.sol

* Fix comments

* Update DeploymentScript.s.sol

Add missing scripts and todo comments for @Zitzak

* fix: DeploymentScript

* Remove Beacon from Factories

* Small Fixes

* Fix merge

* Remove todos

* Update ci.yml

* Revert removal of make clean

* Change metadata

* Fix: Clarify comment

* Chore: Update yml file to use make commands

* Tests: Add check for bc funding manager in tests

---------

Co-authored-by: FHieser <felix_hieser@web.de>
Co-authored-by: hieser <47272854+FHieser@users.noreply.github.com>
Co-authored-by: Zitzak <marvin88gr@gmail.com>

* CI: Enable CI on certain Branches & all PRs

* Fix: Enable <18 Decimal Tokens as Collateral in Bonding Curve (#435)

* change decimals to 6

* working draft

some test are still failing because of excessive rejections

* formatting

* bugfix

* fix vm.assume rejections

* review fixes

modified the getVirtual... functions to return the value in the native decimal amount instead of the normalized one and added some tests

* add normalization to virtualSupply

this should help set stuff up for external BC tokens

* changes after discussion with marvin + corresponding tests

Ended up moving the place where the decimals get converted, and adapted all tests

* remove remaining question

* format

the online editor merge messed the format up

* remove stray comments

* Feat: Add Governance Contract (#436)

* Create IGovernanceContract.sol

* Create GovernanceContract.sol

* Add Natspec

* Refactoring and improvements

* Create Tests

* Add more detail to test

* Add Governance to dev.env

* Update ModuleFactoryMock.sol

* Update ModuleFactory.t.sol

* Remove comment

* Remove comments

* Update Module Factory to check for governanceContract ownership

* Add Governance to E2ETests

* Update InverterBeaconE2E.t.sol

* Delete ModuleTest_Template.txt

* Fix Tests

* Fix to a buildable state in scripts

* Create DeployGovernanceContract.s.sol

* Fix description

* Remove validNewVersion and add setImplementation in Constructor

* Update Makefile

* Fix typo

* Update DeploymentScript.s.sol

* Rename to governor contract

* Correct error naming and set minimum Timelock Period to 48h

* Revert "Delete ModuleTest_Template.txt"

This reverts commit a62d07c.

* Fix based on recommondations

* Test for beacon not owned by Governor

* Make Governance Implementation a proxy in scripts and e2e

* accessible instead of accessable

* Fix typos

* Adapt naming

* Adapt naming

* Change naming

* Adapt naming

* Remove Ownable dependency

* Use AccessControlUpgradeable instead of AccessControl

* Adapt naming

* Forgot the R in Governor

* Fix inheritance

* Remove beacon implementation assumption

* update _contextSuffixLength

* Remove test for empty beacon implementation

* Let Module inherit from ERC2771ContextUpgradeable

* Fix init in Module test

* Fix tests

* Add batched role grant/revoke (#444)

* Add batched functions

* Clean up AuthorizerMock

* Update tests

* Feat: Allow zero minor version for first implementation (#446)

* Feat: Allow minor version to be zero

Note: Only possible during intialization, which is why the
modifier (used for any subsequent version) only allows
versions greater than zero/the last version.

* Test: Adapt tests to cover zero version flow

* Test: Change tests to all start at minor version zero

* Scripts: Change deployment scripts to start with minor version zero

* Feat: Allow minor version to be zero

Note: Only possible during intialization, which is why the
modifier (used for any subsequent version) only allows
versions greater than zero/the last version.

* Test: Adapt tests to cover zero version flow

* Test: Change tests to all start at minor version zero

* Scripts: Change deployment scripts to start with minor version zero

* [DO NOT MERGE] OpenZeppelin V5 update (#401)

* chore: update OZ lib to V5

* chore: update openzeppelin to v5

- updated paths were needed
- added constructor arguments for Ownable update
- updated OZErrors and the expectRevert that were using them to work with
custom errors
- replaces Address.isContract with the logic it used, as it has been removed

* chore: update Solidity version 0.8.19 -> 0.8.20

* format: format code

* chore: fix CI and update version

The CI failed because of imports, which are now corrected.

Next to this we decided to set the Solidity version to 0.8.23 because
it will be more up-to-date when we launch to mainnet

* Delete .gas-snapshot

* Update .gitignore

* Change TestsupportsInterface to only check immediate Iterfaces

---------

Co-authored-by: hieser <47272854+FHieser@users.noreply.github.com>
Co-authored-by: FHieser <felix_hieser@web.de>

* chore: update CI to include testing scripts

* Update ci.yml (#421)

* SC-122: Implement MultiCall and MetaTransaction Support (#405)

* chore: update OZ lib to V5

* chore: update openzeppelin to v5

- updated paths were needed
- added constructor arguments for Ownable update
- updated OZErrors and the expectRevert that were using them to work with
custom errors
- replaces Address.isContract with the logic it used, as it has been removed

* chore: update Solidity version 0.8.19 -> 0.8.20

* format: format code

* 394 metatransactions dev (#399)

* Modify ModuleManager to enact ERC2771

* Intermediate Push

I need to check something and pushing makes most sense he

* Fix inheritance to enable build

* Expose isTrustedForwarder in Orchestrator

* Implement modified ERC2771 to Module

* Fix Tests

A lot of modules havent  been properly initialized in the tests. The fix targets that by actually using the proxy Clone implementation and then properly  initializing them

* Add Module Test

* Implement MinimalForwarder

* Fix MakeFile

* Create E2ETest

* Add specific Role section in E2E Test

* Remove todo

* Marvin G Fix

* Foundryup formatting

* Fix after openZepplelin Update

* Create Transaction forwarder

* Update IModule.sol

* Change to Transaction forwarder

* chore: fix CI and update version

The CI failed because of imports, which are now corrected.

Next to this we decided to set the Solidity version to 0.8.23 because
it will be more up-to-date when we launch to mainnet

* WIP

* Fixing tests

* Cleanup

* Add Multicall Section into E2ETest

* Cleanup

* Merge fix

* Fix based on comments

* Delete .gas-snapshot

* Update .gitignore

* Change TestsupportsInterface to only check immediate Iterfaces

* Fix merge

* Create DeployAndSetUpTransactionForwarder.s.sol

* Add Transaction Forwarder Script to deployment scripts

---------

Co-authored-by: Zitzak <marvin88gr@gmail.com>

* SC-140: Implement version and intervention mechanism in beacon (#418)

* Rename Contracts

* Refactor Beacons and add Version function

* Make it buildable

* Fix test

* Cleanup

* Update InverterBeacon.t.sol

* Update InverterBeacon.t.sol

* add BeaconProxy Test

* Clarify Outcommented

* Fix Beacon Upgrade Script

* Update UpgradeBeacon.s.sol

* Add Intervention Mechanism to InverterBeacon

* Make it buildable

* PR comment fix

* Add tests

* Add Interface

* Cleanup

* Move and update Beacon e2e

* Update InverterBeaconE2E.t.sol

* Cleanup

* Adapt naming

* Fix after merge

* Fix ModuleTest bug

* Create digest helper function for meta tx forwarder (#430)

* Create digest creation function

* Cleanup

* Add getDigest Test

* add _ to getStructHash()

* Update deployment metadata

* typo fixes

* format + change active addresses

* Fix: Revamp scripts & re-add to CI (#419)

* Fix: Workflow File Syntax

* Chore: Update VSCode settings

- Adding the git.detectSubmodule setting to the config. This tells your local VSCode to ignore the submodules in the "git" tab. Which makes it a bit easier to work with, as we will only touch the submodules via forge commands anyways.
- Update remote compiler version to 0.8.23 as well (just in case)

* Chore: Add install cmd to Makefile

* Fix: Old Wording in Makefile

* Add basic run functions

* Update ci.yml

* Swap scripts to higher position

* Update ci.yml

* Test removing the override of the clean command

* Split make pre-test into pre-test and pre-script

* Update Makefile

* Update Env Variables in make file

* Fix typo

* Quick test

* Revert "Quick test"

This reverts commit 192f71e.

* Change comments

* Update ci.yml to source the env from dev.env

* Test if set dev command was wrong

* Update ci.yml

* Update ci.yml

* Test setting env in make file directly

* Load directly from the dev.env file

* Create DeployRecurringPaymentManager.s.sol

* Simplify Transaction Forwarder Script

* Update DeployAndSetUpBeacon.s.sol

* Fix comments

* Update DeploymentScript.s.sol

Add missing scripts and todo comments for @Zitzak

* fix: DeploymentScript

* Remove Beacon from Factories

* Small Fixes

* Fix merge

* Remove todos

* Update ci.yml

* Revert removal of make clean

* Change metadata

* Fix: Clarify comment

* Chore: Update yml file to use make commands

* Tests: Add check for bc funding manager in tests

---------

Co-authored-by: FHieser <felix_hieser@web.de>
Co-authored-by: hieser <47272854+FHieser@users.noreply.github.com>
Co-authored-by: Zitzak <marvin88gr@gmail.com>

* CI: Enable CI on certain Branches & all PRs

* Fix: Enable <18 Decimal Tokens as Collateral in Bonding Curve (#435)

* change decimals to 6

* working draft

some test are still failing because of excessive rejections

* formatting

* bugfix

* fix vm.assume rejections

* review fixes

modified the getVirtual... functions to return the value in the native decimal amount instead of the normalized one and added some tests

* add normalization to virtualSupply

this should help set stuff up for external BC tokens

* changes after discussion with marvin + corresponding tests

Ended up moving the place where the decimals get converted, and adapted all tests

* remove remaining question

* format

the online editor merge messed the format up

* remove stray comments

* Feat: Add Governance Contract (#436)

* Create IGovernanceContract.sol

* Create GovernanceContract.sol

* Add Natspec

* Refactoring and improvements

* Create Tests

* Add more detail to test

* Add Governance to dev.env

* Update ModuleFactoryMock.sol

* Update ModuleFactory.t.sol

* Remove comment

* Remove comments

* Update Module Factory to check for governanceContract ownership

* Add Governance to E2ETests

* Update InverterBeaconE2E.t.sol

* Delete ModuleTest_Template.txt

* Fix Tests

* Fix to a buildable state in scripts

* Create DeployGovernanceContract.s.sol

* Fix description

* Remove validNewVersion and add setImplementation in Constructor

* Update Makefile

* Fix typo

* Update DeploymentScript.s.sol

* Rename to governor contract

* Correct error naming and set minimum Timelock Period to 48h

* Revert "Delete ModuleTest_Template.txt"

This reverts commit a62d07c.

* Fix based on recommondations

* Test for beacon not owned by Governor

* Make Governance Implementation a proxy in scripts and e2e

* accessible instead of accessable

* Fix typos

* Adapt naming

* Adapt naming

* Change naming

* Adapt naming

* Remove Ownable dependency

* Use AccessControlUpgradeable instead of AccessControl

* Adapt naming

* Forgot the R in Governor

* Add batched role grant/revoke (#444)

* Add batched functions

* Clean up AuthorizerMock

* Update tests

* Feat: Allow zero minor version for first implementation (#446)

* Feat: Allow minor version to be zero

Note: Only possible during intialization, which is why the
modifier (used for any subsequent version) only allows
versions greater than zero/the last version.

* Test: Adapt tests to cover zero version flow

* Test: Change tests to all start at minor version zero

* Scripts: Change deployment scripts to start with minor version zero

* Feat: Allow minor version to be zero

Note: Only possible during intialization, which is why the
modifier (used for any subsequent version) only allows
versions greater than zero/the last version.

* Test: Adapt tests to cover zero version flow

* Test: Change tests to all start at minor version zero

* Scripts: Change deployment scripts to start with minor version zero

* [DO NOT MERGE] OpenZeppelin V5 update (#401)

* chore: update OZ lib to V5

* chore: update openzeppelin to v5

- updated paths were needed
- added constructor arguments for Ownable update
- updated OZErrors and the expectRevert that were using them to work with
custom errors
- replaces Address.isContract with the logic it used, as it has been removed

* chore: update Solidity version 0.8.19 -> 0.8.20

* format: format code

* chore: fix CI and update version

The CI failed because of imports, which are now corrected.

Next to this we decided to set the Solidity version to 0.8.23 because
it will be more up-to-date when we launch to mainnet

* Delete .gas-snapshot

* Update .gitignore

* Change TestsupportsInterface to only check immediate Iterfaces

---------

Co-authored-by: hieser <47272854+FHieser@users.noreply.github.com>
Co-authored-by: FHieser <felix_hieser@web.de>

* chore: update CI to include testing scripts

* Update ci.yml (#421)

* SC-122: Implement MultiCall and MetaTransaction Support (#405)

* chore: update OZ lib to V5

* chore: update openzeppelin to v5

- updated paths were needed
- added constructor arguments for Ownable update
- updated OZErrors and the expectRevert that were using them to work with
custom errors
- replaces Address.isContract with the logic it used, as it has been removed

* chore: update Solidity version 0.8.19 -> 0.8.20

* format: format code

* 394 metatransactions dev (#399)

* Modify ModuleManager to enact ERC2771

* Intermediate Push

I need to check something and pushing makes most sense he

* Fix inheritance to enable build

* Expose isTrustedForwarder in Orchestrator

* Implement modified ERC2771 to Module

* Fix Tests

A lot of modules havent  been properly initialized in the tests. The fix targets that by actually using the proxy Clone implementation and then properly  initializing them

* Add Module Test

* Implement MinimalForwarder

* Fix MakeFile

* Create E2ETest

* Add specific Role section in E2E Test

* Remove todo

* Marvin G Fix

* Foundryup formatting

* Fix after openZepplelin Update

* Create Transaction forwarder

* Update IModule.sol

* Change to Transaction forwarder

* chore: fix CI and update version

The CI failed because of imports, which are now corrected.

Next to this we decided to set the Solidity version to 0.8.23 because
it will be more up-to-date when we launch to mainnet

* WIP

* Fixing tests

* Cleanup

* Add Multicall Section into E2ETest

* Cleanup

* Merge fix

* Fix based on comments

* Delete .gas-snapshot

* Update .gitignore

* Change TestsupportsInterface to only check immediate Iterfaces

* Fix merge

* Create DeployAndSetUpTransactionForwarder.s.sol

* Add Transaction Forwarder Script to deployment scripts

---------

Co-authored-by: Zitzak <marvin88gr@gmail.com>

* SC-140: Implement version and intervention mechanism in beacon (#418)

* Rename Contracts

* Refactor Beacons and add Version function

* Make it buildable

* Fix test

* Cleanup

* Update InverterBeacon.t.sol

* Update InverterBeacon.t.sol

* add BeaconProxy Test

* Clarify Outcommented

* Fix Beacon Upgrade Script

* Update UpgradeBeacon.s.sol

* Add Intervention Mechanism to InverterBeacon

* Make it buildable

* PR comment fix

* Add tests

* Add Interface

* Cleanup

* Move and update Beacon e2e

* Update InverterBeaconE2E.t.sol

* Cleanup

* Adapt naming

* Fix after merge

* Create digest helper function for meta tx forwarder (#430)

* Create digest creation function

* Cleanup

* Add getDigest Test

* add _ to getStructHash()

* typo fixes

* format + change active addresses

* Fix: Revamp scripts & re-add to CI (#419)

* Fix: Workflow File Syntax

* Chore: Update VSCode settings

- Adding the git.detectSubmodule setting to the config. This tells your local VSCode to ignore the submodules in the "git" tab. Which makes it a bit easier to work with, as we will only touch the submodules via forge commands anyways.
- Update remote compiler version to 0.8.23 as well (just in case)

* Chore: Add install cmd to Makefile

* Fix: Old Wording in Makefile

* Add basic run functions

* Update ci.yml

* Swap scripts to higher position

* Update ci.yml

* Test removing the override of the clean command

* Split make pre-test into pre-test and pre-script

* Update Makefile

* Update Env Variables in make file

* Fix typo

* Quick test

* Revert "Quick test"

This reverts commit 192f71e.

* Change comments

* Update ci.yml to source the env from dev.env

* Test if set dev command was wrong

* Update ci.yml

* Update ci.yml

* Test setting env in make file directly

* Load directly from the dev.env file

* Create DeployRecurringPaymentManager.s.sol

* Simplify Transaction Forwarder Script

* Update DeployAndSetUpBeacon.s.sol

* Fix comments

* Update DeploymentScript.s.sol

Add missing scripts and todo comments for @Zitzak

* fix: DeploymentScript

* Remove Beacon from Factories

* Small Fixes

* Fix merge

* Remove todos

* Update ci.yml

* Revert removal of make clean

* Change metadata

* Fix: Clarify comment

* Chore: Update yml file to use make commands

* Tests: Add check for bc funding manager in tests

---------

Co-authored-by: FHieser <felix_hieser@web.de>
Co-authored-by: hieser <47272854+FHieser@users.noreply.github.com>
Co-authored-by: Zitzak <marvin88gr@gmail.com>

* Feat: Add Governance Contract (#436)

* Create IGovernanceContract.sol

* Create GovernanceContract.sol

* Add Natspec

* Refactoring and improvements

* Create Tests

* Add more detail to test

* Add Governance to dev.env

* Update ModuleFactoryMock.sol

* Update ModuleFactory.t.sol

* Remove comment

* Remove comments

* Update Module Factory to check for governanceContract ownership

* Add Governance to E2ETests

* Update InverterBeaconE2E.t.sol

* Delete ModuleTest_Template.txt

* Fix Tests

* Fix to a buildable state in scripts

* Create DeployGovernanceContract.s.sol

* Fix description

* Remove validNewVersion and add setImplementation in Constructor

* Update Makefile

* Fix typo

* Update DeploymentScript.s.sol

* Rename to governor contract

* Correct error naming and set minimum Timelock Period to 48h

* Revert "Delete ModuleTest_Template.txt"

This reverts commit a62d07c.

* Fix based on recommondations

* Test for beacon not owned by Governor

* Make Governance Implementation a proxy in scripts and e2e

* accessible instead of accessable

* Fix typos

* Adapt naming

* Adapt naming

* Change naming

* Adapt naming

* Remove Ownable dependency

* Use AccessControlUpgradeable instead of AccessControl

* Adapt naming

* Forgot the R in Governor

* FIx: Merge conflicts

* Fix merge issue: Reworked deployment script

* Fix Merge issue: ERC2771ContextUpgradeable Inheritance

* Fix scripts on a basic level

* Add to make scripts and reorder scripts

* cleanup

* Fix: Remove hardcoded decimals from RebasingFM tests

---------

Co-authored-by: Marvin <43185740+Zitzak@users.noreply.github.com>
Co-authored-by: hieser <47272854+FHieser@users.noreply.github.com>
Co-authored-by: FHieser <felix_hieser@web.de>
Co-authored-by: Zitzak <marvin88gr@gmail.com>
Co-authored-by: 0xNuggan <82726722+0xNuggan@users.noreply.github.com>
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.

3 participants