def prepare_transfer(<EOL>self,<EOL>transfers,  <EOL>inputs=None,  <EOL>change_address=None,  <EOL>security_level=None,  <EOL>):<EOL>
return extended.PrepareTransferCommand(self.adapter)(<EOL>seed=self.seed,<EOL>transfers=transfers,<EOL>inputs=inputs,<EOL>changeAddress=change_address,<EOL>securityLevel=security_level,<EOL>)<EOL>
Prepares transactions to be broadcast to the Tangle, by
generating the correct bundle, as well as choosing and signing
the inputs (for value transfers).

:param transfers:
    Transaction objects to prepare.

:param inputs:
    List of addresses used to fund the transfer.
    Ignored for zero-value transfers.

    If not provided, addresses will be selected automatically by
    scanning the Tangle for unspent inputs.  Depending on how
    many transfers you've already sent with your seed, this
    process could take awhile.

:param change_address:
    If inputs are provided, any unspent amount will be sent to
    this address.

    If not specified, a change address will be generated
    automatically.

:param security_level:
    Number of iterations to use when generating new addresses
    (see :py:meth:`get_new_addresses`).

    This value must be between 1 and 3, inclusive.

    If not set, defaults to
    :py:attr:`AddressGenerator.DEFAULT_SECURITY_LEVEL`.

:return:
    Dict with the following structure::

        {
            'trytes': List[TransactionTrytes],
                Raw trytes for the transactions in the bundle,
                ready to be provided to :py:meth:`send_trytes`.
        }

References:

- https://github.com/iotaledger/wiki/blob/master/api-proposal.md#preparetransfers