add optimizer options:

This commit is contained in:
pgherveou
2025-05-08 12:19:28 +02:00
parent 8b1a36eddf
commit df963d2795
+17 -4
View File
@@ -93,13 +93,26 @@ export function version(): string {
export async function compile( export async function compile(
sources: SolcInput, sources: SolcInput,
option: { bin?: string } = {} option: {
optimizer?: Record<string, unknown>
bin?: string
} = {}
): Promise<SolcOutput> { ): Promise<SolcOutput> {
const {
optimizer = {
mode: 'z',
fallback_to_optimizing_for_size: true,
enabled: true,
runs: 200,
},
bin,
} = option
const input = JSON.stringify({ const input = JSON.stringify({
language: 'Solidity', language: 'Solidity',
sources: resolveInputs(sources), sources: resolveInputs(sources),
settings: { settings: {
optimizer: { enabled: true, runs: 200 }, optimizer,
outputSelection: { outputSelection: {
'*': { '*': {
'*': ['abi'], '*': ['abi'],
@@ -108,8 +121,8 @@ export async function compile(
}, },
}) })
if (option.bin) { if (bin) {
return compileWithBin(input, option.bin) return compileWithBin(input, bin)
} }
return resolc(input) return resolc(input)