@@ -198,6 +198,8 @@ function force_truffle_compiler_settings
198
198
local solc_path=" $3 "
199
199
local preset=" $4 "
200
200
local evm_version=" ${5:- " $CURRENT_EVM_VERSION " } "
201
+ local extra_settings=" $6 "
202
+ local extra_optimizer_settings=" $7 "
201
203
202
204
[[ $binary_type == native || $binary_type == solcjs ]] || assertFail
203
205
@@ -209,14 +211,14 @@ function force_truffle_compiler_settings
209
211
echo " Binary type: $binary_type "
210
212
echo " Compiler path: $solc_path "
211
213
echo " Settings preset: ${preset} "
212
- echo " Settings: $( settings_from_preset " $preset " " $evm_version " ) "
214
+ echo " Settings: $( settings_from_preset " $preset " " $evm_version " " $extra_settings " " $extra_optimizer_settings " ) "
213
215
echo " EVM version: $evm_version "
214
216
echo " Compiler version: ${SOLCVERSION_SHORT} "
215
217
echo " Compiler version (full): ${SOLCVERSION} "
216
218
echo " -------------------------------------"
217
219
218
220
local compiler_settings gas_reporter_settings
219
- compiler_settings=$( truffle_compiler_settings " $solc_path " " $preset " " $evm_version " )
221
+ compiler_settings=$( truffle_compiler_settings " $solc_path " " $preset " " $evm_version " " $extra_settings " " $extra_optimizer_settings " )
220
222
gas_reporter_settings=$( eth_gas_reporter_settings " $preset " )
221
223
222
224
{
@@ -307,19 +309,21 @@ function force_hardhat_compiler_settings
307
309
local preset=" $2 "
308
310
local config_var_name=" $3 "
309
311
local evm_version=" ${4:- " $CURRENT_EVM_VERSION " } "
312
+ local extra_settings=" $5 "
313
+ local extra_optimizer_settings=" $6 "
310
314
311
315
printLog " Configuring Hardhat..."
312
316
echo " -------------------------------------"
313
317
echo " Config file: ${config_file} "
314
318
echo " Settings preset: ${preset} "
315
- echo " Settings: $( settings_from_preset " $preset " " $evm_version " ) "
319
+ echo " Settings: $( settings_from_preset " $preset " " $evm_version " " $extra_settings " " $extra_optimizer_settings " ) "
316
320
echo " EVM version: ${evm_version} "
317
321
echo " Compiler version: ${SOLCVERSION_SHORT} "
318
322
echo " Compiler version (full): ${SOLCVERSION} "
319
323
echo " -------------------------------------"
320
324
321
325
local compiler_settings gas_reporter_settings
322
- compiler_settings=$( hardhat_compiler_settings " $SOLCVERSION_SHORT " " $preset " " $evm_version " )
326
+ compiler_settings=$( hardhat_compiler_settings " $SOLCVERSION_SHORT " " $preset " " $evm_version " " $extra_settings " " $extra_optimizer_settings " )
323
327
gas_reporter_settings=$( eth_gas_reporter_settings " $preset " )
324
328
if [[ $config_file == * \. js ]]; then
325
329
[[ $config_var_name == " " ]] || assertFail
@@ -372,17 +376,22 @@ function settings_from_preset
372
376
{
373
377
local preset=" $1 "
374
378
local evm_version=" $2 "
379
+ local extra_settings=" $3 "
380
+ local extra_optimizer_settings=" $4 "
375
381
376
382
[[ " ${AVAILABLE_PRESETS[*]} " == * " $preset " * ]] || assertFail
377
383
384
+ [[ $extra_settings == " " ]] || extra_settings=" ${extra_settings} , "
385
+ [[ $extra_optimizer_settings == " " ]] || extra_optimizer_settings=" ${extra_optimizer_settings} , "
386
+
378
387
case " $preset " in
379
388
# NOTE: Remember to update `parallelism` of `t_ems_ext` job in CI config if you add/remove presets
380
- legacy-no-optimize) echo " {evmVersion: '${evm_version} ', viaIR: false, optimizer: {enabled: false}}" ;;
381
- ir-no-optimize) echo " {evmVersion: '${evm_version} ', viaIR: true, optimizer: {enabled: false}}" ;;
382
- legacy-optimize-evm-only) echo " {evmVersion: '${evm_version} ', viaIR: false, optimizer: {enabled: true, details: {yul: false}}}" ;;
383
- ir-optimize-evm-only) echo " {evmVersion: '${evm_version} ', viaIR: true, optimizer: {enabled: true, details: {yul: false}}}" ;;
384
- legacy-optimize-evm+yul) echo " {evmVersion: '${evm_version} ', viaIR: false, optimizer: {enabled: true, details: {yul: true}}}" ;;
385
- ir-optimize-evm+yul) echo " {evmVersion: '${evm_version} ', viaIR: true, optimizer: {enabled: true, details: {yul: true}}}" ;;
389
+ legacy-no-optimize) echo " {${extra_settings} evmVersion: '${evm_version} ', viaIR: false, optimizer: {${extra_optimizer_settings} enabled: false}}" ;;
390
+ ir-no-optimize) echo " {${extra_settings} evmVersion: '${evm_version} ', viaIR: true, optimizer: {${extra_optimizer_settings} enabled: false}}" ;;
391
+ legacy-optimize-evm-only) echo " {${extra_settings} evmVersion: '${evm_version} ', viaIR: false, optimizer: {${extra_optimizer_settings} enabled: true, details: {yul: false}}}" ;;
392
+ ir-optimize-evm-only) echo " {${extra_settings} evmVersion: '${evm_version} ', viaIR: true, optimizer: {${extra_optimizer_settings} enabled: true, details: {yul: false}}}" ;;
393
+ legacy-optimize-evm+yul) echo " {${extra_settings} evmVersion: '${evm_version} ', viaIR: false, optimizer: {${extra_optimizer_settings} enabled: true, details: {yul: true}}}" ;;
394
+ ir-optimize-evm+yul) echo " {${extra_settings} evmVersion: '${evm_version} ', viaIR: true, optimizer: {${extra_optimizer_settings} enabled: true, details: {yul: true}}}" ;;
386
395
* )
387
396
fail " Unknown settings preset: '${preset} '."
388
397
;;
@@ -419,11 +428,13 @@ function truffle_compiler_settings
419
428
local solc_path=" $1 "
420
429
local preset=" $2 "
421
430
local evm_version=" $3 "
431
+ local extra_settings=" $4 "
432
+ local extra_optimizer_settings=" $5 "
422
433
423
434
echo " {"
424
435
echo " solc: {"
425
436
echo " version: \" ${solc_path} \" ,"
426
- echo " settings: $( settings_from_preset " $preset " " $evm_version " ) "
437
+ echo " settings: $( settings_from_preset " $preset " " $evm_version " " $extra_settings " " $extra_optimizer_settings " ) "
427
438
echo " }"
428
439
echo " }"
429
440
}
@@ -468,10 +479,12 @@ function hardhat_compiler_settings {
468
479
local solc_version=" $1 "
469
480
local preset=" $2 "
470
481
local evm_version=" $3 "
482
+ local extra_settings=" $4 "
483
+ local extra_optimizer_settings=" $5 "
471
484
472
485
echo " {"
473
486
echo " version: '${solc_version} ',"
474
- echo " settings: $( settings_from_preset " $preset " " $evm_version " ) "
487
+ echo " settings: $( settings_from_preset " $preset " " $evm_version " " $extra_settings " " $extra_optimizer_settings " ) "
475
488
echo " }"
476
489
}
477
490
@@ -506,9 +519,11 @@ function truffle_run_test
506
519
local compile_only_presets=" $5 "
507
520
local compile_fn=" $6 "
508
521
local test_fn=" $7 "
522
+ local extra_settings=" $8 "
523
+ local extra_optimizer_settings=" $9 "
509
524
510
525
truffle_clean
511
- force_truffle_compiler_settings " $config_file " " $binary_type " " $solc_path " " $preset "
526
+ force_truffle_compiler_settings " $config_file " " $binary_type " " $solc_path " " $preset " " $CURRENT_EVM_VERSION " " $extra_settings " " $extra_optimizer_settings "
512
527
compile_and_run_test compile_fn test_fn truffle_verify_compiler_version " $preset " " $compile_only_presets "
513
528
}
514
529
@@ -520,9 +535,11 @@ function hardhat_run_test
520
535
local compile_fn=" $4 "
521
536
local test_fn=" $5 "
522
537
local config_var_name=" $6 "
538
+ local extra_settings=" $7 "
539
+ local extra_optimizer_settings=" $8 "
523
540
524
541
hardhat_clean
525
- force_hardhat_compiler_settings " $config_file " " $preset " " $config_var_name "
542
+ force_hardhat_compiler_settings " $config_file " " $preset " " $config_var_name " " $CURRENT_EVM_VERSION " " $extra_settings " " $extra_optimizer_settings "
526
543
compile_and_run_test compile_fn test_fn hardhat_verify_compiler_version " $preset " " $compile_only_presets "
527
544
}
528
545
0 commit comments