{
  "schemaVersion": 4,
  "chainId": 143,
  "address": "0xE478854474e2811053Cc417e21FF22488210Fd6B",
  "blockNumber": "111387790",
  "standard": "erc4626",
  "vaultKind": "erc4626",
  "skipReason": null,
  "traits": [],
  "upstream": {
    "repo": "https://github.com/a16z/erc4626-tests",
    "commit": "ac485460e014f22807c1ff687e0b4dc3af96ee40"
  },
  "harnessSha256": "0xf5d1eef11ff3a4f0375844e1e731c1e18d4856b12573297dc6320baddd8d0262",
  "sfPropertiesSha256": "0x1d721e8b04b8b2013a796ac97b53e07fffd0a32c6f21f8d23d1bef4924dfa233",
  "runs": 16,
  "delta": "0",
  "seed": "0x0e999b2f4fcf9b7c10ca34fa91d39638eededfca32eebf669d84a27f9a2d6b1b",
  "sender": "0x2031C481Cb8dB783ccD81a787Ae5d8103b60Ec4D",
  "toolchain": {
    "forgeVersion": "forge Version: 1.5.1-Homebrew",
    "forgeStd": {
      "repo": "https://github.com/foundry-rs/forge-std",
      "commit": "bf647bd6046f2f7da30d0c2bf435e5c76a780c1b"
    },
    "foundryTomlSha256": "0xee1cdf6abd473ff042b6385bd46833ed08053d608d0a5645ad159fc2cca1b9b3",
    "maxTestRejects": 4096
  },
  "identity": {
    "codeHash": "0xa1c249850fed77a482699b5414c432b9bf23b61fc4efe991488c936568a1f87d",
    "metadataHash": null,
    "maskedCodeHash": "0x8d799902b0635b2aa79f2f0b05f64fa8c43e6c19ab91658e72c3d9a5b3ce2662",
    "codeSize": 21808,
    "proxy": null,
    "implementation": null,
    "implementationKey": "0x8d799902b0635b2aa79f2f0b05f64fa8c43e6c19ab91658e72c3d9a5b3ce2662",
    "implementationKeyKind": {
      "of": "self",
      "hash": "maskedCodeHash"
    }
  },
  "results": [
    {
      "id": "asset",
      "test": "test_asset",
      "description": "asset() does not revert",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "totalAssets",
      "test": "test_totalAssets",
      "description": "totalAssets() does not revert",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "convertToShares",
      "test": "test_convertToShares",
      "description": "convertToShares gives the same result for any caller",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "convertToAssets",
      "test": "test_convertToAssets",
      "description": "convertToAssets gives the same result for any caller",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "maxDeposit",
      "test": "test_maxDeposit",
      "description": "maxDeposit does not revert",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "previewDeposit",
      "test": "test_previewDeposit",
      "description": "deposit mints at least the shares previewDeposit quoted",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "deposit",
      "test": "test_deposit",
      "description": "deposit moves assets from the caller, credits shares to the receiver and spends allowance",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "maxMint",
      "test": "test_maxMint",
      "description": "maxMint does not revert",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "previewMint",
      "test": "test_previewMint",
      "description": "mint pulls at most the assets previewMint quoted",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "mint",
      "test": "test_mint",
      "description": "mint moves assets from the caller, credits shares to the receiver and spends allowance",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "maxWithdraw",
      "test": "test_maxWithdraw",
      "description": "maxWithdraw does not revert",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "previewWithdraw",
      "test": "test_previewWithdraw",
      "description": "withdraw burns at most the shares previewWithdraw quoted",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "withdraw",
      "test": "test_withdraw",
      "description": "withdraw burns owner shares, pays the receiver and spends share allowance",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "withdraw-zero-allowance",
      "test": "test_withdraw_zero_allowance",
      "description": "withdraw on behalf of an owner without allowance reverts",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "maxRedeem",
      "test": "test_maxRedeem",
      "description": "maxRedeem does not revert",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "previewRedeem",
      "test": "test_previewRedeem",
      "description": "redeem pays at least the assets previewRedeem quoted",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "redeem",
      "test": "test_redeem",
      "description": "redeem burns owner shares, pays the receiver and spends share allowance",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "redeem-zero-allowance",
      "test": "test_redeem_zero_allowance",
      "description": "redeem on behalf of an owner without allowance reverts",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "RT-deposit-redeem",
      "test": "test_RT_deposit_redeem",
      "description": "redeem(deposit(a)) returns no more than a",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "RT-deposit-withdraw",
      "test": "test_RT_deposit_withdraw",
      "description": "withdraw(a) burns at least the shares deposit(a) minted",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "RT-redeem-deposit",
      "test": "test_RT_redeem_deposit",
      "description": "deposit(redeem(s)) mints no more than s",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "RT-redeem-mint",
      "test": "test_RT_redeem_mint",
      "description": "mint(s) costs at least the assets redeem(s) paid",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "RT-mint-withdraw",
      "test": "test_RT_mint_withdraw",
      "description": "withdraw(mint(s)) burns at least s shares",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "RT-mint-redeem",
      "test": "test_RT_mint_redeem",
      "description": "redeem(s) pays no more than mint(s) cost",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "RT-withdraw-mint",
      "test": "test_RT_withdraw_mint",
      "description": "mint(withdraw(a)) costs at least a",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "RT-withdraw-deposit",
      "test": "test_RT_withdraw_deposit",
      "description": "deposit(a) mints no more than the shares withdraw(a) burned",
      "status": "pass",
      "runs": 16
    },
    {
      "id": "sf-maxDeposit-honored",
      "test": "test_sf_maxDeposit_honored",
      "description": "deposit goes through up to min(maxDeposit, 1e6 tokens); when a smaller amount is refused the bound must go through, and refusals are counted (EIP-4626: maxDeposit MUST NOT be higher than what deposit accepts)",
      "status": "not_applicable",
      "runs": 0,
      "reason": "maxDeposit returned 0 for every test user; there is no max value to honor (EIP-4626 allows underestimating)"
    },
    {
      "id": "sf-maxMint-honored",
      "test": "test_sf_maxMint_honored",
      "description": "mint goes through up to min(maxMint, shares of 1e6 tokens); when a smaller amount is refused the bound must go through, and refusals are counted (EIP-4626: maxMint MUST NOT be higher than what mint accepts)",
      "status": "not_applicable",
      "runs": 0,
      "reason": "maxMint returned 0 for every test user; there is no max value to honor (EIP-4626 allows underestimating)"
    },
    {
      "id": "sf-maxWithdraw-honored",
      "test": "test_sf_maxWithdraw_honored",
      "description": "withdraw goes through up to maxWithdraw; when a smaller amount is refused maxWithdraw must go through, and refusals are counted (EIP-4626: maxWithdraw MUST NOT be higher than what withdraw accepts, and MUST be 0 when withdrawals are disabled)",
      "status": "not_applicable",
      "runs": 0,
      "reason": "maxWithdraw returned 0 for every test user; there is no max value to honor (EIP-4626 allows underestimating)"
    },
    {
      "id": "sf-maxRedeem-honored",
      "test": "test_sf_maxRedeem_honored",
      "description": "redeem goes through up to maxRedeem; when a smaller amount is refused maxRedeem must go through, and refusals are counted (EIP-4626: maxRedeem MUST NOT be higher than what redeem accepts, and MUST be 0 when redemptions are disabled)",
      "status": "not_applicable",
      "runs": 0,
      "reason": "maxRedeem returned 0 for every test user; there is no max value to honor (EIP-4626 allows underestimating)"
    }
  ],
  "summary": {
    "pass": 26,
    "fail": 0,
    "inconclusive": 0,
    "notApplicable": 4
  },
  "startedAt": "2026-10-07T17:49:57.286Z",
  "durationMs": 51818
}
