extract_public_key allows setting address version and returns (none) on struct error for consistency