UNPKG

@fairyfromalfeya/locklift-deploy

Version:

Locklift plugin for replicable deployments and easy testing

65 lines (64 loc) 2.6 kB
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>; }