Lemos uma configuração velha e chamámos-lhe biblioteca partida. Não era
Esta entrada esteve errada durante um dia, e a correcção vale mais do que a afirmação valia.
O CCC é a biblioteca com que a maioria das aplicações Nervos constrói transacções. Para o JoyID em mainnet distribui cinco cell deps fixos, e fomos verificá-los contra a chain: os cinco outpoints estão gastos, na 1.12.5 e na 1.20.1. Essa parte é verdade e continua a ser. Concluímos que uma transacção de mainnet que precisasse daquele lock seria rejeitada, e reportámos.
O maintainer respondeu que o getCellDeps resolve cada dep pelo type id antes de o usar, portanto o outpoint velho nunca chega a uma transacção. Testámos o caminho que uma aplicação percorre de facto: o prepareTransaction do signer do JoyID chama o addCellDepsOfKnownScripts, que resolve, e a transacção construída leva as células vivas. Ele tinha razão. Não está nada partido, e a correcção que tínhamos escrito para nós era redundante.
A lição é aquela para que esta página existe. Verificámos um valor e não um caminho. Um número velho num ficheiro de configuração só é um bug se alguma coisa o usar tal como está escrito, e confirmar se alguma coisa o usa era mais um passo do que demos. O issue fica aberto como pedido de documentação, que é o que devia ter sido desde o início.
Reportado, depois corrigido: ckb-devrel/ccc#531