docs: async def send_tokens(payment_handle: int, tokens: int, address: str) -> str:
          """
          Sends tokens to an address
          payment_handle is always 0
          :param payment_handle: Integer
          :param tokens: Integer
          :param address: String
          Example:
          payment_handle = 0
          amount = 1000
          address = await Wallet.create_payment_address('00000000000000000000000001234567')
          await Wallet.send_tokens(payment_handle, amount, address)
          :return:
          """
          logger = logging.getLogger(__name__)
  
          if not hasattr(Wallet.send_tokens, "cb"):
              logger.debug("vcx_wallet_send_tokens: Creating callback")
              Wallet.send_tokens.cb = create_cb(CFUNCTYPE(None, c_uint32, c_uint32, c_char_p))
  
          c_payment_handle = c_uint32(payment_handle)
          c_tokens = c_char_p(str(tokens).encode('utf-8'))
          c_address = c_char_p(address.encode('utf-8'))
  
          result = await do_call('vcx_wallet_send_tokens',
                                 c_payment_handle,
                                 c_tokens,
                                 c_address,
                                 Wallet.send_tokens.cb)
  
          logger.debug("vcx_wallet_send_tokens completed")
          return result