1import { WsProvider, ApiPromise } from "@polkadot/api";2import config from "../config";3import promisifySubstrate from "./promisify-substrate";4import { ApiOptions } from "@polkadot/api/types";56export default async function usingApi(action: (api: ApiPromise) => Promise<void>): Promise<void> {7 const wsProvider = new WsProvider(config.substrateUrl);8 const settings: ApiOptions = { provider: wsProvider, types: JSON.parse(config.customTypes) };9 let api: ApiPromise | undefined = undefined;1011 try {12 api = await ApiPromise.create(settings);13 await promisifySubstrate(api, () => api && api.isReady)();14 await action(api);15 } finally {16 api && api.disconnect();17 }18}