Как настроить платеж в Ripple без указания эмитентов валюты?

Я хочу отправить долговые расписки с одной из моих учетных записей на другую с помощью API. Обе учетные записи доверяют одному и тому же эмитенту долговых расписок, который является отдельным адресом. В соответствии с Transaction Format я бы установил эмитент Amount на принимающую учетную запись, а эмитент SendMax на отправляющую учетную запись. Однако, пытаясь это сделать, я получаю ошибку "сухой путь":

{
  "id": 6,
  "status": "success",
  "type": "response",
  "result": {
    "engine_result": "tecPATH_DRY",
    "engine_result_code": 128,
    "engine_result_message": "Path could not send partial amount.",
    "tx_blob": "1200002280000000240000000E5011000000323031342D30392D32335430313A34373A34303A39383834383635303061D4445EADB112E0000000000000000000000000005442430000000000D3BC678DA1AEC545F393F5B0AFD2B8654CE43DB368400000000000000A69D44469DD823458000000000000000000000000005442430000000000D6C315BE3EADA22F12AC21AC94A5FC38CA5AFADA73210220AFA84AEEE2DD794576E98411946D671F8E1F80E6C432B5ABAAAB2957651CD674473045022100FD0F2FECF958294BEA74876A4E5FE4192EA10EFC55C9B166F9F427861D5CBC42022067AA4B5CDA1BEB1D400937888C7819A412B238C79423A3DDB6F4FC8F45D45D618114D6C315BE3EADA22F12AC21AC94A5FC38CA5AFADA8314D3BC678DA1AEC545F393F5B0AFD2B8654CE43DB3",
    "tx_json": {
      "Account": "rL2ZJ8iTF9w5UGr8MzQSt8GpedNmutpEEQ",
      "Amount": {
        "currency": "TBC",
        "issuer": "rLJZHsAbNZu264dWnPCGgpqePAYfNZR1Zk",
        "value": "0.123"
      },
      "Destination": "rLJZHsAbNZu264dWnPCGgpqePAYfNZR1Zk",
      "Fee": "10",
      "Flags": 2147483648,
      "InvoiceID": "000000323031342D30392D32335430313A34373A34303A393838343836353030",
      "SendMax": {
        "currency": "TBC",
        "issuer": "rL2ZJ8iTF9w5UGr8MzQSt8GpedNmutpEEQ",
        "value": "0.12423"
      },
      "Sequence": 14,
      "SigningPubKey": "0220AFA84AEEE2DD794576E98411946D671F8E1F80E6C432B5ABAAAB2957651CD6",
      "TransactionType": "Payment",
      "TxnSignature": "3045022100FD0F2FECF958294BEA74876A4E5FE4192EA10EFC55C9B166F9F427861D5CBC42022067AA4B5CDA1BEB1D400937888C7819A412B238C79423A3DDB6F4FC8F45D45D61",
      "hash": "6CDB694DF36F4BD3AB928A9D761A9F60C285557B3C1136749DF7BC56A46ED641"
    }
  }
}

Несмотря на то, что rLJZHsAbNZu264dWnPCGgpqePAYfNZR1Zk и rL2ZJ8iTF9w5UGr8MzQSt8GpedNmutpEEQ доверяют одному и тому же эмитенту (rTJdjjQ5wWAMh8TL1ToXXD2mZzesa6DSX) и имеют достаточно долговых расписок для покрытия транзакции.

Как я могу решить эту проблему? Что я делаю не так?

Ответы (1)

Ripple не будет искать пути при обработке транзакций. Пути должны быть найдены в первую очередь с помощью поиска путей и указаны в транзакции. Вы получаете сухую ошибку пути, потому что вы не указываете никаких путей, поэтому единственный путь, который вы получаете, — это путь по умолчанию.

Простое решение — изменить отправителя суммы SendMax на шлюз. Это неявно вставит узел учетной записи шлюза перед каждым путем, включая путь по умолчанию. В качестве альтернативы укажите узел учетной записи шлюза в качестве явного пути или используйте поиск пути.