Ripple Transaction из одного локального кошелька для обмена кошельком (пример: crex24) выдает код ошибки tecDST_TAG_NEEDED с использованием java - PullRequest
1 голос
/ 15 марта 2019

я установил бумажник пульсации на моем локальном сервере. Я создал один кошелек и активировал его с 20 XRP.

Теперь, когда я отправляю монету со своего активного аккаунта на аккаунт (crex24.com), он выдает tecDST_TAG_NEEDED код ошибки

Пульсация: http://127.0.0.1:5005

Код (используя метод отправки):

RestTemplate template = new RestTemplate();
Map<String,Object> mainMap = new HashMap<>();
mainMap.put("secret", "sxxxxxxxxxxx");
mainMap.put("Fee", "1000"); // in drops

Map<String,String> subMap = new HashMap<>();
subMap.put("Account", "raxxxxxxxxx"); // amount will be deducted from this account
subMap.put("Amount", "1000000"); // in drops
subMap.put("Destination", "rdxxxxxxxxx"); // receiver address
subMap.put("TransactionType", "Payment"); // since we are making a  payment request

mainMap.put("tx_json", subMap);

JSONObject json = new JSONObject();
json.put("method", "submit");
json.put("params", new JSONArray(mainMap)); 
String requestData = json.toString();
System.out.println(requestData);
String response = template.postForObject("http://127.0.0.1:5005", requestData,String.class);
System.out.println(response);

Ошибка

{
  "status": 200,
  "message": "Transaction achieved successfully.",
  "data": {
    "result": {
      "deprecated": "Signing support in the 'submit' command has been deprecated and will be removed in a future version of the server. Please migrate to a standalone signing tool.",
      "engine_result": "tecDST_TAG_NEEDED",
      "engine_result_code": 143,
      "engine_result_message": "A destination tag is required.",
      "status": "success",
      "tx_blob": "120000228000000024000000096140000000000F424068400000000000000A7321036CB83FF75DAxxxxxxxxxxxxxxxxxx",
      "tx_json": {
        "Account": "raxxxxxxxxx",
        "Amount": "1000000",
        "Destination": "rdxxxxxxxxx",
        "Fee": "10",
        "Flags": 214482148,
        "Sequence": 9,
        "SigningPubKey": "036Cxxxxxxxxxxxxxxx6",
        "TransactionType": "Payment",
        "TxnSignature": "txxxxxxxxx",
        "hash": "hxxxxxxxxxx"
      }
    }
  },
  "path": "/api/ripple_wallet/makeTransaction"
}

1 Ответ

2 голосов
/ 18 марта 2019

Ваша учетная запись на crex24.com требует destination tag. XRPL использует account model аналогично ETH. В отличие от BTC, который использует UTXO model.

Причина, по которой некоторые биржи требуют destination tag, заключается в том, что вы можете поделиться этим адресом с другим человеком на бирже. например:

  • Person1 Адрес депозита: Addr1
  • Person2 также Addr1
  • Кто-то вкладывает 100XRP в Addr1.

В приведенном выше случае обмен не сможет дифференцироваться, если это будет Person1 или Person2.
Таким образом, XRPL представил destination tag, который будет выглядеть примерно так:

  • Exchange устанавливает tfRequireDestTag флаг Addr1 на true, используя accountSet транзакция
  • Person1: Addr1:1234
  • Person2 Адрес депозита также Addr1:1235
  • Кто-то вкладывает 100XRP в Addr1. XRPL отказывается из-за установки tfRequireDestTag на true / Это ваш случай /
  • Кто-то отправляет 50XRP на Addr1:1234. <-- this one succeeds!
...