diff --git a/packages/deploy/src/deploy.ts b/packages/deploy/src/deploy.ts index 1b40f4c..807f24d 100644 --- a/packages/deploy/src/deploy.ts +++ b/packages/deploy/src/deploy.ts @@ -93,19 +93,28 @@ export async function deploy( try { console.log("verifying FileStore"); - // Construct the forge verify-contract command based on the verifier type - let verifyCommand = `forge verify-contract ${fileStore} src/FileStore.sol:FileStore --chain-id ${chainId} --compiler-version ${fileStoreBuild.metadata.compiler.version} --num-of-optimizations ${fileStoreBuild.metadata.settings.optimizer.runs} --constructor-args ${fileStoreConstructorArgs} --watch`; + const verifierFlags = [] if (verifier.type === "etherscan") { - verifyCommand += ` --verifier etherscan --etherscan-api-key ${verifier.apiKey}`; + verifierFlags.push('--verifier etherscan') + verifierFlags.push(`--etherscan-api-key ${verifier.apiKey}`); } else if (verifier.type === "blockscout") { - verifyCommand += ` --verifier blockscout --verifier-url ${verifier.url}/api/`; + verifierFlags.push('--verifier blockscout') + verifierFlags.push(`--verifier-url ${verifier.url}`) if (verifier.apiKey) { - verifyCommand += ` --blockscout-api-key ${verifier.apiKey}`; + verifierFlags.push(`--blockscout-api-key ${verifier.apiKey}`); } } - await contracts$(verifyCommand); + await contracts$`forge verify-contract ${fileStore} src/FileStore.sol:FileStore + --chain-id ${chainId} + --compiler-version ${fileStoreBuild.metadata.compiler.version} + --evm-version ${fileStoreBuild.metadata.settings.evmVersion} + --num-of-optimizations ${fileStoreBuild.metadata.settings.optimizer.runs} + --constructor-args ${fileStoreConstructorArgs} + --watch + ${verifierFlags.join(' ')}`; + // TODO: figure out how to get sourcify working, this gives a generic 500 with "Compiler error" // TODO: try to do this with sourcify API instead of forge? // await contracts$`forge verify-contract ${fileStore} src/FileStore.sol:FileStore --chain-id ${chainId} --compiler-version ${fileStoreBuild.metadata.compiler.version} --num-of-optimizations ${fileStoreBuild.metadata.settings.optimizer.runs} --constructor-args ${fileStoreConstructorArgs} --verifier sourcify --watch`;