in src/helpers/openZeppelinHelper.ts [135:167]
async function getAssetsWithNotSpecifiedRequiredParameters() {
const currentOZVersion = await tryGetCurrentOpenZeppelinVersionAsync();
const manifest = await createManifestAsync(currentOZVersion);
const manifestAssets = manifest.getAssets();
const currentAssets = await OpenZeppelinService.getAllDownloadedAssetsAsync();
return currentAssets.reduce((assets, asset) => {
const manifestAsset = manifestAssets.find((assetFromManifest) => assetFromManifest.id === asset.id);
if (manifestAsset && !!manifestAsset.requiredParameters) {
if (!!asset.requiredParameters) {
for (const [contractName, contractParameters] of Object.entries(asset.requiredParameters)) {
const manifestContractParameters = manifestAsset.requiredParameters[contractName];
if (manifestContractParameters) {
for (const parameter of contractParameters) {
if (parameter.value === undefined) {
const param = manifestContractParameters.find((manifestContractParameter) =>
manifestContractParameter.name === parameter.name &&
manifestContractParameter.type === parameter.type);
if (param) {
assets.push(asset);
return assets;
}
}
}
}
}
} else {
assets.push(JSON.parse(JSON.stringify(manifestAsset)));
}
}
return assets;
}, [] as IOZAsset[]);
}