In order for Semaphore contracts to have the same address on all supported networks, it is necessary to deploy them deterministically, using the CREATE2 opcode.
A proxy Yul contract like Zoltu's implementation, or the updated Arachnid's version, can be used to deploy the Semaphore contracts by passing their bytecode + salt.
Description
In order for Semaphore contracts to have the same address on all supported networks, it is necessary to deploy them deterministically, using the CREATE2 opcode.
A proxy Yul contract like Zoltu's implementation, or the updated Arachnid's version, can be used to deploy the Semaphore contracts by passing their bytecode + salt.