async function setContractParameters()

in src/helpers/openZeppelinHelper.ts [96:133]


async function setContractParameters(assets: IOZAsset[]): Promise<void> {
  const projectMetadata = await OpenZeppelinProjectJsonService.getProjectJson();
  try {
    for (const asset of assets) {
      for (const [contractName, contractParameters] of Object.entries(asset.requiredParameters!)) {
        for (const parameter of contractParameters) {
          if (!parameter.value) {
            parameter.value = await showInputBox({
              ignoreFocusOut: true,
              prompt: Constants.openZeppelin.contactParameterInformation(
                contractName,
                parameter.name,
                parameter.type,
              ),
              validateInput: (v) => validateSolidityType(v, parameter.type),
            });
          }
        }
      }
    }
    await OpenZeppelinProjectJsonService.addAssetsToProjectJsonAsync(
      assets,
      projectMetadata);
    await OpenZeppelinProjectJsonService.storeProjectJsonAsync(projectMetadata);
  } catch (error) {
    if (await showConfirmationDialog(Constants.openZeppelin.saveSpecifiedParameters)) {
      await OpenZeppelinProjectJsonService.addAssetsToProjectJsonAsync(
        assets,
        projectMetadata);
      await OpenZeppelinProjectJsonService.storeProjectJsonAsync(projectMetadata);
    }
    if (error instanceof CancellationEvent) {
      return;
    } else {
      throw error;
    }
  }
}