47 Commits

Author SHA1 Message Date
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
b5e513ce49
refactor(StakeVault): introduce stakedToken() API (#36)
Because the `stakedToken` property is `immutable`, solhint recommends to
make it in all caps. This commit changes the property to adhere to that
rule and also makes the property private.

To access the `stakedToken` there's now a `stakedToken()` function on
the contract.
2023-11-07 09:40:38 +01:00
r4bbit
70c74e2c2c
refactor(StakeVault): use custom error over error strings (#35) 2023-11-07 09:38:00 +01:00
r4bbit
6f591dd674
refactor(StakeManager): use custom errors everywhere (#30) 2023-10-10 15:49:34 +02:00
r4bbit
03d2dcf3e8
refactor(StakeManager): add custom StakeManager__FundsLocked error (#29) 2023-10-10 15:44:16 +02:00
r4bbit
eeffcfe7d7
refactor(StakeManager): use custom error in onlyVault modifier (#28)
Also introduce tests that ensure the error is actually emitted.
2023-10-10 15:32:46 +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
Frederico Teixeira
0e95ca428f Vault's contract gets ERC20 and Manager
as arguments
2023-08-21 08:21:59 +02:00
Frederico Teixeira
d9d6a6e633 function signature changed from "pure" to "view",
as it access block.timestap.
2023-07-24 17:16:44 +02:00
Frederico Teixeira
9d0bb25715 introduced a ^ in the solidity compiler version 2023-07-24 17:16:03 +02:00
Martin Strobl
56f007e3b7 added MP boost limit check
- limit checked when locking incl. the increased limit due to bonus
- limit checked when processing only for accounts that are not locked
2023-07-11 15:47:55 +02:00
Martin Strobl
a731962d32 Repair minting MPs with lock
- The "free MPs" in the amount of 100% of stake that are minted on deposit are now not minted anymore duplicitely in the lock function
2023-07-11 12:08:30 +02:00
Martin Strobl
fe5cd4b517 Initial MP mint repaired
- Now, MPs are minted on the newly staked amount only (previously was entire stake).
- The bonus MPs are calculated correctly such that there is a 1x bonus per year of lock.
- Still TBD: MPs are not minted  for existing stake if current lock extended (or newly introduced), there is no check for max boost MP ceiling
2023-07-11 11:56:34 +02:00
Ricardo Guilherme Schmidt
fcb8dca9a6
mintInitialMultiplier dt+1 2023-07-09 16:00:49 -03:00
Ricardo Guilherme Schmidt
c1570fa471
add optimism minime 2023-07-08 17:10:37 -03:00
Ricardo Guilherme Schmidt
17d1816570
fixes: initial multiplier mint, leave, unstake 2023-07-06 09:12:01 -03:00
Ricardo Guilherme Schmidt
9ba151266d
use solidity 0.8.18 for hardhat compatibility 2023-06-28 17:51:53 -03:00
Ricardo Guilherme Schmidt
c350bbd3ce
add legacy contracts 2023-06-28 14:29:01 -03:00
Ricardo Guilherme Schmidt
82ebd1301e
create test script 2023-06-26 17:27:19 -03:00
Ricardo Guilherme Schmidt
ff4bdf65f3
fix typo 2023-06-26 12:30:48 -03:00
Ricardo Guilherme Schmidt
6bf8d66221
force users to migrate or leave 2023-06-26 12:26:02 -03:00
Ricardo Guilherme Schmidt
da5ea645b0
fix account rewarding 2023-06-26 11:52:51 -03:00
Ricardo Guilherme Schmidt
6a05b57f40
fix import 2023-06-26 11:51:42 -03:00
Ricardo Guilherme Schmidt
57bc268288
rename functions 2023-06-25 11:44:32 -03:00
Ricardo Guilherme Schmidt
ef9cf77c3a
fix constructor 2023-06-25 11:44:12 -03:00
Ricardo Guilherme Schmidt
2f6fe21682
small fix 2023-06-23 20:03:03 -03:00
Ricardo Guilherme Schmidt
fc74878977
fix compilation errors 2023-06-23 20:01:59 -03:00
Ricardo Guilherme Schmidt
98ea9aee4f
update solc 2023-06-23 19:26:07 -03:00
Ricardo Guilherme Schmidt
1417e1721a
update solc 2023-06-23 19:24:59 -03:00
Ricardo Guilherme Schmidt
26da805fd9
add upgradability 2023-06-23 18:38:55 -03:00
Ricardo Guilherme Schmidt
ff3a7b09ea
Only vaults that Re previosly allowed 2023-06-23 15:03:52 -03:00
Ricardo Guilherme Schmidt
d960512915
add documentation 2023-06-23 13:47:37 -03:00
Ricardo Guilherme Schmidt
e217f9b78e
organize header 2023-06-23 13:31:13 -03:00
Ricardo Guilherme Schmidt
1375440bd5
fix balance lock 2023-06-23 13:29:36 -03:00
Ricardo Guilherme Schmidt
c2142c1306
rename variables 2023-06-23 13:09:07 -03:00
Ricardo Guilherme Schmidt
6a79af5f95
fix var name 2023-06-23 10:04:17 -03:00
Ricardo Guilherme Schmidt
56bc1a5b05
remove obsolete files 2023-06-23 10:02:24 -03:00
Ricardo Guilherme Schmidt
14782c9dd2
improve storage access 2023-06-22 15:42:42 -03:00
Ricardo Guilherme Schmidt
1fbc871f5b
reduce gas use 2023-06-21 12:35:47 -03:00
Ricardo Guilherme Schmidt
0f50e2d2de
only one claim per epoch 2023-06-21 12:32:30 -03:00
Ricardo Guilherme Schmidt
4849cccb81
execute epoch, user reward 2023-06-21 11:20:23 -03:00
Ricardo Guilherme Schmidt
b70666c26d
reward emissions 2023-06-21 10:59:30 -03:00
Ricardo Guilherme Schmidt
e9d71449c1
simplfy contract 2023-06-20 11:53:34 -03:00
Ricardo Guilherme Schmidt
254afe9932
save progress 2023-05-24 10:25:52 -03:00
Ricardo Guilherme Schmidt
a692d32516
add mint multiplier points 2023-05-23 19:10:37 -03:00
Ricardo Guilherme Schmidt
2e1ec2b7a1
formulas 2023-05-16 19:04:13 -03:00
Ricardo Guilherme Schmidt
d23afa676a
skel 2023-05-16 18:59:25 -03:00