code: def get_proof_generator(self, tx_id, chain=Chain.bitcoin_mainnet):
          
          root = ensure_string(self.tree.get_merkle_root())
          node_count = len(self.tree.leaves)
          for index in range(0, node_count):
              proof = self.tree.get_proof(index)
              proof2 = []
  
              for p in proof:
                  dict2 = dict()
                  for key, value in p.items():
                      dict2[key] = ensure_string(value)
                  proof2.append(dict2)
              target_hash = ensure_string(self.tree.get_leaf(index))
              merkle_proof = {
                  "type": ['MerkleProof2017', 'Extension'],
                  "merkleRoot": root,
                  "targetHash": target_hash,
                  "proof": proof2,
                  "anchors": [{
                      "sourceId": to_source_id(tx_id, chain),
                      "type": chain.blockchain_type.external_display_value,
                      "chain": chain.external_display_value
                  }]}
              yield merkle_proof
docs: Returns a generator (1-time iterator) of proofs in insertion order.
  
          :param tx_id: blockchain transaction id
          :return: