{
  "schemaVersion": 1,
  "article": {
    "wpId": 6050,
    "permalink": "/archives/6050",
    "sourceIssue": 192
  },
  "environment": {
    "foundry": "1.8.0",
    "foundryCommit": "61ae26af36320d4fa1020f7db53785885e29eeb5",
    "compilers": {
      "0.8.35": "0.8.35+commit.47b9dedd.Emscripten.clang",
      "0.8.36": "0.8.36+commit.8a079791.Emscripten.clang"
    },
    "networks": [
      "local Anvil prague chain 31350",
      "local Anvil paris chain 31351"
    ],
    "publicRpcUsed": false
  },
  "buildManifest": {
    "source": "examples/solidity-build-settings/src/BuildSettingsFixture.sol",
    "sourceSha256": "c2ce847fafb51b8147f41d98cf0a12b035b7fe7bae18808da5d3f71afbc63335",
    "stackPressureSource": "examples/solidity-build-settings/compiler-cases/StackPressureFixture.sol",
    "stackPressureSourceSha256": "93b78676c86ce5b1add6add48cc83f0d3e7d1067abbd0f5bda704378d73e0822",
    "contract": "src/BuildSettingsFixture.sol:BuildSettingsFixture",
    "compilerPackages": {
      "0.8.35": "solc-0.8.35@npm:solc@0.8.35",
      "0.8.36": "solc-0.8.36@npm:solc@0.8.36"
    },
    "matrix": [
      {
        "id": "legacy-runs-1",
        "compiler": "0.8.36",
        "settings": {
          "optimizer": {
            "enabled": true,
            "runs": 1
          },
          "viaIR": false,
          "evmVersion": "prague",
          "metadata": {
            "bytecodeHash": "ipfs",
            "appendCBOR": true
          }
        }
      },
      {
        "id": "legacy-runs-200",
        "compiler": "0.8.36",
        "settings": {
          "optimizer": {
            "enabled": true,
            "runs": 200
          },
          "viaIR": false,
          "evmVersion": "prague",
          "metadata": {
            "bytecodeHash": "ipfs",
            "appendCBOR": true
          }
        }
      },
      {
        "id": "legacy-runs-10000",
        "compiler": "0.8.36",
        "settings": {
          "optimizer": {
            "enabled": true,
            "runs": 10000
          },
          "viaIR": false,
          "evmVersion": "prague",
          "metadata": {
            "bytecodeHash": "ipfs",
            "appendCBOR": true
          }
        }
      },
      {
        "id": "via-ir-runs-200",
        "compiler": "0.8.36",
        "settings": {
          "optimizer": {
            "enabled": true,
            "runs": 200
          },
          "viaIR": true,
          "evmVersion": "prague",
          "metadata": {
            "bytecodeHash": "ipfs",
            "appendCBOR": true
          }
        }
      },
      {
        "id": "legacy-paris-runs-200",
        "compiler": "0.8.36",
        "settings": {
          "optimizer": {
            "enabled": true,
            "runs": 200
          },
          "viaIR": false,
          "evmVersion": "paris",
          "metadata": {
            "bytecodeHash": "ipfs",
            "appendCBOR": true
          }
        }
      },
      {
        "id": "legacy-metadata-none",
        "compiler": "0.8.36",
        "settings": {
          "optimizer": {
            "enabled": true,
            "runs": 200
          },
          "viaIR": false,
          "evmVersion": "prague",
          "metadata": {
            "bytecodeHash": "none",
            "appendCBOR": true
          }
        }
      },
      {
        "id": "compiler-0.8.35",
        "compiler": "0.8.35",
        "settings": {
          "optimizer": {
            "enabled": true,
            "runs": 200
          },
          "viaIR": false,
          "evmVersion": "prague",
          "metadata": {
            "bytecodeHash": "ipfs",
            "appendCBOR": true
          }
        }
      }
    ],
    "rebuild": {
      "attemptsPerSetting": 2,
      "sourceAndStandardJsonHeldConstant": true,
      "allCreationAndRuntimeHashesMatched": true
    }
  },
  "benchmark": {
    "input": {
      "seed": "17",
      "rounds": "32",
      "minimum": "1"
    },
    "expectedOutput": "25617586215839710",
    "gasScope": {
      "deployGas": "receipt gasUsed for one fresh contract creation transaction",
      "runtimeWriteGas": "receipt gasUsed for the first execute(17,32,1) transaction",
      "units": "gas",
      "feeAssumption": "base fee and gas price fixed to zero; fee is not reported"
    },
    "matrix": [
      {
        "id": "legacy-runs-1",
        "compiler": "0.8.36+commit.8a079791.Emscripten.clang",
        "settings": {
          "optimizer": {
            "enabled": true,
            "runs": 1
          },
          "viaIR": false,
          "evmVersion": "prague",
          "metadata": {
            "bytecodeHash": "ipfs",
            "appendCBOR": true
          }
        },
        "creationBytes": 624,
        "runtimeBytes": 596,
        "functionalRuntimeBytes": 543,
        "metadataTrailerBytes": 53,
        "metadataCborBytes": 51,
        "creationSha256": "0d96bf2e89c63345ee900fbb786b85d47dcd095bb3917a57a07d4b2b546c6544",
        "runtimeSha256": "19552035e90905224663ed66651400496209d108a5d9b20ab016e95b4845fe8c",
        "functionalRuntimeSha256": "bacdddb31c204671463298326325946765721635e6ccc150ba5402726c37d93b",
        "metadataTrailerSha256": "cfc1e01fdaf144a50417307cd6a44c8446b014fa6184fb0a01a61bdce24c7fc6",
        "creationPush0Count": 32,
        "runtimePush0Count": 28,
        "rebuildAttempts": 2,
        "rebuildHashesMatched": true,
        "deployGas": 182147,
        "runtimeWriteGas": 47261,
        "output": "25617586215839710",
        "success": true
      },
      {
        "id": "legacy-runs-200",
        "compiler": "0.8.36+commit.8a079791.Emscripten.clang",
        "settings": {
          "optimizer": {
            "enabled": true,
            "runs": 200
          },
          "viaIR": false,
          "evmVersion": "prague",
          "metadata": {
            "bytecodeHash": "ipfs",
            "appendCBOR": true
          }
        },
        "creationBytes": 624,
        "runtimeBytes": 596,
        "functionalRuntimeBytes": 543,
        "metadataTrailerBytes": 53,
        "metadataCborBytes": 51,
        "creationSha256": "8e5c4d1718c90e98ed91e71f890c4b1e5c09f3716e182166670b8d98b6833ad1",
        "runtimeSha256": "a717cf1bb6a16ef7e03377e53bf53f965d2523cddd4598d02d50fb55171743c9",
        "functionalRuntimeSha256": "bacdddb31c204671463298326325946765721635e6ccc150ba5402726c37d93b",
        "metadataTrailerSha256": "ba3c1103c2b8fd4652f72b9ba6697486f9f38fe73e906b1efdc7178fe1c402f5",
        "creationPush0Count": 32,
        "runtimePush0Count": 28,
        "rebuildAttempts": 2,
        "rebuildHashesMatched": true,
        "deployGas": 182147,
        "runtimeWriteGas": 47261,
        "output": "25617586215839710",
        "success": true
      },
      {
        "id": "legacy-runs-10000",
        "compiler": "0.8.36+commit.8a079791.Emscripten.clang",
        "settings": {
          "optimizer": {
            "enabled": true,
            "runs": 10000
          },
          "viaIR": false,
          "evmVersion": "prague",
          "metadata": {
            "bytecodeHash": "ipfs",
            "appendCBOR": true
          }
        },
        "creationBytes": 724,
        "runtimeBytes": 696,
        "functionalRuntimeBytes": 643,
        "metadataTrailerBytes": 53,
        "metadataCborBytes": 51,
        "creationSha256": "7bdc510fe505e31f69f777cfcc39f1bf9138b224ea5a4cc1d507ec25127d27f6",
        "runtimeSha256": "59a4a78416f36af0480b17c326ad26402346ff78f278eb66077ed8d5c67a8fe1",
        "functionalRuntimeSha256": "379cda26734ff901704c74021f4323a8d9cf6c3a599dfee8f280c7bb18901b4c",
        "metadataTrailerSha256": "5e91ef9011bcdc48997f5d2506540f1713b8ecaddbff2440e8374d09c8e3e25f",
        "creationPush0Count": 32,
        "runtimePush0Count": 28,
        "rebuildAttempts": 2,
        "rebuildHashesMatched": true,
        "deployGas": 202439,
        "runtimeWriteGas": 47261,
        "output": "25617586215839710",
        "success": true
      },
      {
        "id": "via-ir-runs-200",
        "compiler": "0.8.36+commit.8a079791.Emscripten.clang",
        "settings": {
          "optimizer": {
            "enabled": true,
            "runs": 200
          },
          "viaIR": true,
          "evmVersion": "prague",
          "metadata": {
            "bytecodeHash": "ipfs",
            "appendCBOR": true
          }
        },
        "creationBytes": 443,
        "runtimeBytes": 417,
        "functionalRuntimeBytes": 364,
        "metadataTrailerBytes": 53,
        "metadataCborBytes": 51,
        "creationSha256": "6dddf73ec5cdf9e23424df8f39a8188007ed8698b91531fa58e5abfb409e07d8",
        "runtimeSha256": "09abfc61f47d87693aa912fed44b7517de2b4abe971fcc45283d617d54458df6",
        "functionalRuntimeSha256": "14d138f6ea50ea8dad8816f4ebde249a7c58d01e32dab5df229349fcb690e1fb",
        "metadataTrailerSha256": "6e56eb64388b94a79d87e0c6d18d52507a6e03ce390b3398e405178b1ca534be",
        "creationPush0Count": 15,
        "runtimePush0Count": 14,
        "rebuildAttempts": 2,
        "rebuildHashesMatched": true,
        "deployGas": 143417,
        "runtimeWriteGas": 47008,
        "output": "25617586215839710",
        "success": true
      },
      {
        "id": "legacy-paris-runs-200",
        "compiler": "0.8.36+commit.8a079791.Emscripten.clang",
        "settings": {
          "optimizer": {
            "enabled": true,
            "runs": 200
          },
          "viaIR": false,
          "evmVersion": "paris",
          "metadata": {
            "bytecodeHash": "ipfs",
            "appendCBOR": true
          }
        },
        "creationBytes": 648,
        "runtimeBytes": 617,
        "functionalRuntimeBytes": 564,
        "metadataTrailerBytes": 53,
        "metadataCborBytes": 51,
        "creationSha256": "f40f8ace7271d743919583e30828d709c1b96403226dfcb3f498419c591398a4",
        "runtimeSha256": "d8872da79050f270933e6937f18b9e725d195a8582519d45d0aa78ee30ea00d2",
        "functionalRuntimeSha256": "8d13f0a328a2f301d4c09f261466472c2ca19c6257d16a176b07bb3834c45dc1",
        "metadataTrailerSha256": "bed06fc2648e3a76f904e404ba2a0c305a9f5b8dd416a8be723555873f2ee85f",
        "creationPush0Count": 0,
        "runtimePush0Count": 0,
        "rebuildAttempts": 2,
        "rebuildHashesMatched": true,
        "deployGas": 186453,
        "runtimeWriteGas": 47268,
        "output": "25617586215839710",
        "success": true
      },
      {
        "id": "legacy-metadata-none",
        "compiler": "0.8.36+commit.8a079791.Emscripten.clang",
        "settings": {
          "optimizer": {
            "enabled": true,
            "runs": 200
          },
          "viaIR": false,
          "evmVersion": "prague",
          "metadata": {
            "bytecodeHash": "none",
            "appendCBOR": true
          }
        },
        "creationBytes": 583,
        "runtimeBytes": 555,
        "functionalRuntimeBytes": 543,
        "metadataTrailerBytes": 12,
        "metadataCborBytes": 10,
        "creationSha256": "69d883fcfd3d1fa2ec35ea31d0d47f2d5a3407b524e7691d1577e8e4ce162dae",
        "runtimeSha256": "8633cc870ee2eb9e289275825b11a25a89556e0de2c0148d8cff497b10592bef",
        "functionalRuntimeSha256": "bacdddb31c204671463298326325946765721635e6ccc150ba5402726c37d93b",
        "metadataTrailerSha256": "fd8edeb3e183d69d5c6a648f4b9c4a165da35587705ea720fd97c1d98809f137",
        "creationPush0Count": 32,
        "runtimePush0Count": 28,
        "rebuildAttempts": 2,
        "rebuildHashesMatched": true,
        "deployGas": 173283,
        "runtimeWriteGas": 47261,
        "output": "25617586215839710",
        "success": true
      },
      {
        "id": "compiler-0.8.35",
        "compiler": "0.8.35+commit.47b9dedd.Emscripten.clang",
        "settings": {
          "optimizer": {
            "enabled": true,
            "runs": 200
          },
          "viaIR": false,
          "evmVersion": "prague",
          "metadata": {
            "bytecodeHash": "ipfs",
            "appendCBOR": true
          }
        },
        "creationBytes": 624,
        "runtimeBytes": 596,
        "functionalRuntimeBytes": 543,
        "metadataTrailerBytes": 53,
        "metadataCborBytes": 51,
        "creationSha256": "c0dedfe02cb18f8c195a0bf3f08c30d186987ec3d22c257debff25c9a35c2376",
        "runtimeSha256": "4ac04a59fe1d76b2e62cb6ca7853cc86fe3500229d77c45123ed4a144eda7392",
        "functionalRuntimeSha256": "bacdddb31c204671463298326325946765721635e6ccc150ba5402726c37d93b",
        "metadataTrailerSha256": "cd4f44b746c440d914b48f0e5d09db5f53b5be547060f4e1c465fe59c81b9a74",
        "creationPush0Count": 32,
        "runtimePush0Count": 28,
        "rebuildAttempts": 2,
        "rebuildHashesMatched": true,
        "deployGas": 182147,
        "runtimeWriteGas": 47261,
        "output": "25617586215839710",
        "success": true
      }
    ]
  },
  "stackPressure": {
    "source": "compiler-cases/StackPressureFixture.sol",
    "sourceSha256": "93b78676c86ce5b1add6add48cc83f0d3e7d1067abbd0f5bda704378d73e0822",
    "legacy": {
      "settings": {
        "optimizer": {
          "enabled": true,
          "runs": 200
        },
        "viaIR": false,
        "evmVersion": "prague",
        "metadata": {
          "bytecodeHash": "ipfs",
          "appendCBOR": true
        }
      },
      "result": "compile_error",
      "errorClass": "Stack too deep"
    },
    "viaIR": {
      "settings": {
        "optimizer": {
          "enabled": true,
          "runs": 200
        },
        "viaIR": true,
        "evmVersion": "prague",
        "metadata": {
          "bytecodeHash": "ipfs",
          "appendCBOR": true
        }
      },
      "result": "success",
      "creationBytes": 275,
      "runtimeBytes": 250,
      "creationSha256": "ff4ece5d80ce4698839779a439c67f8605127bd5011d60b3d51e0936407b47ba",
      "runtimeSha256": "a58805c3182eba4c3f6ad9f47992ee5ecee5c78cf9a8c1bcc376f90c83c34da1"
    }
  },
  "evmCompatibility": {
    "parisTargetHasPush0": false,
    "pragueTargetHasPush0": true,
    "parisBuildOnParis": "success",
    "pragueBuildOnPrague": "success",
    "pragueBuildOnParis": "reverted",
    "pragueBuildRejectedStage": "deployment"
  },
  "differential": {
    "fromCompiler": "0.8.35+commit.47b9dedd.Emscripten.clang",
    "toCompiler": "0.8.36+commit.8a079791.Emscripten.clang",
    "rawRuntimeHashChanged": true,
    "functionalRuntimeHashChanged": false,
    "sameObservedOutput": true,
    "sameSuccessOutcome": true,
    "failureSelectors": {
      "belowMinimum": "0xbd49034f",
      "zeroValue": "0x7c946ed7",
      "sameAcrossMatrix": true
    }
  },
  "safety": {
    "productionDeployment": false,
    "publicRpc": false,
    "walletOrPrivateKey": false,
    "realAsset": false
  }
}
