Cross Currency in Ripple senden [geschlossen]

Ich bin seit einiger Zeit mit diesem Problem konfrontiert, wenn ich Ripple JSON RPC verwende. Ich arbeite derzeit an einem PoC für grenzüberschreitende Transaktionen. Als Teil meiner Anwendungsfälle muss ich Transaktionen in NGN senden und in USD/EUR empfangen werden.

Ich habe Ihre Antwort von David Schwartz hier https://forum.ripple.com/viewtopic.php?f=2&t=15980 und hier https://forum.ripple.com/viewtopic.php?f=2&t=8079 gelesen, aber immer noch Probleme mit der Transaktion haben

Hier ist meine Bitte

{ "method": "submit", "params": [ { "offline": false, "secret": "sssssssssssssssssssssss", "tx_json": { "SendMax" : { "currency" : "USD", "value" : "200", "issuer" : "rU3BENzHa5SeB2HnwzovG5wdk7v8ChxXrc" }, "Account": "rU3BENzHa5SeB2HnwzovG5wdk7v8ChxXrc", "Amount":{ "value": "100", "issuer": "rK6qNr9HV62gJPRvKGNen1qHi2LYyHSDvj", "currency": "NGN" }, "Destination": "rK6qNr9HV62gJPRvKGNen1qHi2LYyHSDvj", "TransactionType": "Payment" }, "fee_mult_max": 10000 } ] }

und ich bekam dies als meine Antwort

{ "result": { "engine_result": "tecPATH_PARTIAL", "engine_result_code": 101, "engine_result_message": "Path could not send full amount.", "status": "success", "tx_blob": "1200002280000000240000005661D5038D7EA4C680000000000000000000000000004E474E0000000000CD2B28791E0BEB754A75AF8DB99BDEF21DD8D4A968400000000000000A69D5071AFD498D000000000000000000000000000055534400000000007A04D90FD6B8D1400B5CD796391444090AF06C1F7321031810282977B92281325F0AC5DAF4AB7EDB3FBBE5404A38D657E327B1A46B7897744730450221008269F1C23E2C719A73F7F41D484C0577C1EBF496D8BD6009AA975A852C627E7202207FBD5CBA3EF5F5BE7696FAF5C45F2E22BDCEA7FD48BA99D75897BF58C474BD0D81147A04D90FD6B8D1400B5CD796391444090AF06C1F8314CD2B28791E0BEB754A75AF8DB99BDEF21DD8D4A9", "tx_json": { "Account": "rU3BENzHa5SeB2HnwzovG5wdk7v8ChxXrc", "Amount": { "currency": "NGN", "issuer": "rK6qNr9HV62gJPRvKGNen1qHi2LYyHSDvj", "value": "100" }, "Destination": "rK6qNr9HV62gJPRvKGNen1qHi2LYyHSDvj", "Fee": "10", "Flags": 2147483648, "SendMax": { "currency": "USD", "issuer": "rU3BENzHa5SeB2HnwzovG5wdk7v8ChxXrc", "value": "200" }, "Sequence": 86, "SigningPubKey": "031810282977B92281325F0AC5DAF4AB7EDB3FBBE5404A38D657E327B1A46B7897", "TransactionType": "Payment", "TxnSignature": "30450221008269F1C23E2C719A73F7F41D484C0577C1EBF496D8BD6009AA975A852C627E7202207FBD5CBA3EF5F5BE7696FAF5C45F2E22BDCEA7FD48BA99D75897BF58C474BD0D", "hash": "A658DE84ABFED32E0E52FBF02E60FBC81E32C5E6186427C33AEBD938188FE4BB" } } }

Ich verstehe, dass tecPATH_PARTIAL bedeutet, dass die Transaktion fehlgeschlagen ist, weil die bereitgestellten Pfade nicht genügend Liquidität hatten, um den vollen Betrag zu senden.

Aber ich habe den Pfad nicht angegeben, weil ich verstehe, dass es am besten ist, wenn Ripple den Pfad auswählt.

Ich freue mich über jede Hilfe in die richtige Richtung

https://bitcoin.stackexchange.com/users/85/david-schwartz

Antworten (1)

So konnte ich dieses Problem nach vielen Tagen lösen. Ich konnte eine Transaktion von einem Kunden mit (NGN) an einen anderen Kunden senden, der sie in (USD) erhielt.

