Files
protocol/packages/migrations/src/utils/configs_by_chain.ts

60 lines
2.1 KiB
TypeScript

import { BigNumber } from '@0x/utils';
import { constants } from './constants';
export interface ConfigsByChain {
zeroExGovernor: { owners: string[]; secondsTimeLocked: BigNumber; required: BigNumber };
staking: {
epochDurationInSeconds: BigNumber;
rewardDelegatedStakeWeight: number;
minimumPoolStake: BigNumber;
cobbDouglasAlphaNumerator: number;
cobbDouglasAlphaDenominator: number;
};
}
// tslint:disable custom-no-magic-numbers
/**
* Gets configs that correspond to the given chainId.
* @param chainId Id of the netowrk.
*/
export function getConfigsByChainId(chainId: number): ConfigsByChain {
const mainnetConfigs = {
zeroExGovernor: {
owners: [
'0x257619b7155d247e43c8b6d90c8c17278ae481f0',
'0x5ee2a00f8f01d099451844af7f894f26a57fcbf2',
'0x894d623e0e0e8ed12c4a73dada999e275684a37d',
],
secondsTimeLocked: constants.TWO_WEEKS_IN_SEC,
required: new BigNumber(2),
},
staking: {
epochDurationInSeconds: constants.TEN_DAYS_IN_SEC,
rewardDelegatedStakeWeight: 10 ** 6 * 0.9,
minimumPoolStake: new BigNumber(10).pow(18).times(100),
cobbDouglasAlphaNumerator: 2,
cobbDouglasAlphaDenominator: 3,
},
};
const testnetConfigs = {
zeroExGovernor: {
owners: [
'0x9df8137872ac09a8fee71d0da5c7539923fb9bf0',
'0xcf34d44db312d188789f43a63d11cf2bebb4da15',
'0x73fd50f2a6beac9cdac9fe87ef68a18edc415831',
],
secondsTimeLocked: constants.ZERO_AMOUNT,
required: new BigNumber(1),
},
staking: {
epochDurationInSeconds: constants.TEN_DAYS_IN_SEC.dividedToIntegerBy(2),
rewardDelegatedStakeWeight: 10 ** 6 * 0.9,
minimumPoolStake: new BigNumber(10).pow(18).times(100),
cobbDouglasAlphaNumerator: 2,
cobbDouglasAlphaDenominator: 3,
},
};
return chainId === constants.MAINNET_CHAIN_ID ? mainnetConfigs : testnetConfigs;
}