diff --git a/abi.js b/abi.js index f41d0cb..102f915 100644 --- a/abi.js +++ b/abi.js @@ -41,13 +41,15 @@ export async function getAbi(className) { let found = abi[className] if (found === undefined) { console.log('warning: loading ABI from filesystem for '+className) - // const data = await readFile(ABI_BASE_PATH + `/${className}.sol/${className}.json`) - let data - try { - data = await readFile(ABI_BASE_PATH + `/I${className}.sol/I${className}.json`) - } - catch (e) { - data = await readFile(ABI_BASE_PATH + `/${className}.sol/${className}.json`) + let data = await readFile(ABI_BASE_PATH + `/${className}.sol/${className}.json`) + // Tricky code to handle proxy Vault where interface file is needed instead of class file + if (className == 'Vault') { + try { + data = await readFile(ABI_BASE_PATH + `/I${className}.sol/I${className}.json`) + } + catch (e) { + if (e.code !== 'ENOENT') throw e; + } } found = JSON.parse(data.toString())['abi'] abi[className] = found