Für andere, die in Zukunft wahrscheinlich mit ähnlichen Problemen konfrontiert werden, sind dies die Schritte, die ich unternommen habe, um dieses Problem zu lösen.

Schritt 1

Ich habe Angebote für alle Währungen erstellt. siehe Beispielanforderung und -antwort unten

{ "method": "submit", "params": [ { "offline": false, "secret": "snYothV5CFDMpMYStmL5VwMHzxHFr", "fee_mult_max": 1000, "tx_json": { "TakerGets": { "currency": "EUR", "value": "0.94", "issuer": "rJ5mA3kRwJWahdb3GqH3vmrbRd7eVufsVk" }, "TakerPays": { "currency": "USD", "value": "1", "issuer": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ" }, "Account": "rJ5mA3kRwJWahdb3GqH3vmrbRd7eVufsVk", "TransactionType": "OfferCreate", "Fee": "12", "Flags": "65536" } } ] }

und Musterantwort

{ "result": { "engine_result": "tesSUCCESS", "engine_result_code": 0, "engine_result_message": "The transaction was applied. Only final in a validated ledger.", "status": "success", "tx_blob": "1200072200010000240000001764D4838D7EA4C68000000000000000000000000000555344000000000045249D498FF76EF67DACD0958930DB02EE4A9D4465D46165400CE380000000000000000000000000004555520000000000C260B3831882A44608EE81C2F3726AA72D11CA9568400000000000000C732102272E391673B735C9D96435DAFF89F9EA7B4EC285C39643A754848EDE19A6542674473045022100CD7511B302ED7D0C299C0F2C1014EA5AA62F7584B361B940C0E8A98FBA04EDE10220047590E7A678818000B5B221EBBC3D21AB1FCE5C003F8F02AAC41F96D054F90A8114C260B3831882A44608EE81C2F3726AA72D11CA95", "tx_json": { "Account": "rJ5mA3kRwJWahdb3GqH3vmrbRd7eVufsVk", "Fee": "12", "Flags": 65536, "Sequence": 23, "SigningPubKey": "02272E391673B735C9D96435DAFF89F9EA7B4EC285C39643A754848EDE19A65426", "TakerGets": { "currency": "EUR", "issuer": "rJ5mA3kRwJWahdb3GqH3vmrbRd7eVufsVk", "value": "0.94" }, "TakerPays": { "currency": "USD", "issuer": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ", "value": "1" }, "TransactionType": "OfferCreate", "TxnSignature": "3045022100CD7511B302ED7D0C299C0F2C1014EA5AA62F7584B361B940C0E8A98FBA04EDE10220047590E7A678818000B5B221EBBC3D21AB1FCE5C003F8F02AAC41F96D054F90A", "hash": "C35F98185CEBD03EEBCBDB6BB4364288DD8A0EDCF6FE137E9E3950524353AC8B" } } }

Schritt 2 Ich habe einen Pfad gefunden, um den Pfad zum Senden der Transaktion zu erhalten, basierend auf den zuvor in Schritt 1 erstellten Angeboten

{ "method": "ripple_path_find", "params": [ { "source_account": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ", "source_currencies": [ { "currency": "XRP" }, { "currency": "USD" } ], "destination_amount": { "currency": "NGN", "value": "305", "issuer": "rE3FSvB4Q59WZUXcDyB8tgAFBTZMwCJ1FD" }, "destination_account": "rwRRz7yt7GXe2NjZjB9ruLs7r71fi1WNpQ", "SendMax": { "currency": "USD", "value": "1", "issuer": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ" } } ] }

Beispielantwort

{ "result": { "alternatives": [ { "paths_canonical": [], "paths_computed": [ [ { "account": "rntHFZfVgoCeBNYDxSejkPewViFow1Sz6r", "type": 1, "type_hex": "0000000000000001" }, { "account": "rJHPyhod8HuZhps6Gerf7t3yLfinpVLXNT", "type": 1, "type_hex": "0000000000000001" }, { "currency": "NGN", "issuer": "rE3FSvB4Q59WZUXcDyB8tgAFBTZMwCJ1FD", "type": 48, "type_hex": "0000000000000030" } ], [ { "currency": "EUR", "issuer": "rJ5mA3kRwJWahdb3GqH3vmrbRd7eVufsVk", "type": 48, "type_hex": "0000000000000030" }, { "currency": "NGN", "issuer": "rE3FSvB4Q59WZUXcDyB8tgAFBTZMwCJ1FD", "type": 48, "type_hex": "0000000000000030" } ] ], "source_amount": { "currency": "USD", "issuer": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ", "value": "1" } } ], "destination_account": "rwRRz7yt7GXe2NjZjB9ruLs7r71fi1WNpQ", "destination_amount": { "currency": "NGN", "issuer": "rE3FSvB4Q59WZUXcDyB8tgAFBTZMwCJ1FD", "value": "305" }, "destination_currencies": [ "NGN", "XRP" ], "full_reply": true, "ledger_current_index": 3, "source_account": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ", "status": "success", "validated": false } }

Schritt 3 Ich habe einen der Pfade verwendet, die in der Antwort von oben zurückgegeben wurden, um eine Zahlungsanforderung zu senden.

Musteranfrage

{ "method": "submit", "params": [ { "offline": false, "secret": "sn1GPS42vNZXg6GYrsSXxYv2VrbkG", "fee_mult_max": 100000, "tx_json": { "Amount": { "currency": "NGN", "value": "305", "issuer": "rE3FSvB4Q59WZUXcDyB8tgAFBTZMwCJ1FD" }, "Account": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ", "Destination": "rwRRz7yt7GXe2NjZjB9ruLs7r71fi1WNpQ", "TransactionType": "Payment", "Fee": "10", "Flags": "0", "Paths": [ [ { "type_hex": "0000000000000030", "issuer": "rJ5mA3kRwJWahdb3GqH3vmrbRd7eVufsVk", "type": "48", "currency": "EUR" }, { "type_hex": "0000000000000030", "issuer": "rE3FSvB4Q59WZUXcDyB8tgAFBTZMwCJ1FD", "type": "48", "currency": "NGN" } ] ], "SendMax": { "currency": "USD", "value": "1", "issuer": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ" } } } ] }

Beispielantwort

{ "result": { "engine_result": "tesSUCCESS", "engine_result_code": 0, "engine_result_message": "The transaction was applied. Only final in a validated ledger.", "status": "success", "tx_blob": "1200002200000000240000000461D50AD5F57690A0000000000000000000000000004E474E00000000009B0C47828166D6258E8E7F0AA3B464FEA9C17E6668400000000000000A69D4838D7EA4C68000000000000000000000000000555344000000000045249D498FF76EF67DACD0958930DB02EE4A9D4473210336DF52033C6AE8F955A8AE89CE32793C0DB54A3DA2477A0F769EA9A4320D754D74463044022019DBE3D2C7ADF58AD35F1924889B8612EC46E8421492BDC591D50EEABCBC0BA9022046F9D34D8DAF24698B3B5A973AB575E5901A1C14EB80E8ABDC25B0D8010F0983811445249D498FF76EF67DACD0958930DB02EE4A9D4483146757FA04E0212B971F7F76E3E4A85A1B280EAE770112300000000000000000000000004555520000000000C260B3831882A44608EE81C2F3726AA72D11CA95300000000000000000000000004E474E00000000009B0C47828166D6258E8E7F0AA3B464FEA9C17E6600", "tx_json": { "Account": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ", "Amount": { "currency": "NGN", "issuer": "rE3FSvB4Q59WZUXcDyB8tgAFBTZMwCJ1FD", "value": "305" }, "Destination": "rwRRz7yt7GXe2NjZjB9ruLs7r71fi1WNpQ", "Fee": "10", "Flags": 0, "Paths": [ [ { "currency": "EUR", "issuer": "rJ5mA3kRwJWahdb3GqH3vmrbRd7eVufsVk", "type": 48, "type_hex": "0000000000000030" }, { "currency": "NGN", "issuer": "rE3FSvB4Q59WZUXcDyB8tgAFBTZMwCJ1FD", "type": 48, "type_hex": "0000000000000030" } ] ], "SendMax": { "currency": "USD", "issuer": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ", "value": "1" }, "Sequence": 4, "SigningPubKey": "0336DF52033C6AE8F955A8AE89CE32793C0DB54A3DA2477A0F769EA9A4320D754D", "TransactionType": "Payment", "TxnSignature": "3044022019DBE3D2C7ADF58AD35F1924889B8612EC46E8421492BDC591D50EEABCBC0BA9022046F9D34D8DAF24698B3B5A973AB575E5901A1C14EB80E8ABDC25B0D8010F0983", "hash": "58906C7DEFCF60ED6AC55A646BE3BF50E32F7B633AC6CD62E1AA6799888AA5EA" } } }