code: def append_manage_offer_op(self,
                                 selling_code,
                                 selling_issuer,
                                 buying_code,
                                 buying_issuer,
                                 amount,
                                 price,
                                 offer_id=0,
                                 source=None):
          
          selling = Asset(selling_code, selling_issuer)
          buying = Asset(buying_code, buying_issuer)
          op = operation.ManageOffer(selling, buying, amount, price, offer_id,
                                     source)
          return self.append_op(op)
docs: Append a :class:`ManageOffer <stellar_base.operation.ManageOffer>`
          operation to the list of operations.
  
          :param str selling_code: The asset code for the asset the offer creator
              is selling.
          :param selling_issuer: The issuing address for the asset the offer
              creator is selling.
          :type selling_issuer: str, None
          :param str buying_code: The asset code for the asset the offer creator
              is buying.
          :param buying_issuer: The issuing address for the asset the offer
              creator is selling.
          :type buying_issuer: str, None
          :param str amount: Amount of the asset being sold. Set to 0 if you want
              to delete an existing offer.
          :param price: Price of 1 unit of selling in terms of buying. You can pass
              in a number as a string or a dict like `{n: numerator, d: denominator}`
          :type price: str, dict
          :param int offer_id: The ID of the offer. 0 for new offer. Set to
              existing offer ID to update or delete.
          :param str source: The source address that is managing an offer on
              Stellar's distributed exchange.
          :return: This builder instance.