File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -18,6 +18,32 @@ import './utils/MathUtil.sol';
1818import './Constants.sol ' ;
1919import './Staking.sol ' ;
2020
21+ /**
22+ * @title DelegationPool
23+ * @notice ## Overview
24+ * A Delegation Pool contract that allows aggregation of SQT to be pooled together and used to delegate to indexers.
25+ * Delegation should behave the same as if the user had delegated directly to an indexer. There is a manager (owner) of the pool
26+ * that determines the delegation strategy to indexers.
27+ *
28+ * ## Details
29+ *
30+ * ### Delegation
31+ * Users delegate their SQT to the pool and receive pool shares (ERC20 tokens) representing their stake in the pool. The pool manager can then
32+ * allocate those funds to the indexers they choose to optimise rewards.
33+ *
34+ * ### Undelegation
35+ * Users can then trigger undelegation which will burn their shares and
36+ * start a withdrawal process that then allows the user to withdraw their SQT after the lock period which is the same duration as if they had
37+ * directly delegated.
38+ *
39+ * ### Withdrawls
40+ * After the lock period, users can withdraw their SQT and rewards from the pool, minus and pool and unbonding fees.
41+ *
42+ * ### Managers
43+ * The pool manager is responsible for making sure the available assets in the pool are delegated to indexers to earn rewards.
44+ * The manager can do all the same functionality as delegating directly to an indexer such as delegate, undelegate, redelegate and claim rewards.
45+ * The manager can also trigger auto-compounding of rewards which claims rewards from all indexers as well as set a reward fee.
46+ */
2147contract DelegationPool is
2248 Initializable ,
2349 OwnableUpgradeable ,
You can’t perform that action at this time.
0 commit comments