UNPKG

@openzeppelin/upgrades

Version:

JavaScript library for the OpenZeppelin smart contract platform

54 lines (53 loc) 3.01 kB
import Package from '../application/Package'; import { ContractInterface } from './AppProject'; import Contract from '../artifacts/Contract'; import ProxyFactory from '../proxy/ProxyFactory'; import { TxParams } from '../artifacts/ZWeb3'; interface Implementations { [contractName: string]: Implementation; } interface Implementation { address: string; bytecodeHash: string; } interface Dependencies { [packageName: string]: Dependency; } interface Dependency { package: string; version: string; } export default abstract class BaseSimpleProject { implementations: Implementations; dependencies: Dependencies; txParams: TxParams; name: string; proxyFactory?: ProxyFactory; constructor(name: string, proxyFactory?: ProxyFactory, txParams?: TxParams); abstract getAdminAddress(): Promise<string>; setImplementation(contract: Contract, contractName?: string): Promise<any>; unsetImplementation(contractName: string): void; registerImplementation(contractName: string, { address, bytecodeHash }: Implementation): Promise<void>; getImplementation({ packageName, contractName, contract, }: { packageName?: string; contractName?: string; contract?: Contract; }): Promise<string | undefined>; getDependencyPackage(name: string): Promise<Package>; getDependencyVersion(name: string): [number, number, number]; hasDependency(name: string): boolean; setDependency(name: string, packageAddress: string, version: string): void; unsetDependency(name: string): void; createProxy(contract: any, { packageName, contractName, initMethod, initArgs, redeployIfChanged, admin }?: ContractInterface): Promise<Contract>; createProxyWithSalt(contract: any, salt: string, signature?: string, { packageName, contractName, initMethod, initArgs, redeployIfChanged, admin }?: ContractInterface): Promise<Contract>; createMinimalProxy(contract: any, { packageName, contractName, initMethod, initArgs, redeployIfChanged }?: ContractInterface): Promise<Contract>; getProxyDeploymentAddress(salt: string, sender?: string): Promise<string>; getProxyDeploymentSigner(contract: any, salt: string, signature: string, { packageName, contractName, initMethod, initArgs, admin }?: ContractInterface): Promise<string>; ensureProxyFactory(): Promise<ProxyFactory>; private _getOrDeployOwnImplementation; private _getDependencyImplementation; protected _setUpgradeParams(proxyAddress: string, contract: Contract, { packageName, contractName, initMethod: initMethodName, initArgs, redeployIfChanged }?: ContractInterface): Promise<any>; protected _getOrDeployImplementation(contract: Contract, packageName: string, contractName?: string, redeployIfChanged?: boolean): Promise<string | never>; protected _getAndLogInitCallData(contract: Contract, initMethodName?: string, initArgs?: string[], implementationAddress?: string, actionLabel?: string, proxyAddress?: string): string | null; } export {};