@Override
  public Optional<Address> authorizer() {
    // recId needs to be between either 0 or 1, otherwise the signature is invalid
    // which means we can't recover the authorizer.
    if (signature.getRecId() > 1 || signature.getRecId() < 0) {
      return Optional.empty();
    }

    return authorizerSupplier.get();
  }
Create code delegation.

@param chainId can be either the current chain id or zero
@param address the address from which the code will be set into the EOA account
@param nonce the nonce
@param v the recovery id
@param r the r value of the signature
@param s the s value of the signature
@return CodeDelegation
ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/CodeDelegation.java