Commit Graph

7 Commits

Author SHA1 Message Date
Ricardo Guilherme Schmidt 6af73d3883
refactor(StakeManager): Extract Updated StakeManager to its own contract, to remove logic not interesting for first contract.
refactor(StakeManager): Move Epoch logic to EpochMath.sol
refactor(MutliplierPointMath): rename functions
feat(MutliplierPointMath):  Add missing functions from spec
feat(StakeMath): change to use custom errors
fix(StakeMath): fix _estimateLockTime
chore(IStakeConstants): remove unused import
refactor(StakeManager): move Account struct to
IStakeManager
refactor(StakeManager): move Epoch struct to EpochMath
refactor(IStakeManger): move errors to StakeMath
chore(.vscode): Fix remappings on IDE
2024-11-25 10:31:10 -03:00
Ricardo Guilherme Schmidt 3f4f6a7aaf chore: update interface and update Solidity version to 0.8.27 across all files 2024-11-15 02:40:11 -03:00
Ricardo Guilherme Schmidt 173ce9b15a Update specs and interface 2024-11-15 02:40:11 -03:00
r4bbit d397466f75 feat(script): add deployment script for new `StakeManager`s
This is needed to deploy individual new `StakeManager` instances in
both, production environment and testing.

The script can be used as follows:

Within tests, to get a new `StakeManager` instance that has a reference
to an older `StakeManager` instance, run:

```solidity
function setUp() public virtual override {
    super.setUp();
    DeployMigrationStakeManager deployment = new DeployMigrationStakeManager(address(stakeManager), stakeToken);
    newStakeManager = deployment.run();
}
```

Where `address(stakeManager)` is the address of the current
`StakeManager` and `stakeToken` is the address of the stake token.

To deploy a new instance from the CLI using `forge`, one can make use of
the `PREV_STAKE_MANAGER` and `STAKE_TOKEN_ADDRESS` environment variables
like this:

```sh
$ PREV_STAKE_MANAGER=0x123 STAKE_TOKEN_ADDRES=0x456 forge script script/DeployMigrationStakeManager.s.sol
```

The script will revert when `STAKE_TOKEN_ADDRESS` is `address(0)`.

Closes #71
2024-02-29 11:19:18 -03:00
r4bbit f259286e98
feat: introduce `VaultFactory` (#38)
This commit introduces a first version of a `VaultFactory` that later
will be extended to be capable of instantiating reward vaults and
possible keep track of vault instances per owner.

As a first step, this implementation comes with a `createVault()`
function which takes care of creating vaults.

Because `VaultFactory` also knows about `StakeManager` it can derive the
manager's address and stake token from it when creating vaults, allowing
the API to be without arguments.

Partially addresses #37
2023-11-07 09:49:22 +01:00
r4bbit 725d380547
test(StakeManager): expand on deployment test (#27)
Added some additional assertions related to access control and exposed
properties.
2023-10-10 13:53:03 +02:00
r4bbit 2e7c5148b4
refactor: migrate repository to foundry-template (#6)
This commit migrates the repo to our foundry template, which ensures we
have consistent tooling across smart contract repositories that are
maintained by Vac.

This removes all hardhat related files and workflows and replaces them
with more perfomant foundry workflows.

It also sets up tests, CI and linting.
2023-09-12 18:37:30 +02:00