{
  "schemaVersion": 1,
  "article": {
    "wpId": 6041,
    "permalink": "/archives/6041",
    "sourceIssue": 183
  },
  "fixtureOnly": true,
  "checkedAt": "2026-08-31",
  "externalRpc": false,
  "mainnetFork": false,
  "realWallet": false,
  "privateKey": false,
  "publicTransaction": false,
  "realAsset": false,
  "environment": {
    "foundry": "1.8.0",
    "foundryCommit": "61ae26af36320d4fa1020f7db53785885e29eeb5",
    "foundryArchiveSha256": "0599b28a19af97c3ae91fab12ad868a1922db7770c4adff6b6d26235862153d0",
    "solidity": "0.8.26",
    "evmVersion": "cancun",
    "optimizer": true,
    "optimizerRuns": 200,
    "uniswapV4Core": {
      "version": "1.0.2",
      "commit": "59d3ecf53afa9264a16bba0e38f4c5d2231f80bc",
      "npmIntegrity": "sha512-X15Tm2wWd+USAzEExMbo+g9naA6QN6mPgWm0MzDwRNlOfaNlepfUpSyt9RSrUfEODspwbyWbcLg6t5nwc/e7lg==",
      "license": "BUSL-1.1"
    },
    "uniswapV4Periphery": {
      "version": "1.0.3",
      "commit": "60cd93803ac2b7fa65fd6cd351fd5fd4cc8c9db5",
      "npmIntegrity": "sha512-JxLL0Djv9XcMvI2PatEnWrCrxuEaYNVhHxstndBOP+aJfh1XLg5ec8SDZ0xyoVfg2ElJTvuKpBgnu90bNValsg==",
      "license": "MIT"
    }
  },
  "configuration": {
    "seed": "0x6041604160416041604160416041604160416041604160416041604160416041",
    "fuzzRuns": 256,
    "singletonImplementation": "@uniswap/v4-core/src/PoolManager.sol",
    "hookBase": "@uniswap/v4-periphery/src/utils/BaseHook.sol"
  },
  "tests": {
    "status": "pass",
    "unitTests": [
      "testSingletonHostsDistinctPoolKeys",
      "testPermissionBitsAddressImplementedCallbacks",
      "testCallbackOrderAndHookCounts",
      "testErc20PathSyncsSettlesAndTakes",
      "testPeripheryNativePathSyncsLikePinnedDeltaResolver",
      "testNativeCorePathSettlesWithoutSync",
      "testClearExactPositiveDeltaDiscardsDust",
      "testDynamicFeeUpdatesDuringBeforeSwap",
      "testValidPermissionBitsDoNotMakeRevertingHookSafe",
      "testUnsettledDeltaRevertsAtUnlockBoundary",
      "testUnauthorizedUnlockCallbackReverts",
      "testWrongPoolKeyRevertsAsUninitialized"
    ],
    "unitTestCount": 12
  },
  "singleton": {
    "poolManagerCount": 1,
    "distinctPoolKeyCount": 4,
    "poolIdentity": "keccak256(abi.encode(PoolKey))"
  },
  "hooks": {
    "addressPermissionMask": "0x3fff",
    "beforeSwapFlag": "0x0080",
    "afterSwapFlag": "0x0040",
    "counterHookAddress": "0x00000000000000000000000000000000000100c0",
    "dynamicFeeHookAddress": "0x0000000000000000000000000000000000020080",
    "revertingHookAddress": "0x0000000000000000000000000000000000030080",
    "counterCallbackOrder": [
      "beforeSwap",
      "afterSwap"
    ],
    "counterCallbackCounts": {
      "beforeSwap": 1,
      "afterSwap": 1
    },
    "deploymentMethod": "test-only vm.etch to deterministic permission-bit addresses",
    "safetyFinding": "valid permission bits select callbacks but do not prove hook safety"
  },
  "settlement": {
    "erc20": {
      "amountSpecified": -10000,
      "openDelta0": -10000,
      "openDelta1": 9969,
      "sequence": [
        "sync",
        "transferFrom",
        "settle",
        "take"
      ],
      "finalDelta0": 0,
      "finalDelta1": 0
    },
    "nativePeriphery103": {
      "requestedExactInputWei": "10000000000000000",
      "openDelta0Wei": "-6035841794200769",
      "openDelta1": "5981737760509662",
      "syncCalls": 1,
      "settleCalls": 1,
      "takeCalls": 1
    },
    "nativeCoreWithoutSync": {
      "requestedExactInputWei": "10000000000000000",
      "openDelta0Wei": "-6035841794200769",
      "openDelta1": "5981737760509662",
      "syncCalls": 0,
      "settleCalls": 1,
      "takeCalls": 1,
      "scope": "separate IPoolManager core behavior example, not v4-periphery DeltaResolver behavior"
    },
    "exactClear": {
      "positiveDelta": 9969,
      "clearAmount": 9969,
      "recipientOutputIncrease": 0,
      "warning": "clear intentionally discards the exact positive delta and cannot recover it"
    }
  },
  "dynamicFee": {
    "poolKeyFeeFlag": "0x800000",
    "initialStoredFee": 0,
    "beforeSwapStoredFee": 4000,
    "amountSpecified": -10000,
    "amountOut": 9959
  },
  "negativeBoundaries": {
    "unsettledDelta": "IPoolManager.CurrencyNotSettled",
    "unauthorizedCallback": "SettlementRouter.UnauthorizedCallback",
    "wrongPoolKey": "IPoolManager.PoolNotInitialized",
    "revertingHook": "CustomRevert.WrappedError"
  },
  "trace": {
    "verbosity": "-vvvv",
    "test": "testErc20PathSyncsSettlesAndTakes",
    "requiredOrderedCalls": [
      "PoolManager::unlock(",
      "SettlementRouter::unlockCallback(",
      "PoolManager::swap(",
      "PoolManager::sync(",
      "MockERC20::transferFrom(",
      "PoolManager::settle()",
      "PoolManager::take("
    ]
  },
  "limits": [
    "This is an educational local fixture, not production periphery code, a deployment recipe, or an audit.",
    "vm.etch is used only to make hook permission addresses deterministic in tests.",
    "The reverting hook and clear path are intentionally hazardous examples.",
    "Hook address permission bits identify callbacks; they do not establish code safety.",
    "The native no-sync case demonstrates the core interface only; pinned periphery 1.0.3 syncs native first.",
    "No public RPC, mainnet fork, wallet, private key, signature, transaction broadcast, or real asset is used."
  ]
}
