Skip to content

Commit 35a346a

Browse files
committed
[FIX] update transaction binary parsing to account for XRP delivered amounts
1 parent 1217a95 commit 35a346a

File tree

3 files changed

+378
-1
lines changed

3 files changed

+378
-1
lines changed

src/js/ripple/remote.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1573,7 +1573,7 @@ Remote.parseBinaryTransaction = function(transaction) {
15731573
tx_result.meta = meta;
15741574
tx_result.validated = transaction.validated;
15751575

1576-
if (typeof meta.DeliveredAmount === 'object') {
1576+
if (typeof meta.DeliveredAmount === 'string' || typeof meta.DeliveredAmount === 'object') {
15771577
tx_result.meta.delivered_amount = meta.DeliveredAmount;
15781578
} else if (typeof tx_obj.Amount === 'string' || typeof tx_obj.Amount === 'object') {
15791579
tx_result.meta.delivered_amount = tx_obj.Amount;

test/fixtures/binary-transaction.json

+374
Original file line numberDiff line numberDiff line change
@@ -850,5 +850,379 @@
850850
},
851851
"validated": true
852852
}
853+
},
854+
"PartialPaymentWithXRPDeliveredAmount": {
855+
"binary": {
856+
"date": 475869060,
857+
"hash": "A3F258AFABC01863D03AD3B8CCBC5BB63D769598C6017CA49E5F3EA3FF3E2F87",
858+
"inLedger": 11406182,
859+
"ledger_index": 11406182,
860+
"meta": "201C00000011601240000000004B5BB8F8E51100612500AE0B3A558F1A7B5A1BF271004DF3FA5D7892E849EDBD1A2A3D1A210714563FE1643792355625FF5CC1037AE7E2C491A2E4C6206CBE31D0F1609B6426E6E8C3626BAC8C3439E62400000022624000000002625A00E1E7220000000024000000232D00000004624000000002622B208114625E2F1F09A0D769E05C04FAA64F0D2013306C6AE1E1E51100612500AE0B03551A8B4612C1872F11BCCF217C7F4318F5FAA6064232892CA693D438E5D37912895653539B9154C83B7D657103C27ABCA0EF1AD3674F6D0B341F20710FC50EC4DC03E66240000042E14C571EE1E7220000000024000001852D000000146240000042E197B2D68114E81DCB25DAA1DDEFF45145D334C56F12EA63C337E1E1E51100722500A10BA3555132C8906D4A330B263044E634E238E71B60CC21164D4AA7DF3E5AFC18DB568C56620379E07473AAE2E6CCCB196AE9DD13C5D036C4B47211BB3DAA55D019CB2226E662D4071AFD498D000000000000000000000000000055534400000000000000000000000000000000000000000000000001E1E722001100003700000000000000003800000000000001636280000000000000000000000000000000000000005553440000000000000000000000000000000000000000000000000166D6C38D7EA4C680000000000000000000000000005553440000000000625E2F1F09A0D769E05C04FAA64F0D2013306C6A6780000000000000000000000000000000000000005553440000000000DD39C650A96EDA48334E70CC4A85B8B2E8502CD3E1E1E511006F2500AE0B655571C743F5A68673332E9622202D09AF36052064CD2FF1813AF76B1F0F64E260BC5662DD985C8B3F97B6084C477116AD6C1087929BC17314260DCA09CB8D8A78AF1DE664D5110B75016A643000000000000000000000000055534400000000000A20B3C85F482532A9578DBB3950B85CA06594D16540000007DF237346E1E722000000002400BEDB2033000000000000000034000000000000006E5010DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4D050AA47190CA2B64D5110B00D294314900000000000000000000000055534400000000000A20B3C85F482532A9578DBB3950B85CA06594D16540000007DEEDCB648114AFFDCC86D33C153DA185156EB32608ACCF0BC713E1E1E51100722500AE0B0855EF4DD849FB3603D0DB93361527C0DC9A59D8DFB20162FD6C430FCF646DA39D96566F12D55A76FAF4D4F504D19AA0E58E8A419371F510F425516AE44DFFDAF28E7EE662800000000000000000000000000000000000000055534400000000000000000000000000000000000000000000000001E1E722002200003700000000000001AE380000000000000000629411BA658F2485E20000000000000000000000005553440000000000000000000000000000000000000000000000000166800000000000000000000000000000000000000055534400000000000A20B3C85F482532A9578DBB3950B85CA06594D16780000000000000000000000000000000000000005553440000000000AFFDCC86D33C153DA185156EB32608ACCF0BC713E1E1E51100722500AB6EB255F1E35F73FC81BE1599FBEE184F39AC4168E4C181C7ED000137E9E3C62E18D8C656785D84438CD44D7BD8234721BC77022E2BE590E38F9AB73C6E3FBC190524EF26E6629411C37937E0800100000000000000000000000055534400000000000000000000000000000000000000000000000001E1E7220002000037000000000000027D3800000000000000006280000000000000000000000000000000000000005553440000000000000000000000000000000000000000000000000166800000000000000000000000000000000000000055534400000000000A20B3C85F482532A9578DBB3950B85CA06594D167D503E871B540C0000000000000000000000000005553440000000000625E2F1F09A0D769E05C04FAA64F0D2013306C6AE1E1E51100612500AE0B6555B134486690C875512F29811499C7FA8E0A5CA693917713F744AC962F0687F3C5568F661189A818D586BD88E0A86F51114360750707FB7B0105D9E6751AFE96DAFAE6624000009F91316F25E1E722000000002400002D0E2D0000000E624000009F911BBB4F81142C3CEDD821524D3562691687D020C7CB340BDE72E1E1E51100612500AE0B6655A2727DF8A49A585D77509451DA8659E17BB6AEF9AE6BE2C31370DD19969EB96356B79D156918390AC41C4DDE5F181417D55B01D0D183ACBB1B892FF163C5BC8344E66240000029D85B69C5E1E722000000002400BEDB3C2D000000326240000029D825C1E38114AFFDCC86D33C153DA185156EB32608ACCF0BC713E1E1E51100722500AE0B605501FC3F8A22CE0E2ED84BE5D4F5E2B5BF1F1EE133D3D819E7E97DE066613FE11F56C9DF59CE5658C9E8FB7554790BD6F7F363A93269C253EBB83ADF876AE5F295AAE662D550A91D81AAA00600000000000000000000000055534400000000000000000000000000000000000000000000000001E1E722000100003700000000000000003800000000000001B362D550A92229C268060000000000000000000000005553440000000000000000000000000000000000000000000000000166D6C38D7EA4C6800000000000000000000000000055534400000000002C3CEDD821524D3562691687D020C7CB340BDE726780000000000000000000000000000000000000005553440000000000DD39C650A96EDA48334E70CC4A85B8B2E8502CD3E1E1E511006F2500AE0B6555B134486690C875512F29811499C7FA8E0A5CA693917713F744AC962F0687F3C556E9269E79493A95E173FD4821C32678951C402359EF149C77687EE558184FD2FFE664D4DFBB9B4F2240000000000000000000000000005553440000000000DD39C650A96EDA48334E70CC4A85B8B2E8502CD365400000017A9B43DEE1E722000000002400002D0D3300000000000000003400000000000000005010CF8D13399C6ED20BA82740CFA78E928DC8D498255249BA634D04FEE9AAC8C1A264D4DFB9C9A5D820000000000000000000000000005553440000000000DD39C650A96EDA48334E70CC4A85B8B2E8502CD365400000017A85900881142C3CEDD821524D3562691687D020C7CB340BDE72E1E1F1031000",
861+
"tx": "12000022800200002400000022201B00AE0B68614000000005F5E100684000000000002EE069D48501345FD29B7C0000000000000000000000005553440000000000625E2F1F09A0D769E05C04FAA64F0D2013306C6A732102AFA3692CC78A804ACC11DBA23DBB99943C6F8D61D3CB07BBE6D28356EB5B9C5774473045022100A52480AB29706E9C4B5AAB87A9ECD74B4C254578090EC2B0B99E8860DEA089EA0220583805D9E2D786BD335321CB01E52924996DF0562CAB9990C7DF56DDB33A81B28114625E2F1F09A0D769E05C04FAA64F0D2013306C6A8314E81DCB25DAA1DDEFF45145D334C56F12EA63C337011201DD39C650A96EDA48334E70CC4A85B8B2E8502CD3100000000000000000000000000000000000000000FF010A20B3C85F482532A9578DBB3950B85CA06594D1100000000000000000000000000000000000000000FF01DD39C650A96EDA48334E70CC4A85B8B2E8502CD3017C44F934D7A5FEEBD1530570CDB83D1D8EF1F37E100000000000000000000000000000000000000000FF010A20B3C85F482532A9578DBB3950B85CA06594D101F928BCCAF4EBED92C2CC04565EE775EBD217EF1E10000000000000000000000000000000000000000000",
862+
"validated": true
863+
},
864+
"parsed": {
865+
"Account": "r9y3sFjvdnTMJff1j8k2dodJkwgtghpf1o",
866+
"Amount": "100000000",
867+
"Destination": "r4wKTbb8AX5kEhXDvHDvhunDqsLZnXGfL9",
868+
"Fee": "12000",
869+
"Flags": 2147614720,
870+
"LastLedgerSequence": 11406184,
871+
"Paths": [
872+
[
873+
{
874+
"account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q",
875+
"type": 1,
876+
"type_hex": "0000000000000001"
877+
},
878+
{
879+
"currency": "XRP",
880+
"type": 16,
881+
"type_hex": "0000000000000010"
882+
}
883+
],
884+
[
885+
{
886+
"account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
887+
"type": 1,
888+
"type_hex": "0000000000000001"
889+
},
890+
{
891+
"currency": "XRP",
892+
"type": 16,
893+
"type_hex": "0000000000000010"
894+
}
895+
],
896+
[
897+
{
898+
"account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q",
899+
"type": 1,
900+
"type_hex": "0000000000000001"
901+
},
902+
{
903+
"account": "rULnR9YhAkj9HrcxAcudzBhaXRSqT7zJkq",
904+
"type": 1,
905+
"type_hex": "0000000000000001"
906+
},
907+
{
908+
"currency": "XRP",
909+
"type": 16,
910+
"type_hex": "0000000000000010"
911+
}
912+
],
913+
[
914+
{
915+
"account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
916+
"type": 1,
917+
"type_hex": "0000000000000001"
918+
},
919+
{
920+
"account": "rP5ShE8dGBH6hHtNvRESdMceen36XFBQmh",
921+
"type": 1,
922+
"type_hex": "0000000000000001"
923+
},
924+
{
925+
"currency": "XRP",
926+
"type": 16,
927+
"type_hex": "0000000000000010"
928+
}
929+
]
930+
],
931+
"SendMax": {
932+
"currency": "USD",
933+
"issuer": "r9y3sFjvdnTMJff1j8k2dodJkwgtghpf1o",
934+
"value": "1.408699341118332"
935+
},
936+
"Sequence": 34,
937+
"SigningPubKey": "02AFA3692CC78A804ACC11DBA23DBB99943C6F8D61D3CB07BBE6D28356EB5B9C57",
938+
"TransactionType": "Payment",
939+
"TxnSignature": "3045022100A52480AB29706E9C4B5AAB87A9ECD74B4C254578090EC2B0B99E8860DEA089EA0220583805D9E2D786BD335321CB01E52924996DF0562CAB9990C7DF56DDB33A81B2",
940+
"date": 475869060,
941+
"hash": "A3F258AFABC01863D03AD3B8CCBC5BB63D769598C6017CA49E5F3EA3FF3E2F87",
942+
"inLedger": 11406182,
943+
"ledger_index": 11406182,
944+
"meta": {
945+
"AffectedNodes": [
946+
{
947+
"ModifiedNode": {
948+
"FinalFields": {
949+
"Account": "r9y3sFjvdnTMJff1j8k2dodJkwgtghpf1o",
950+
"Balance": "39988000",
951+
"Flags": 0,
952+
"OwnerCount": 4,
953+
"Sequence": 35
954+
},
955+
"LedgerEntryType": "AccountRoot",
956+
"LedgerIndex": "25FF5CC1037AE7E2C491A2E4C6206CBE31D0F1609B6426E6E8C3626BAC8C3439",
957+
"PreviousFields": {
958+
"Balance": "40000000",
959+
"Sequence": 34
960+
},
961+
"PreviousTxnID": "8F1A7B5A1BF271004DF3FA5D7892E849EDBD1A2A3D1A210714563FE164379235",
962+
"PreviousTxnLgrSeq": 11406138
963+
}
964+
},
965+
{
966+
"ModifiedNode": {
967+
"FinalFields": {
968+
"Account": "r4wKTbb8AX5kEhXDvHDvhunDqsLZnXGfL9",
969+
"Balance": "287252656854",
970+
"Flags": 0,
971+
"OwnerCount": 20,
972+
"Sequence": 389
973+
},
974+
"LedgerEntryType": "AccountRoot",
975+
"LedgerIndex": "53539B9154C83B7D657103C27ABCA0EF1AD3674F6D0B341F20710FC50EC4DC03",
976+
"PreviousFields": {
977+
"Balance": "287247718174"
978+
},
979+
"PreviousTxnID": "1A8B4612C1872F11BCCF217C7F4318F5FAA6064232892CA693D438E5D3791289",
980+
"PreviousTxnLgrSeq": 11406083
981+
}
982+
},
983+
{
984+
"ModifiedNode": {
985+
"FinalFields": {
986+
"Balance": {
987+
"currency": "USD",
988+
"issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
989+
"value": "0"
990+
},
991+
"Flags": 1114112,
992+
"HighLimit": {
993+
"currency": "USD",
994+
"issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q",
995+
"value": "0"
996+
},
997+
"HighNode": "0000000000000163",
998+
"LowLimit": {
999+
"currency": "USD",
1000+
"issuer": "r9y3sFjvdnTMJff1j8k2dodJkwgtghpf1o",
1001+
"value": "1000000000"
1002+
},
1003+
"LowNode": "0000000000000000"
1004+
},
1005+
"LedgerEntryType": "RippleState",
1006+
"LedgerIndex": "620379E07473AAE2E6CCCB196AE9DD13C5D036C4B47211BB3DAA55D019CB2226",
1007+
"PreviousFields": {
1008+
"Balance": {
1009+
"currency": "USD",
1010+
"issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
1011+
"value": "0.02"
1012+
}
1013+
},
1014+
"PreviousTxnID": "5132C8906D4A330B263044E634E238E71B60CC21164D4AA7DF3E5AFC18DB568C",
1015+
"PreviousTxnLgrSeq": 10554275
1016+
}
1017+
},
1018+
{
1019+
"ModifiedNode": {
1020+
"FinalFields": {
1021+
"Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg",
1022+
"BookDirectory": "DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4D050AA47190CA2B",
1023+
"BookNode": "0000000000000000",
1024+
"Flags": 0,
1025+
"OwnerNode": "000000000000006E",
1026+
"Sequence": 12507936,
1027+
"TakerGets": "33804897124",
1028+
"TakerPays": {
1029+
"currency": "USD",
1030+
"issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
1031+
"value": "479.7172764913993"
1032+
}
1033+
},
1034+
"LedgerEntryType": "Offer",
1035+
"LedgerIndex": "62DD985C8B3F97B6084C477116AD6C1087929BC17314260DCA09CB8D8A78AF1D",
1036+
"PreviousFields": {
1037+
"TakerGets": "33808413510",
1038+
"TakerPays": {
1039+
"currency": "USD",
1040+
"issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
1041+
"value": "479.767176691"
1042+
}
1043+
},
1044+
"PreviousTxnID": "71C743F5A68673332E9622202D09AF36052064CD2FF1813AF76B1F0F64E260BC",
1045+
"PreviousTxnLgrSeq": 11406181
1046+
}
1047+
},
1048+
{
1049+
"ModifiedNode": {
1050+
"FinalFields": {
1051+
"Balance": {
1052+
"currency": "USD",
1053+
"issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
1054+
"value": "-0.04990019960079842"
1055+
},
1056+
"Flags": 2228224,
1057+
"HighLimit": {
1058+
"currency": "USD",
1059+
"issuer": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg",
1060+
"value": "0"
1061+
},
1062+
"HighNode": "0000000000000000",
1063+
"LowLimit": {
1064+
"currency": "USD",
1065+
"issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
1066+
"value": "0"
1067+
},
1068+
"LowNode": "00000000000001AE"
1069+
},
1070+
"LedgerEntryType": "RippleState",
1071+
"LedgerIndex": "6F12D55A76FAF4D4F504D19AA0E58E8A419371F510F425516AE44DFFDAF28E7E",
1072+
"PreviousFields": {
1073+
"Balance": {
1074+
"currency": "USD",
1075+
"issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
1076+
"value": "0"
1077+
}
1078+
},
1079+
"PreviousTxnID": "EF4DD849FB3603D0DB93361527C0DC9A59D8DFB20162FD6C430FCF646DA39D96",
1080+
"PreviousTxnLgrSeq": 11406088
1081+
}
1082+
},
1083+
{
1084+
"ModifiedNode": {
1085+
"FinalFields": {
1086+
"Balance": {
1087+
"currency": "USD",
1088+
"issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
1089+
"value": "0"
1090+
},
1091+
"Flags": 131072,
1092+
"HighLimit": {
1093+
"currency": "USD",
1094+
"issuer": "r9y3sFjvdnTMJff1j8k2dodJkwgtghpf1o",
1095+
"value": "110"
1096+
},
1097+
"HighNode": "0000000000000000",
1098+
"LowLimit": {
1099+
"currency": "USD",
1100+
"issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
1101+
"value": "0"
1102+
},
1103+
"LowNode": "000000000000027D"
1104+
},
1105+
"LedgerEntryType": "RippleState",
1106+
"LedgerIndex": "785D84438CD44D7BD8234721BC77022E2BE590E38F9AB73C6E3FBC190524EF26",
1107+
"PreviousFields": {
1108+
"Balance": {
1109+
"currency": "USD",
1110+
"issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
1111+
"value": "-0.05000000000000001"
1112+
}
1113+
},
1114+
"PreviousTxnID": "F1E35F73FC81BE1599FBEE184F39AC4168E4C181C7ED000137E9E3C62E18D8C6",
1115+
"PreviousTxnLgrSeq": 11234994
1116+
}
1117+
},
1118+
{
1119+
"ModifiedNode": {
1120+
"FinalFields": {
1121+
"Account": "rnpu51JwzZYXVu3DnbXDTpgT5y1Z8LG3y3",
1122+
"Balance": "685334313807",
1123+
"Flags": 0,
1124+
"OwnerCount": 14,
1125+
"Sequence": 11534
1126+
},
1127+
"LedgerEntryType": "AccountRoot",
1128+
"LedgerIndex": "8F661189A818D586BD88E0A86F51114360750707FB7B0105D9E6751AFE96DAFA",
1129+
"PreviousFields": {
1130+
"Balance": "685335736101"
1131+
},
1132+
"PreviousTxnID": "B134486690C875512F29811499C7FA8E0A5CA693917713F744AC962F0687F3C5",
1133+
"PreviousTxnLgrSeq": 11406181
1134+
}
1135+
},
1136+
{
1137+
"ModifiedNode": {
1138+
"FinalFields": {
1139+
"Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg",
1140+
"Balance": "179720012259",
1141+
"Flags": 0,
1142+
"OwnerCount": 50,
1143+
"Sequence": 12507964
1144+
},
1145+
"LedgerEntryType": "AccountRoot",
1146+
"LedgerIndex": "B79D156918390AC41C4DDE5F181417D55B01D0D183ACBB1B892FF163C5BC8344",
1147+
"PreviousFields": {
1148+
"Balance": "179723528645"
1149+
},
1150+
"PreviousTxnID": "A2727DF8A49A585D77509451DA8659E17BB6AEF9AE6BE2C31370DD19969EB963",
1151+
"PreviousTxnLgrSeq": 11406182
1152+
}
1153+
},
1154+
{
1155+
"ModifiedNode": {
1156+
"FinalFields": {
1157+
"Balance": {
1158+
"currency": "USD",
1159+
"issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
1160+
"value": "4689.563821959174"
1161+
},
1162+
"Flags": 65536,
1163+
"HighLimit": {
1164+
"currency": "USD",
1165+
"issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q",
1166+
"value": "0"
1167+
},
1168+
"HighNode": "00000000000001B3",
1169+
"LowLimit": {
1170+
"currency": "USD",
1171+
"issuer": "rnpu51JwzZYXVu3DnbXDTpgT5y1Z8LG3y3",
1172+
"value": "1000000000"
1173+
},
1174+
"LowNode": "0000000000000000"
1175+
},
1176+
"LedgerEntryType": "RippleState",
1177+
"LedgerIndex": "C9DF59CE5658C9E8FB7554790BD6F7F363A93269C253EBB83ADF876AE5F295AA",
1178+
"PreviousFields": {
1179+
"Balance": {
1180+
"currency": "USD",
1181+
"issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
1182+
"value": "4689.543821959174"
1183+
}
1184+
},
1185+
"PreviousTxnID": "01FC3F8A22CE0E2ED84BE5D4F5E2B5BF1F1EE133D3D819E7E97DE066613FE11F",
1186+
"PreviousTxnLgrSeq": 11406176
1187+
}
1188+
},
1189+
{
1190+
"ModifiedNode": {
1191+
"FinalFields": {
1192+
"Account": "rnpu51JwzZYXVu3DnbXDTpgT5y1Z8LG3y3",
1193+
"BookDirectory": "CF8D13399C6ED20BA82740CFA78E928DC8D498255249BA634D04FEE9AAC8C1A2",
1194+
"BookNode": "0000000000000000",
1195+
"Flags": 0,
1196+
"OwnerNode": "0000000000000000",
1197+
"Sequence": 11533,
1198+
"TakerGets": "6350540808",
1199+
"TakerPays": {
1200+
"currency": "USD",
1201+
"issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q",
1202+
"value": "89.3"
1203+
}
1204+
},
1205+
"LedgerEntryType": "Offer",
1206+
"LedgerIndex": "E9269E79493A95E173FD4821C32678951C402359EF149C77687EE558184FD2FF",
1207+
"PreviousFields": {
1208+
"TakerGets": "6351963102",
1209+
"TakerPays": {
1210+
"currency": "USD",
1211+
"issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q",
1212+
"value": "89.32"
1213+
}
1214+
},
1215+
"PreviousTxnID": "B134486690C875512F29811499C7FA8E0A5CA693917713F744AC962F0687F3C5",
1216+
"PreviousTxnLgrSeq": 11406181
1217+
}
1218+
}
1219+
],
1220+
"DeliveredAmount": "4938680",
1221+
"TransactionIndex": 17,
1222+
"TransactionResult": "tesSUCCESS",
1223+
"delivered_amount": "4938680"
1224+
},
1225+
"validated": true
1226+
}
8531227
}
8541228
}

0 commit comments

Comments
 (0)