A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Project | "AdaDao" | |||||||||||||||||||||||||
2 | MVP assumptions: | ||||||||||||||||||||||||||
3 | Team | No ActionQueues in MVP | |||||||||||||||||||||||||
4 | 2 Plutus engineers | No global protocol modes in MVP (Active/Recovery/EmergencyShutdown) | |||||||||||||||||||||||||
5 | Manager | No oracle module (Exchange rate will be mocked) | |||||||||||||||||||||||||
6 | Amount of engineers | 2 | No rebalancing | ||||||||||||||||||||||||
7 | No governing Vaults | ||||||||||||||||||||||||||
8 | Reviewers | 1 | Wallet 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 | Task | Comment | Coefficient | Days min | Days max | Current 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 Sceleton | nix and cabal settings, common project structure | 0.5 | 0.5 | Already done | Our 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 contract | Core with parameters, interaction with Oracle in future | |||||||||||||||||||||||||
14 | Model | 0.5 | 1 | ||||||||||||||||||||||||
15 | Validator | 1.5 | 2 | ||||||||||||||||||||||||
16 | Activate VaultManager endpoint | 1 | 1.5 | ||||||||||||||||||||||||
17 | Update VaultManager endpoint | 1 | 1.5 | ||||||||||||||||||||||||
18 | Tests | 0.5 | 1 | ||||||||||||||||||||||||
19 | |||||||||||||||||||||||||||
20 | Borrowing contract | ||||||||||||||||||||||||||
21 | |||||||||||||||||||||||||||
22 | Design Vault model | 0.5 | 1 | ||||||||||||||||||||||||
23 | Create a Validator draft with validatorHash and scriptAddress functions | 0.5 | 1 | ||||||||||||||||||||||||
24 | Open Vault function | ||||||||||||||||||||||||||
25 | Off-chain code | 1 | 1.5 | ||||||||||||||||||||||||
26 | Finalize validator for Open action | 1.5 | 2 | ||||||||||||||||||||||||
27 | Add tests | 1 | 1.5 | ||||||||||||||||||||||||
28 | Add simulation | 0.5 | 1 | ||||||||||||||||||||||||
29 | UpdateDebt | ||||||||||||||||||||||||||
30 | Off-chain code | 1 | 1.5 | ||||||||||||||||||||||||
31 | Finalize validator for Update action | 1.5 | 2 | ||||||||||||||||||||||||
32 | Validate amount of AUSD for minting | we 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 tests | 2 | 3 | ||||||||||||||||||||||||
34 | Add simulation | 0.5 | 1 | ||||||||||||||||||||||||
35 | UpdateCollateral | ||||||||||||||||||||||||||
36 | Off-chain code | 1 | 1.5 | ||||||||||||||||||||||||
37 | Finalize validator for Update action | 1.5 | 2 | ||||||||||||||||||||||||
38 | Add tests | 2 | 3 | ||||||||||||||||||||||||
39 | Add simulation | 0.5 | 1 | ||||||||||||||||||||||||
40 | |||||||||||||||||||||||||||
41 | Stability Pool contract | ||||||||||||||||||||||||||
42 | |||||||||||||||||||||||||||
43 | Stability pool | ||||||||||||||||||||||||||
44 | Model | 1.5 | 2 | ||||||||||||||||||||||||
45 | Validator | 3 | 4 | ||||||||||||||||||||||||
46 | Activate Stability pool endpoint | 1 | 1.5 | ||||||||||||||||||||||||
47 | Update Stability pool endpoint | 1 | 1.5 | ||||||||||||||||||||||||
48 | Add tests | 2 | 3 | ||||||||||||||||||||||||
49 | Add simulation | 0.5 | 1 | ||||||||||||||||||||||||
50 | Recalculation endpoint | ||||||||||||||||||||||||||
51 | Off-chain code | 1 | 1.5 | ||||||||||||||||||||||||
52 | Finalize validator for Deposit action | 2 | 3 | ||||||||||||||||||||||||
53 | Add tests | 2 | 3 | ||||||||||||||||||||||||
54 | Add simulation | 0.5 | 1 | ||||||||||||||||||||||||
55 | Calculate rewards function | impossible to give estimations becuase of complexity of calculations | |||||||||||||||||||||||||
56 | |||||||||||||||||||||||||||
57 | IndividualReceipt contract | ||||||||||||||||||||||||||
58 | |||||||||||||||||||||||||||
59 | Create receipt model | 1.5 | 2 | ||||||||||||||||||||||||
60 | Create draft validator | 0.5 | 1 | ||||||||||||||||||||||||
61 | Deposit endpoint | ||||||||||||||||||||||||||
62 | Off-chain code | 1.5 | 2 | ||||||||||||||||||||||||
63 | Finalize validator for Deposit action | 3 | 4 | ||||||||||||||||||||||||
64 | Add tests | 2 | 3 | ||||||||||||||||||||||||
65 | Add simulation | 0.5 | 1 | ||||||||||||||||||||||||
66 | Withdraw endpoint | ||||||||||||||||||||||||||
67 | Off-chain code | 2 | 3 | ||||||||||||||||||||||||
68 | Finalize validator for Deposit action | 3 | 4 | ||||||||||||||||||||||||
69 | Add tests | 2 | 3 | ||||||||||||||||||||||||
70 | Add simulation | 0.5 | 1 | ||||||||||||||||||||||||
71 | |||||||||||||||||||||||||||
72 | Liquidation contract | impossible 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 collection | gives more opportunities for testing than simulation scenario | 4 | 5 | |||||||||||||||||||||||
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 Functions | 4 | 5 | ||||||||||||||||||||||||
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 fix | 25% of time for each task | 0.25 | 15 | 22 | ||||||||||||||||||||||
98 | Code review | 5 hours per week | 0.14 | 10 | 15 | ||||||||||||||||||||||
99 | Edits after code review | 5-15% from task | 0.1 | 7 | 11 | ||||||||||||||||||||||
100 | Communications | 3 hours per week on each engineer | 0.085 | 7 | 10 |