We read a stale config and called it a broken library. It was not
This entry said something wrong for a day, and the correction is worth more than the claim was.
CCC is the library most Nervos applications build transactions with. For JoyID on mainnet it ships five fixed cell deps, and we checked them against the chain: all five outpoints are spent, in 1.12.5 and in 1.20.1. That part is true and still is. We concluded a mainnet transaction needing that lock would be rejected, and reported it.
The maintainer's reply was that getCellDeps resolves each dep by its type id before use, so the stale outpoint never reaches a transaction. We tested the path an application actually takes: the JoyID signer's prepareTransaction calls addCellDepsOfKnownScripts, which resolves, and the built transaction carries the live cells. He was right. Nothing is broken, and the fix we had written for ourselves was redundant.
The lesson is the one this page exists for. We verified a value and not a path. A number that is stale in a config file is only a bug if something uses it as written, and checking whether anything does is one more step than we took. The reported issue stays open as a documentation request, which is what it should have been.
Reported, then corrected: ckb-devrel/ccc#531