-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinitParams.json
137 lines (137 loc) · 10.4 KB
/
initParams.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
{
"deployGovernanceToken": {
"functionDescription": "Deploys ERC20 with fix totalSupply (no minting) and deploys initialDistributor contract (that receives all tokens and has as owner caller which able to distribute tokens and stake tokens on favor of an array of addresses) and deploys two main uniV3 pools (WETH-GovernanceToken).",
"tokenName": {
"value": "HabitatDAO",
"description": "Governance token name."
},
"tokenSymbol": {
"value": "HBT",
"description": "Governance token symbol."
},
"totalSupply": {
"value": "10000000000000000000000000",
"description": "Fixed total supply."
},
"_sqrtPricesX96": {
"value": ["0x81853cdc3fe8b949c55450b","0x1f9f6d9a3bc5ab22441f2925e9"],
"description": "Should be set to 1$ equal 1 HBT in terms of ETH in launch day. Initial price for uniV3 pool. Values set as 1000 governance tokens for 1 legal pair token (1000HBT for 1WETH). We put two initial prices 0.001 and 1000.0 (calculated: reserve1/reserve0), because we don't know the governance token address before we deploy diamond, it means we cannot define which token will be token0 and which token1."
}
},
"deployThreePools": {
"functionDescription": "Deploys three UniV3 pools (1%/0.3%/0.05% fee) for each legal pair token and governanceToken.",
"_legalPairTokens": {
"value": ["0x4200000000000000000000000000000000000006","0x7F5c764cBc14f9669B88837ca1490cCa17c31607","0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1","0x4200000000000000000000000000000000000042"],
"description": "An array of ERC20 token addresses on optimism mainnet, which are legalPairTokens. Max 9 tokens. Means that user who provides liquidity in uniV3 pool as governance token and one of the tokens from this array is able to stake his position and receive voting power. UniV3 pool is deployed with governance token and first token from this array."
},
"_sqrtPricesX96": {
"value": [["0x81853cdc3fe8b949c55450b","0x1f9f6d9a3bc5ab22441f2925e9"], ["0x81853cdc3fe8b949c55450b","0x1f9f6d9a3bc5ab22441f2925e9"],["0x81853cdc3fe8b949c55450b","0x1f9f6d9a3bc5ab22441f2925e9"],["0x81853cdc3fe8b949c55450b","0x1f9f6d9a3bc5ab22441f2925e9"]],
"description": "Should be set to 1$ equal 1 HBT in terms of ETH in launch day. Initial price for uniV3 pool. Values set as 1000 governance tokens for 1 legal pair token (1000HBT for 1WETH). We put two initial prices 0.001 and 1000.0 (calculated: reserve1/reserve0), because we don't know the governance token address before we deploy diamond, it means we cannot define which token will be token0 and which token1."
}
},
"deployVotingPowerAndSignersDeciders": {
"functionDescription": "Deploys voting power manager (stake contract), deploys voting power decider and deploys signers decider.",
"_nfPositionManager": {
"value": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
"description": "Uniswap V3 NonfungiblePositionManager address."
},
"_precision": {
"value": 10000,
"description": "The dividor for voting power decider that helps represent percentage. Example, 11.42% - decimals 0.1142, value 0.1142 * 10000(precision) = 1142."
},
"_gnosisSafe": {
"value": "0xb55e46cBb6e82597CE58ADE018e8da57752B36A2",
"description": "The Gnosis Safe address that was deployed and signers was set."
}
},
"deployDAOMS5T": {
"functionDescription": "Deploys diamond, initiates dao, initiates 5 management systems, initiates deciders."
},
"initDAO": {
"functionDescription": "Initiates the state with DAO metadata, the trusted source of addresses, and calculates and stores the position for Management systems data",
"daoName": {
"value": "HabitatDAO",
"description": "The name of DAO"
},
"purpose": {
"value": "Building DAO infrastructure on L2 networks.",
"description": "The current purpose of the DAO"
},
"info": {
"value": "Habitat is developing modular DAO tools by using EIP-2535 (Diamond Standard). Scaling DAOs on L2 for better user adoption.",
"description": "Field for more information about DAO"
},
"socials": {
"value": "https://0xhabitat.org/",
"description": "DAO socials"
},
"addressesProvider": {
"value": "0x0000000000000000000000000000000000000000",
"description": "The trusted source to make diamondCuts, have getters for facets and init contracts"
}
},
"initManagementSystems5": {
"functionDescription": "Initiates state for 5 management systems: setAddChangeManagementSystem (uses delegatecall, the only ms that is able to change decision type for other ms, also can add new ms), governance (uses delegatecall, ms that can change configuration data, can call diamondCut), treasury (uses call only, can move assets and jump into defi protocols), subDAOsCreation (can create subDAOs that are connected to mainDAO), launchPad (can handle token launch). Each management system can has it's own decision type and data related to it.",
"decisionTypes": {
"value": [3,2,2,2,3],
"description": "An array with chosen decision type for each ms. Current options: 0 - None, 1 - OnlyOwner, 2 - VotingPowerManagerERC20, 3 - Signers. Can be extended. For prototype we have only one decision system implemented."
}
},
"initTreasuryVotingPowerSpecificData": {
"functionDescription": "Initiates specific voting power data for treasury management system, that has decision type VotingPowerERC20. All params below are specific for each management system.",
"thresholdForInitiator": {
"value": 50,
"description": "Value is the percentage (0.1% - 0.001 * 10000). The percentage helps to calculate the thresholdForInitiator by multiplying with maxAmountOfVotingPower (or with totalAmountOfVotingPower if it is more). Absolute value is used as a restriction for creating proposals (comparison: if initiator amount of votingPower is less than a value - is not able to create.)"
},
"thresholdForProposal" : {
"value": 500,
"description": "Value is the percentage (34% - 0.34 * 10000). The percentage helps to calculate the thresholdForProposal by multiplying with maxAmountOfVotingPower (or with totalAmountOfVotingPower if it is more). Absolute value is used as a restriction for accepting proposals (comparison: if votesYes and/or votesNo more than a value - proposal reached threshold, if votesYes more than votesNo - proposal is accepted, otherwise is rejected.)"
},
"secondsProposalVotingPeriod" : {
"value": 432000,
"description": "Value represents the amount of seconds that are given for voting actions. After proposal is created the countdown started, votingPowerHolder are able to vote. After voting period is ended the proposal can be accepted or rejected depending on the voting results."
},
"secondsProposalExecutionDelayPeriod" : {
"value": 43200,
"description": "Value represents the amount of seconds that are given for a delaying execution after voting period is ended."
}
},
"initGovernanceVotingPowerSpecificData": {
"functionDescription": "Initiates specific voting power data for governance management system, that has decision type VotingPowerERC20. All params below are specific for each management system.",
"thresholdForInitiator": {
"value": 500,
"description": "Value is the percentage (1% - 0.01 * 10000). The percentage helps to calculate the thresholdForInitiator by multiplying with maxAmountOfVotingPower (or with totalAmountOfVotingPower if it is more). Absolute value is used as a restriction for creating proposals (comparison: if initiator amount of votingPower is less than a value - is not able to create.)"
},
"thresholdForProposal" : {
"value": 1000,
"description": "Value is the percentage (51% - 0.51 * 10000). The percentage helps to calculate the thresholdForProposal by multiplying with maxAmountOfVotingPower (or with totalAmountOfVotingPower if it is more). Absolute value is used as a restriction for accepting proposals (comparison: if votesYes and/or votesNo more than a value - proposal reached threshold, if votesYes more than votesNo - proposal is accepted, otherwise is rejected.)"
},
"secondsProposalVotingPeriod" : {
"value": 604800,
"description": "Value represents the amount of seconds that are given for voting actions. After proposal is created the countdown started, votingPowerHolder are able to vote. After voting period is ended the proposal can be accepted or rejected depending on the voting results."
},
"secondsProposalExecutionDelayPeriod" : {
"value": 43200,
"description": "Value represents the amount of seconds that are given for a delaying execution after voting period is ended."
}
},
"initCreationSubDAOsVotingPowerSpecificData": {
"functionDescription": "Initiates specific voting power data for creationSubDAOs management system, that has decision type VotingPowerERC20. All params below are specific for each management system.",
"thresholdForInitiator": {
"value": 100,
"description": "Value is the percentage (1% - 0.01 * 10000). The percentage helps to calculate the thresholdForInitiator by multiplying with maxAmountOfVotingPower (or with totalAmountOfVotingPower if it is more). Absolute value is used as a restriction for creating proposals (comparison: if initiator amount of votingPower is less than a value - is not able to create.)"
},
"thresholdForProposal" : {
"value": 500,
"description": "Value is the percentage (51% - 0.51 * 10000). The percentage helps to calculate the thresholdForProposal by multiplying with maxAmountOfVotingPower (or with totalAmountOfVotingPower if it is more). Absolute value is used as a restriction for accepting proposals (comparison: if votesYes and/or votesNo more than a value - proposal reached threshold, if votesYes more than votesNo - proposal is accepted, otherwise is rejected.)"
},
"secondsProposalVotingPeriod" : {
"value": 432000,
"description": "Value represents the amount of seconds that are given for voting actions. After proposal is created the countdown started, votingPowerHolder are able to vote. After voting period is ended the proposal can be accepted or rejected depending on the voting results."
},
"secondsProposalExecutionDelayPeriod" : {
"value": 43200,
"description": "Value represents the amount of seconds that are given for a delaying execution after voting period is ended."
}
}
}