@melonproject/protocol
Version:
Technology Regulated and Operated Investment Funds
30 lines (29 loc) • 1.31 kB
TypeScript
import { Address } from '@melonproject/token-math';
import { Contracts } from '../../Contracts';
import { TransactionArgs, UnsignedRawTransaction } from './transactionFactory';
import { Environment } from '../environment/Environment';
interface PrepareDeployReturn {
unsignedTransaction: UnsignedRawTransaction;
txIdentifier?: string;
}
interface SendDeployArgs {
signedTransaction?: string;
unsignedTransaction?: UnsignedRawTransaction;
txIdentifier?: string;
}
declare type PrepareDeployFunction = {
(environment: Environment, pathToSolidityFile: string, args?: TransactionArgs): Promise<PrepareDeployReturn>;
(environment: Environment, contract: Contracts, args: TransactionArgs): Promise<PrepareDeployReturn>;
};
declare type SendDeployFunction = (environment: any, args: SendDeployArgs) => Promise<Address>;
declare type DeployContract = {
(environment: Environment, pathToSolidityFile: string, args?: TransactionArgs): Promise<Address>;
(environment: Environment, contract: Contracts, args: TransactionArgs): Promise<Address>;
};
interface DeployContractMixin {
prepare: PrepareDeployFunction;
send: SendDeployFunction;
}
declare type EnhancedDeploy = DeployContract & DeployContractMixin;
declare const deployContract: EnhancedDeploy;
export { deployContract };