anchor.diff:      protobuf
       requests
       websockets
  -  ] ++ lib.optional (pythonOlder "3.8") [ typing-extensions ];
  +  ] ++ lib.optional (pythonOlder "3.8") [
  +    typing-extensions
  +  ] ++ eth-hash.optional-dependencies.pycryptodome;
  +
  +  pythonRelaxDeps = true;
   
     # TODO: package eth-tester
     #checkInputs = [
  
positive.code: # , py-geth
  , pytestCheckHook
  , pythonOlder
  }:
  
  buildPythonPackage rec {
    pname = "web3";
    version = "5.30.0";
    disabled = pythonOlder "3.6";
  
    src = fetchFromGitHub {
      owner = "ethereum";
      repo = "web3.py";
      rev = "v${version}";
      sha256 = "sha256-HajumvOG18r7TslkmCfI0iiLsEddevGrRZQFWICGeYE=";
    };
  
    postPatch = ''
      substituteInPlace setup.py \
        --replace "eth-account>=0.5.7,<0.6.0" "eth-account>=0.5.7,<0.7" \
        --replace "eth-utils>=1.9.5,<2.0.0" "eth-utils>=1.9.5,<3" \
        --replace "eth-rlp<0.3" "eth-rlp<0.4" \
        --replace "websockets>=9.1,<10" "websockets>=9.1,<11" \
        --replace "eth-abi>=2.0.0b6,<3.0.0" "eth-abi>=2.0.0b6,<4" \
        --replace "eth-typing>=2.0.0,<3.0.0" "eth-typing>=2.0.0,<4"
    '';
  
    propagatedBuildInputs = [
      aiohttp
      eth-abi
      eth-account
      eth-hash
      eth-hash.optional-dependencies.pycryptodome
      eth-rlp
      eth-typing
      eth-utils
  
negative.code: 
    doCheck = false;
  
    pythonImportsCheck = [
      "web3"
    ];
  
    meta = with lib; {
      description = "Web3 library for interactions";
  