{
  "schemaVersion": 4,
  "chainId": 143,
  "address": "0x0ED3615ff949C8A34D15441970900E849A3409FC",
  "blockNumber": "111251984",
  "standard": "erc4626",
  "vaultKind": "erc4626",
  "skipReason": null,
  "traits": [],
  "upstream": {
    "repo": "https://github.com/a16z/erc4626-tests",
    "commit": "ac485460e014f22807c1ff687e0b4dc3af96ee40"
  },
  "harnessSha256": "0xf5d1eef11ff3a4f0375844e1e731c1e18d4856b12573297dc6320baddd8d0262",
  "sfPropertiesSha256": "0xd84a0879e6eef2bd70fb8d9afc565ec334f095fe3ec72e3b81f9fcca2aac3aca",
  "runs": 16,
  "delta": "0",
  "seed": "0xe499f189f70b40950c0dab4202490ce5c9eeb08196b02aa460cabab30e10daa8",
  "sender": "0xa25A38c366d95f04441dB34Ec76C585E3eA49976",
  "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": "0xeb6251a872adcfdd6b5036ad10262a33c865433a9e3ae71bf084174be445f3be",
    "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-07T06:26:28.102Z",
  "durationMs": 80093
}
