UNPKG

superfuse-wizard

Version:

Interactive smart contract generator based on Superchain 's interoperability standard.

47 lines (34 loc) 1.02 kB
import type { Info } from "./set-info"; import { defaults as infoDefaults } from "./set-info"; import type { Access } from "../smart-contracts/set-access-control"; import type { Upgradeable } from "../smart-contracts/set-upgradeable"; export interface CommonOptions { access?: Access; upgradeable?: Upgradeable; contractInfo?: Info; deployInfo?: Info; testInfo?: Info; } export const defaults: Required<CommonOptions> = { access: false, upgradeable: false, contractInfo: infoDefaults, deployInfo: infoDefaults, testInfo: infoDefaults, } as const; export interface CommonOptions { access?: Access; upgradeable?: Upgradeable; contractInfo?: Info; deployInfo?: Info; testInfo?: Info; } export function withCommonDefaults(opts: CommonOptions): Required<CommonOptions> { return { access: opts.access ?? false, upgradeable: opts.upgradeable ?? false, contractInfo: opts.contractInfo ?? {}, deployInfo: opts.deployInfo ?? {}, testInfo: opts.testInfo ?? {}, }; }