anchor.diff: -{ stdenv, fetchurl, python2Packages }:
  +{ stdenv, fetchurl, python3, python3Packages }:
   
  -python2Packages.buildPythonApplication rec {
  +python3Packages.buildPythonApplication rec {
     name = "electrum-${version}";
  -  version = "2.9.3";
  +  version = "3.0.2";
   
     src = fetchurl {
       url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
  -    sha256 = "0d0fzb653g7b8ka3x90nl21md4g3n1fv11czdxpdq3s9yr6js6f2";
  +    sha256 = "0lsg513lxs8qqpr7c0ibb7pma69hxiy3zqybganh6vs9byy7bzsd";
     };
   
  -  propagatedBuildInputs = with python2Packages; [
  +  propagatedBuildInputs = with python3Packages; [
       dnspython
       ecdsa
  -    jsonrpclib
  +    jsonrpclib-pelix
       matplotlib
       pbkdf2
       protobuf
       pyaes
       pycrypto
  -    pyqt4
  +    pyqt5
       pysocks
       qrcode
       requests
  
positive.code: 
    preBuild = ''
      sed -i 's,usr_share = .*,usr_share = "'$out'/share",g' setup.py
      pyrcc4 icons.qrc -o gui/qt/icons_rc.py
      # Recording the creation timestamps introduces indeterminism to the build
      sed -i '/Created: .*/d' gui/qt/icons_rc.py
    '';
  
negative.code:   postInstall = ''
      # Despite setting usr_share above, these files are installed under
      # $out/nix ...
      mv $out/${python3.sitePackages}/nix/store"/"*/share $out
      rm -rf $out/${python3.sitePackages}/nix
  
      substituteInPlace $out/share/applications/electrum.desktop \
        --replace "Exec=electrum %u" "Exec=$out/bin/electrum %u"
    '';
  
    doCheck = false;
  
    doInstallCheck = true;
    installCheckPhase = ''
  