When you verify a smart contract's source code on a blockchain explorer or website, the page generates a unique code hash for the contract. This code hash is essentially a digital fingerprint of the contract's bytecode. When someone views the verified source code on the explorer, the explorer looks up the code hash and retrieves the corresponding source code.
However, if the contract's bytecode is updated using the set_code()
instruction, the code hash will change. This means that the verified source code will no longer be associated with the contract, and will disappear from the explorer.
To re-verify the source code, you would need to follow the verification process again, which typically involves submitting the source code and the new code hash to the explorer.
It's also worth noting that if you have multiple contracts with identical code hash, you only need to verify one of them to have all of them become verified. This is because the code hash is the same for all of the contracts, and the explorer only needs to associate the source code with the code hash once.