ABCDEFGHIJKLMNOPQRSTUVWXYZAA
1
Project"AdaDao"
2
MVP assumptions:
3
TeamNo ActionQueues in MVP
4
2 Plutus engineersNo global protocol modes in MVP (Active/Recovery/EmergencyShutdown)
5
ManagerNo oracle module (Exchange rate will be mocked)
6
Amount of engineers2No rebalancing
7
No governing Vaults
8
Reviewers1Wallet for liquidation and other fees without rewards distribution
9
MVP works only in simulation mode without testnet (with simulated wallets and simulated tx signs)
10
TaskCommentCoefficientDays minDays maxCurrent MVP implementation lets us work with contracts directly, i.e. we can call Borrower and Stability Pool contracts via terminal (curl, Postman) or Simulation script. But Liquidation contract endpoints and Recalculation (Stability Pool endpoint) supposed to be called automatically by other processes (bots, scripts), but creating this module of automatic calls is outside of MVP scope. We can call these endpoints from terminal and Simulation scripts. We assume that creating the module of automatic calls is the next step after MVP.
11
Project Sceletonnix and cabal settings, common project structure0.50.5Already doneOur Recalculation approach doesn't use epoches, we use receipt status instead. This approach looks inefficient and expensive (as it uses a lot of input utxos), but it lets us make sure that we do all the calculations the correct way (and it takes much less time for implementation), we assume that it's convenient for MVP and we can improve it as the next step after MVP.
12
13
VaultManager contractCore with parameters, interaction with Oracle in future
14
Model0.51
15
Validator1.52
16
Activate VaultManager endpoint 11.5
17
Update VaultManager endpoint11.5
18
Tests0.51
19
20
Borrowing contract
21
22
Design Vault model0.51
23
Create a Validator draft with validatorHash and scriptAddress functions0.51
24
Open Vault function
25
Off-chain code 11.5
26
Finalize validator for Open action1.52
27
Add tests11.5
28
Add simulation0.51
29
UpdateDebt
30
Off-chain code11.5
31
Finalize validator for Update action1.52
32
Validate amount of AUSD for mintingwe are not sure that it's even possible because of communication between minting policy and vault script, so we can't provide any estimations
33
Add tests23
34
Add simulation0.51
35
UpdateCollateral
36
Off-chain code11.5
37
Finalize validator for Update action1.52
38
Add tests23
39
Add simulation0.51
40
41
Stability Pool contract
42
43
Stability pool
44
Model1.52
45
Validator34
46
Activate Stability pool endpoint11.5
47
Update Stability pool endpoint11.5
48
Add tests23
49
Add simulation0.51
50
Recalculation endpoint
51
Off-chain code11.5
52
Finalize validator for Deposit action23
53
Add tests 23
54
Add simulation0.51
55
Calculate rewards function impossible to give estimations becuase of complexity of calculations
56
57
IndividualReceipt contract
58
59
Create receipt model1.52
60
Create draft validator 0.51
61
Deposit endpoint
62
Off-chain code1.52
63
Finalize validator for Deposit action34
64
Add tests23
65
Add simulation0.51
66
Withdraw endpoint
67
Off-chain code23
68
Finalize validator for Deposit action34
69
Add tests 23
70
Add simulation 0.51
71
72
Liquidation contractimpossible to give an estimation, high level of uncertainty depends on all of the previous smart contracts
73
74
Create model
75
Create a Validator draft with validatorHash and scriptAddress functions
76
InitSeizure endpoint (will be used by Liquidation)
77
Off-chain code
78
Finalize validator for Seize action
79
Add tests
80
Add simulation
81
82
MVP testing with Postman collectiongives more opportunities for testing than simulation scenario45
83
Case 1: Borrower gets debt and successfully repays it
84
Case 2: Deposit to Stability pool, withdraw from Stability pool (without liquidations)
85
Case 3: Borrower gets debt, seizure occurs (liquidation and stability pool changing, withdraw from Stability pool with rewards)
86
87
88
Shared Functions45
89
Off-chain functions for extracting script balances and datums
90
Off-chain functions for create txs
91
On-chain extracting functions
92
93
94
95
...
96
97
Bug fix25% of time for each task0.251522
98
Code review5 hours per week 0.141015
99
Edits after code review5-15% from task 0.1711
100
Communications3 hours per week on each engineer 0.085710