@fairyfromalfeya/locklift-deploy
Version:
Locklift plugin for replicable deployments and easy testing
65 lines (64 loc) • 2.6 kB
TypeScript
import { FactoryType } from "locklift/internal/factory";
import { Address, Contract, Locklift } from "locklift";
import { AccountWithSigner, CreateAccountParamsWithoutPk, DeployContractParams, SaveAccount, TagFile } from "./types";
export declare class Deployments<T extends FactoryType = FactoryType> {
private readonly locklift;
private readonly tags;
private readonly network;
private readonly networkId;
deploymentsStore: Record<string, Contract<any>>;
accountsStore: Record<string, AccountWithSigner>;
private readonly pathToNetworkFolder;
private readonly logger;
constructor(locklift: Locklift<T>, tags: Array<TagFile>, network: string, networkId: number);
private getLogContent;
private getAccountOrContractFilePath;
private writeDeployInfo;
deploy: ({ deployConfig, deploymentName, enableLogs, }: {
deployConfig: DeployContractParams<T>;
deploymentName: string;
enableLogs?: boolean | undefined;
}) => Promise<{
contract: Contract<T[keyof T]>;
} & {
tx: import("locklift/types").TransactionWithOutput;
}>;
saveContract: ({ deploymentName, address, contractName, }: {
deploymentName: string;
address: string | Address;
contractName: keyof T;
}, enableLogs?: boolean) => Promise<void>;
private setContractToStore;
getContract: <T_1>(contractName: string) => Contract<T_1>;
deployAccounts: (accounts: Array<{
deploymentName: string;
accountSettings: CreateAccountParamsWithoutPk<T>;
} & {
signerId: string;
}>, enableLogs?: boolean) => Promise<Array<AccountWithSigner>>;
getAccount: (accountName: string) => AccountWithSigner;
saveAccount: <T_1 extends {
type: import("locklift").WalletTypes.WalletV3 | import("locklift").WalletTypes.HighLoadWalletV2;
publicKey: string;
} | {
type: import("locklift").WalletTypes.EverWallet;
address: Address;
} | {
type: import("locklift").WalletTypes.MsigAccount;
publicKey?: string | undefined;
address: Address;
mSigType: "SafeMultisig" | "multisig2";
}>({ deploymentName, signerId, address, accountSettings, }: {
accountSettings: SaveAccount<T_1>;
signerId: string;
deploymentName: string;
address: string;
}, enableLogs?: boolean) => Promise<void>;
private setAccountToStore;
reset: () => void;
load: () => Promise<void>;
fixture: (fixtureConfig?: {
include?: Array<string>;
exclude?: Array<string>;
}) => Promise<void>;
}