-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.js
155 lines (153 loc) · 8.6 KB
/
config.js
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
const web3 = require('web3');
const toWei = web3.utils.toWei;
const env = (key, def) => { return process.env[key] || def; };
const num = (key, def) => { return Number(env(key, def)); };
const vrf = ({ vrfCoordinator, linkToken }) => Object.values({
vrfCoordinator: vrfCoordinator || env('VRF_COORDINATOR'), // Coordinator contract
linkToken: linkToken || env('LINK_ADDRESS'), // LINK token contract
keyHash: env('VRF_KEY_HASH', '0x0'), // 30 gwei key hash gas lane
vrfFee: toWei(env('VRF_FEE', '0.0001'), 'ether'),
});
module.exports = (network, accounts = []) => ({
mint: options => vrf(options),
claim: options => vrf(options),
dao: {
address: env('DAO_ADDRESS', accounts ? accounts[9] : ''),
},
timelock: {
address: env('TIMELOCK_ADDRESS'),
minDelay: num('TIMELOCK_MIN_DELAY', (60 * 60 * 24 * 2).toString()),
proposers: env('TIMELOCK_PROPOSERS', accounts ? accounts[9] : ''),
executors: env('TIMELOCK_EXECUTORS', accounts ? accounts[9] : ''),
},
payWall: Object.values({
mintPrice: toWei(env('PAYWALL_MINT_PRICE', '0.1'), 'ether'),
whitelistBoost: num('PAYWALL_WHITELIST_BOOST', '1'),
maxMintsPerTx: num('PAYWALL_MAX_MINTS_PER_TX', '10'),
gen1Prices: Object.values({
gen1PriceTier0: toWei(env('PAYWALL_GEN1_PRICE_TIER0', '2000'), 'ether'),
gen1PriceTier1: toWei(env('PAYWALL_GEN1_PRICE_TIER1', '3000'), 'ether'),
gen1PriceTier2: toWei(env('PAYWALL_GEN1_PRICE_TIER2', '5000'), 'ether'),
gen1PriceTier3: toWei(env('PAYWALL_GEN1_PRICE_TIER3', '8000'), 'ether'),
}),
}),
character: Object.values({
maxTokens: num('CHARACTER_MAX_TOKENS', '20000'),
gen0Tokens: num('CHARACTER_GEN0_TOKENS', '10000'),
}),
kitchen: {
ratTheftPercentage: num('KITCHEN_RAT_THEFT_PERCENTAGE', '20'),
vestingPeriod: num('KITCHEN_VESTING_PERIOD', '3600'),
accrualPeriod: num('KITCHEN_ACCRUAL_PERIOD', '86400'),
mcStake: {
foodTokenMaxSupply: toWei(env('KITCHEN_MCSTAKE_FOOD_TOKEN_MAX_SUPPLY', '50000000'), 'ether'),
dailyChefEarnings: toWei(env('KITCHEN_MCSTAKE_DAILY_CHEF_EARNINGS', '50'), 'ether'),
propertyIncrements: Object.values({
dailySkillRate: num('KITCHEN_MCSTAKE_PROPERTY_INCREMENTS_DAILY_SKILL_RATE', '2'),
dailyFreakRate: num('KITCHEN_MCSTAKE_PROPERTY_INCREMENTS_DAILY_FREAK_RATE', '4'),
dailyIntelligenceRate: num('KITCHEN_MCSTAKE_PROPERTY_INCREMENTS_DAILY_INTELLIGENCE_RATE', '2'),
dailyBodyMassRate: num('KITCHEN_MCSTAKE_PROPERTY_INCREMENTS_DAILY_BODYMASS_RATE', '8'),
}),
},
theStakehouse: {
foodTokenMaxSupply: toWei(env('KITCHEN_THESTAKEHOUSE_FOOD_TOKEN_MAX_SUPPLY', '5000000'), 'ether'),
dailyChefEarnings: toWei(env('KITCHEN_THESTAKEHOUSE_DAILY_CHEF_EARNINGS', '25'), 'ether'),
propertyIncrements: Object.values({
dailySkillRate: num('KITCHEN_THESTAKEHOUSE_PROPERTY_INCREMENTS_DAILY_SKILL_RATE', '4'),
dailyFreakRate: num('KITCHEN_THESTAKEHOUSE_PROPERTY_INCREMENTS_DAILY_FREAK_RATE', '6'),
dailyIntelligenceRate: num('KITCHEN_THESTAKEHOUSE_PROPERTY_INCREMENTS_DAILY_INTELLIGENCE_RATE', '4'),
dailyBodyMassRate: num('KITCHEN_THESTAKEHOUSE_PROPERTY_INCREMENTS_DAILY_BODYMASS_RATE', '6'),
}),
minEfficiency: num('KITCHEN_THESTAKEHOUSE_MIN_EFFICIENCY', '28'),
},
leStake: {
foodTokenMaxSupply: toWei(env('KITCHEN_LESTAKE_FOOD_TOKEN_MAX_SUPPLY', '500000'), 'ether'),
dailyChefEarnings: toWei(env('KITCHEN_LESTAKE_DAILY_CHEF_EARNINGS', '12.5'), 'ether'),
propertyIncrements: Object.values({
dailySkillRate: num('KITCHEN_LESTAKE_PROPERTY_INCREMENTS_DAILY_SKILL_RATE', '6'),
dailyFreakRate: num('KITCHEN_LESTAKE_PROPERTY_INCREMENTS_DAILY_FREAK_RATE', '8'),
dailyIntelligenceRate: num('KITCHEN_LESTAKE_PROPERTY_INCREMENTS_DAILY_INTELLIGENCE_RATE', '6'),
dailyBodyMassRate: num('KITCHEN_LESTAKE_PROPERTY_INCREMENTS_DAILY_BODYMASS_RATE', '4'),
}),
minEfficiency: num('KITCHEN_LESTAKE_MIN_EFFICIENCY', '72'),
},
chefEfficiencyMultiplier: num('CHEF_EFFICIENCY_MULTIPLIER', '175'),
ratEfficiencyMultiplier: num('KITCHEN_RAT_EFFICIENCY_MULTIPLIER', '290'),
ratEfficiencyOffset: num('KITCHEN_RAT_EFFICIENCY_OFFSET', '55'),
maxClaimsPerTx: num('KITCHEN_MAX_CLAIMS_PER_TX', '10'),
claimFee: toWei(env('KITCHEN_CLAIM_FEE', '0.002'), 'ether'),
},
gym: Object.values({
vestingPeriod: num('GYM_VESTING_PERIOD', '3600'),
accrualPeriod: num('GYM_ACCRUAL_PERIOD', '86400'),
dailyFreakRate: num('GYM_DAILY_FREAK_RATE', '-12'),
dailyBodyMassRate: num('GYM_DAILY_BODYMASS_RATE', '-8'),
maxClaimsPerTx: num('GYM_MAX_CLAIMS_PER_TX', '10'),
claimFee: toWei(env('GYM_CLAIM_FEE', '0.002'), 'ether'),
}),
tripleFiveClub: Object.values({
vestingPeriod: num('TRIPLEFIVECLUB_VESTING_PERIOD', '3600'),
accrualPeriod: num('TRIPLEFIVECLUB_ACCRUAL_PERIOD', '3600'),
dailyFreakRate: num('TRIPLEFIVECLUB_DAILY_FREAK_RATE', '-2'),
dailyBodyMassRate: num('TRIPLEFIVECLUB_DAILY_BODYMASS_RATE', '-1'),
boostLevel: num('TRIPLEFIVECLUB_BOOST_LEVEL', '2'),
entranceFees: Object.values({
gen0: toWei(env('TRIPLEFIVECLUB_ENTRANCEFEE_GEN0', '0.1'), 'ether'),
gen1: toWei(env('TRIPLEFIVECLUB_ENTRANCEFEE_GEN1', '1'), 'ether'),
}),
weekModulo: Object.values({
start: num('TRIPLEFIVECLUB_WEEKMODULO_START', '259200'),
end: num('TRIPLEFIVECLUB_WEEKMODULO_END', '345600'),
}),
maxConcurrentGen1: num('TRIPLEFIVECLUB_CONCURRENT_GEN1', '10'),
maxClaimsPerTx: num('TRIPLEFIVECLUB_MAX_CLAIMS_PER_TX', '10'),
claimFee: toWei(env('TRIPLEFIVECLUB_CLAIM_FEE', '0.002'), 'ether'),
}),
kitchenShop: Object.values({
maxTokens: [num('KITCHENSHOP_MAX_TOKENS_THESTAKEHOUSE', '1000'), num('KITCHENSHOP_MAX_TOKENS_LESTAKE', '100')],
maxMintsPerTx: num('KITCHENSHOP_MAX_MINTS_PER_TX', '10'),
minSkill: [num('KITCHENSHOP_MIN_SKILL_THESTAKEHOUSE', '28'), num('KITCHENSHOP_MIN_SKILL_LESTAKE', '72')],
prices: Object.values({
priceTier0: toWei(env('KITCHENSHOP_PRICE_TIER0', '1000'), 'ether'),
priceTier1: toWei(env('KITCHENSHOP_PRICE_TIER1', '2000'), 'ether'),
priceTier2: toWei(env('KITCHENSHOP_PRICE_TIER2', '4000'), 'ether'),
priceTier3: toWei(env('KITCHENSHOP_PRICE_TIER3', '7000'), 'ether'),
priceTier4: toWei(env('KITCHENSHOP_PRICE_TIER4', '11000'), 'ether'),
}),
}),
kitchenUsage: Object.values({
chefsPerKitchen: num('KITCHEN_CHEFS_PER_KITCHEN', '10'),
}),
properties: Object.values({
disaster: Object.values({
disasterToleranceMinimumChef: num('PROPERTIES_DISASTER_EFFICIENCY_MINIMUM_CHEF', '86'),
disasterToleranceMinimumRat: num('PROPERTIES_DISASTER_EFFICIENCY_MINIMUM_RAT', '86'),
disasterEfficiencyLossChef: num('PROPERTIES_DISASTER_EFFICIENCY_LOSS_CHEF', '0'),
disasterEfficiencyLossRat: num('PROPERTIES_DISASTER_EFFICIENCY_LOSS_RAT', '0'),
disasterToleranceLossChef: num('PROPERTIES_DISASTER_TOLERANCE_LOSS_CHEF', '0'),
disasterToleranceLossRat: num('PROPERTIES_DISASTER_TOLERANCE_LOSS_RAT', '0'),
}),
mishap: Object.values({
mishapEfficiencyMinimumChef: num('PROPERTIES_MISHAP_EFFICIENCY_MINIMUM_CHEF', '15'),
mishapEfficiencyMinimumRat: num('PROPERTIES_MISHAP_EFFICIENCY_MINIMUM_RAT', '15'),
mishapEfficiencyLossChef: num('PROPERTIES_MISHAP_EFFICIENCY_LOSS_CHEF', '10'),
mishapEfficiencyLossRat: num('PROPERTIES_MISHAP_EFFICIENCY_LOSS_RAT', '10'),
mishapToleranceLossChef: num('PROPERTIES_MISHAP_TOLERANCE_LOSS_CHEF', '25'),
mishapToleranceLossRat: num('PROPERTIES_MISHAP_TOLERANCE_LOSS_RAT', '50'),
}),
likelihood: Object.values({
disasterLikelihoodDividerChef: num('PROPERTIES_DISASTER_LIKELIHOOD_DIVIDER_CHEF', '-4'),
disasterLikelihoodMultiplierChef: num('PROPERTIES_DISASTER_LIKELIHOOD_MULTIPLIER_CHEF', '14'),
disasterLikelihoodOffsetChef: num('PROPERTIES_DISASTER_LIKELIHOOD_OFFSET_CHEF', '50'),
disasterLikelihoodDividerRat: num('PROPERTIES_DISASTER_LIKELIHOOD_DIVIDER_RAT', '-4'),
disasterLikelihoodMultiplierRat: num('PROPERTIES_DISASTER_LIKELIHOOD_MULTIPLIER_RAT', '14'),
disasterLikelihoodOffsetRat: num('PROPERTIES_DISASTER_LIKELIHOOD_OFFSET_RAT', '50'),
mishapLikelihoodDividerChef: num('PROPERTIES_MISHAP_LIKELIHOOD_DIVIDER_CHEF', '-1'),
mishapLikelihoodMultiplierChef: num('PROPERTIES_MISHAP_LIKELIHOOD_MULTIPLIER_CHEF', '1'),
mishapLikelihoodOffsetChef: num('PROPERTIES_MISHAP_LIKELIHOOD_OFFSET_CHEF', '20'),
mishapLikelihoodDividerRat: num('PROPERTIES_MISHAP_LIKELIHOOD_DIVIDER_RAT', '-1'),
mishapLikelihoodMultiplierRat: num('PROPERTIES_MISHAP_LIKELIHOOD_MULTIPLIER_RAT', '1'),
mishapLikelihoodOffsetRat: num('PROPERTIES_MISHAP_LIKELIHOOD_OFFSET_RAT', '20'),
}),
}),
});