@melonproject/protocol
Version:
Technology Regulated and Operated Investment Funds
48 lines (47 loc) • 1.56 kB
TypeScript
import { Environment, WithDeployment } from '../environment/Environment';
import { ThirdPartyContracts } from './deployThirdParty';
import { Address } from '@melonproject/token-math';
export interface Factories {
accountingFactory: Address;
feeManagerFactory: Address;
participationFactory: Address;
policyManagerFactory: Address;
sharesFactory: Address;
tradingFactory: Address;
vaultFactory: Address;
}
export interface MelonContracts {
priceSource: Address;
engine: Address;
version: Address;
ranking: Address;
registry: Address;
adapters: {
kyberAdapter: Address;
zeroExAdapter: Address;
matchingMarketAdapter: Address;
matchingMarketAccessor: Address;
ethfinexAdapter: Address;
};
policies: {
priceTolerance: Address;
userWhitelist: Address;
};
fees: {
managementFee: Address;
performanceFee: Address;
};
factories: Factories;
}
export interface ContractControl {
MGM: Address;
registryOwner: Address;
versionOwner: Address;
}
export declare type MelonContractsDraft = Partial<MelonContracts>;
export declare const deployAllContractsConfig: any;
export declare const defaultControlConfig: any;
/**
* Deploys all contracts and checks their health
*/
export declare const deploySystem: (environmentWithoutDeployment: Environment, thirdPartyContracts: ThirdPartyContracts, adoptedContracts: Partial<MelonContracts>, control: ContractControl, description?: string) => Promise<WithDeployment>;