code: def verify_singlesig(address, hash_hex, scriptSig):
      
      try:
          sighex, pubkey_hex = virtualchain.btc_script_deserialize(scriptSig)
      except:
          log.warn("Wrong signature structure for {}".format(address))
          return False
  
      # verify pubkey_hex corresponds to address
      if virtualchain.address_reencode(keylib.public_key_to_address(pubkey_hex)) != virtualchain.address_reencode(address):
          log.warn(("Address {} does not match signature script {}".format(address, scriptSig.encode('hex'))))
          return False
  
      sig64 = base64.b64encode(binascii.unhexlify(sighex))
      return virtualchain.ecdsalib.verify_digest(hash_hex, pubkey_hex, sig64)
docs: Verify that a p2pkh address is signed by the given pay-to-pubkey-hash scriptsig