From d2c65969992c6f48580169772c9f4a43757462a5 Mon Sep 17 00:00:00 2001 From: David Fuelling Date: Thu, 22 Aug 2024 23:32:19 -0600 Subject: [PATCH] Add ledger entries from #473 Fixes #473 --- .../NegativeTransactionMetadataTest.java | 54 +-- .../ledger-result-309936.json | 332 ++++++++++++++++++ .../ledger-result-309937.json | 107 ++++++ .../ledger-result-329212.json | 203 +++++++++++ 4 files changed, 670 insertions(+), 26 deletions(-) create mode 100644 xrpl4j-core/src/test/resources/negative-balance-ledgers/ledger-result-309936.json create mode 100644 xrpl4j-core/src/test/resources/negative-balance-ledgers/ledger-result-309937.json create mode 100644 xrpl4j-core/src/test/resources/negative-balance-ledgers/ledger-result-329212.json diff --git a/xrpl4j-core/src/test/java/org/xrpl/xrpl4j/model/transactions/NegativeTransactionMetadataTest.java b/xrpl4j-core/src/test/java/org/xrpl/xrpl4j/model/transactions/NegativeTransactionMetadataTest.java index df2550b74..e5a09a6c7 100644 --- a/xrpl4j-core/src/test/java/org/xrpl/xrpl4j/model/transactions/NegativeTransactionMetadataTest.java +++ b/xrpl4j-core/src/test/java/org/xrpl/xrpl4j/model/transactions/NegativeTransactionMetadataTest.java @@ -77,38 +77,22 @@ void deserializeLedger354575() throws IOException { ); } - /** - * This test validates that the ledger 87704323 and all of its transactions and metadata are handled correctly, even - * in the presence of negative XRP or IOU amounts. - */ - @Test - void deserializeOfferCreateWithNegativeValues() throws IOException { - File jsonFile = new File( - "src/test/resources/negative-balance-ledgers/txresult-offercreate-withnegatives.json" - ); - - TransactionResult transactionResult = objectMapper.readValue( - jsonFile, objectMapper.getTypeFactory().constructParametricType(TransactionResult.class, OfferCreate.class) - ); - - assertThat(transactionResult.metadata().isPresent()).isTrue(); - transactionResult.metadata().ifPresent(this::handleTransactionMetadata); - } - /** * This test validates that the ledger 87704323 and all of its transactions and metadata are handled correctly, even * in the presence of negative XRP or IOU amounts. */ @ParameterizedTest @ValueSource(strings = { - "ledger-result-346610.json", - "ledger-result-340231.json", - "ledger-result-346610.json", - "ledger-result-350621.json", - "ledger-result-353674.json", - "ledger-result-354496.json", - "ledger-result-354575.json", - "ledger-result-354579.json", + "ledger-result-309936.json", // <-- See https://github.com/XRPLF/xrpl4j/issues/473 + "ledger-result-309937.json", // <-- See https://github.com/XRPLF/xrpl4j/issues/473 + "ledger-result-329212.json", // <-- See https://github.com/XRPLF/xrpl4j/issues/474 + "ledger-result-340231.json", // <-- See https://github.com/XRPLF/xrpl4j/issues/474 + "ledger-result-346610.json", // <-- See https://github.com/XRPLF/xrpl4j/issues/474 + "ledger-result-350621.json", // <-- See https://github.com/XRPLF/xrpl4j/issues/474 + "ledger-result-353674.json", // <-- See https://github.com/XRPLF/xrpl4j/issues/474 + "ledger-result-354496.json", // <-- See https://github.com/XRPLF/xrpl4j/issues/474 + "ledger-result-354575.json", // <-- See https://github.com/XRPLF/xrpl4j/issues/474 + "ledger-result-354579.json", // <-- See https://github.com/XRPLF/xrpl4j/issues/474 "ledger-result-87704323.json", "ledger-result-90150378.json", "ledger-result-90156059.json" @@ -128,6 +112,24 @@ void deserializeLedgerResultWithNegativeAmounts(String ledgerResultFileName) thr }); } + /** + * This test validates that the ledger 87704323 and all of its transactions and metadata are handled correctly, even + * in the presence of negative XRP or IOU amounts. + */ + @Test + void deserializeOfferCreateWithNegativeValues() throws IOException { + File jsonFile = new File( + "src/test/resources/negative-balance-ledgers/txresult-offercreate-withnegatives.json" + ); + + TransactionResult transactionResult = objectMapper.readValue( + jsonFile, objectMapper.getTypeFactory().constructParametricType(TransactionResult.class, OfferCreate.class) + ); + + assertThat(transactionResult.metadata().isPresent()).isTrue(); + transactionResult.metadata().ifPresent(this::handleTransactionMetadata); + } + private void handleTransactionMetadata(final TransactionMetadata transactionMetadata) { Objects.requireNonNull(transactionMetadata); diff --git a/xrpl4j-core/src/test/resources/negative-balance-ledgers/ledger-result-309936.json b/xrpl4j-core/src/test/resources/negative-balance-ledgers/ledger-result-309936.json new file mode 100644 index 000000000..641f48b1c --- /dev/null +++ b/xrpl4j-core/src/test/resources/negative-balance-ledgers/ledger-result-309936.json @@ -0,0 +1,332 @@ +{ + "ledger_hash": "03C83A4DA96E1E55F8BE7617CDD405C5A967CE4DFE935602632DFEEF34B20021", + "ledger_index": 309936, + "validated": true, + "ledger": { + "account_hash": "9EDFDCFE3349430ED26A250D2AFF44417111C90581C49A4DC3B00C4B35E91EC3", + "close_flags": 0, + "close_time": 415733640, + "close_time_human": "2013-Mar-04 17:34:00.000000000 UTC", + "close_time_resolution": 10, + "close_time_iso": "2013-03-04T17:34:00Z", + "ledger_hash": "03C83A4DA96E1E55F8BE7617CDD405C5A967CE4DFE935602632DFEEF34B20021", + "parent_close_time": 415733630, + "parent_hash": "7284AE15F5C4345612F2AC5F346AE8D2DB587E73444A45A58F4321605A862AD2", + "total_coins": "99999999999810000", + "transaction_hash": "B4BD780A1F99BABD9BF4D81CC5E52810E438F67DB36DF7E22A51E53917D58C19", + "ledger_index": "309936", + "closed": true, + "transactions": [ + { + "Account": "r9uVRhJEKsJVaxsU3c3rimzLWKYRmDUcX2", + "Fee": "10", + "Flags": 0, + "Sequence": 166, + "SigningPubKey": "035F89BB1F8E4E302D2BEEA706212E522C3A768FB518F699D033FE2FEAFDF3CA5C", + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "29950" + }, + "TakerPays": "41930000000", + "TransactionType": "OfferCreate", + "TxnSignature": "3046022100980A3F31490873489F9E94B05E70C0F58289959BA90F9E621EDD760E7EB9ECE4022100EFA82611F2DA152A0114F8561D5096BF1312970709C37AD211BA52B6242F3C2E", + "hash": "2AEFB8AE33E908C711CBF5887CA2AD19D8B04416EDE9B497520E91A184DE8015", + "metaData": { + "AffectedNodes": [ + { + "ModifiedNode": { + "FinalFields": { + "Balance": { + "currency": "BTC", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-0.5996838787749999" + }, + "Flags": 131072, + "HighLimit": { + "currency": "BTC", + "issuer": "rnfP45Y8G24MaD3Atr2Gt1rYMJFRKbLrpu", + "value": "1" + }, + "HighNode": "0", + "LowLimit": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "8" + }, + "LedgerEntryType": "RippleState", + "LedgerIndex": "1F3D403B78E949DD5911584B35330225E4BD633F575CE8618D045352E59E086D", + "PreviousFields": { + "Balance": { + "currency": "BTC", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-0.4996838787749999" + } + }, + "PreviousTxnID": "B8380B530CE430E4B7476CADB4CE4145236E70F00024CC83433FD6C0C2C54EA1", + "PreviousTxnLgrSeq": 309607 + } + }, + { + "DeletedNode": { + "FinalFields": { + "ExchangeRate": "4a13a0d525b2c32f", + "Flags": 0, + "RootIndex": "37AAC93D336021AE94310D0430FFA090F7137C97D473488C4A13A0D525B2C32F", + "TakerGetsCurrency": "0000000000000000000000000000000000000000", + "TakerGetsIssuer": "0000000000000000000000000000000000000000", + "TakerPaysCurrency": "0000000000000000000000004254430000000000", + "TakerPaysIssuer": "0A20B3C85F482532A9578DBB3950B85CA06594D1" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "37AAC93D336021AE94310D0430FFA090F7137C97D473488C4A13A0D525B2C32F" + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Balance": { + "currency": "BTC", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-2.332763112703519" + }, + "Flags": 131072, + "HighLimit": { + "currency": "BTC", + "issuer": "rPXh6UrSBuLzzqKksZchqM4nC67EhfNnAW", + "value": "0.1" + }, + "HighNode": "0", + "LowLimit": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "9" + }, + "LedgerEntryType": "RippleState", + "LedgerIndex": "4031F9A72C03C070270CE083A2B926162CCBFD3E509A9DC7063485794040717B", + "PreviousFields": { + "Balance": { + "currency": "BTC", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-0.003319535029101" + } + }, + "PreviousTxnID": "015241498F278E64BA5D33B6595ED1A234FCC91E2A0AE5D132F88FDC5B5C5C33", + "PreviousTxnLgrSeq": 309609 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Account": "rPXh6UrSBuLzzqKksZchqM4nC67EhfNnAW", + "Balance": "1758975750", + "Flags": 0, + "OwnerCount": 7, + "Sequence": 26 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "5116B46EED2C19A05A46225744E5EE6F3FD0F86107D0C303EDEE6B46CAF5251C", + "PreviousFields": { + "Balance": "43688975750" + }, + "PreviousTxnID": "8DBE416DCDAEB79D1D32E010044706810439CA5983C5DCFA255FBBDBE6813F72", + "PreviousTxnLgrSeq": 309855 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Account": "rnfP45Y8G24MaD3Atr2Gt1rYMJFRKbLrpu", + "Balance": "68329222332", + "Flags": 0, + "OwnerCount": 3, + "Sequence": 71 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "7449AA8C7C7C675DF1907EFB7EBD5A06F29E5C9380731E88034D023FED6004C4", + "PreviousFields": { + "Balance": "70139222332", + "OwnerCount": 4 + }, + "PreviousTxnID": "7E6D9C711E369ED617AD6944C257FE3E0BB9808FCE4882453C4DDA9A1050E6FD", + "PreviousTxnLgrSeq": 309894 + } + }, + { + "CreatedNode": { + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "7B73A610A009249B0CC0D4311E8BA7927B5A34D86634581C5B04F94AE6AF8000", + "NewFields": { + "ExchangeRate": "5b04f94ae6af8000", + "RootIndex": "7B73A610A009249B0CC0D4311E8BA7927B5A34D86634581C5B04F94AE6AF8000", + "TakerGetsCurrency": "0000000000000000000000004254430000000000", + "TakerGetsIssuer": "0A20B3C85F482532A9578DBB3950B85CA06594D1" + } + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Account": "rPXh6UrSBuLzzqKksZchqM4nC67EhfNnAW", + "BookDirectory": "37AAC93D336021AE94310D0430FFA090F7137C97D473488C4A13BCBF1834817D", + "BookNode": "0", + "Flags": 0, + "OwnerNode": "0", + "Sequence": 25, + "TakerGets": "1070000000", + "TakerPays": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.059444422325582" + } + }, + "LedgerEntryType": "Offer", + "LedgerIndex": "8A79FC48D391DA203FE23F3D18B5EA93C0C7B0309A7642DAA3C635E53DCB0C96", + "PreviousFields": { + "TakerGets": "43000000000", + "TakerPays": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "2.388888" + } + }, + "PreviousTxnID": "8DBE416DCDAEB79D1D32E010044706810439CA5983C5DCFA255FBBDBE6813F72", + "PreviousTxnLgrSeq": 309855 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Flags": 0, + "Owner": "r9uVRhJEKsJVaxsU3c3rimzLWKYRmDUcX2", + "RootIndex": "A4CCF7BB3C483549CA8561763E47B8B79602905883BA37ED1CDFCAAACA610032" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "A4CCF7BB3C483549CA8561763E47B8B79602905883BA37ED1CDFCAAACA610032" + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Flags": 0, + "Owner": "rnfP45Y8G24MaD3Atr2Gt1rYMJFRKbLrpu", + "RootIndex": "A5AD177280C7143C208F43CFE55FB532C1F0EDB1ABD0A2EDDD87E4F6C33964B4" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "A5AD177280C7143C208F43CFE55FB532C1F0EDB1ABD0A2EDDD87E4F6C33964B4" + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Account": "r9uVRhJEKsJVaxsU3c3rimzLWKYRmDUcX2", + "Balance": "57490014944", + "Flags": 0, + "OwnerCount": 14, + "Sequence": 167 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "B0E0E6C5CD61C2AD3CBD1A9A0A9CE75BE6C954B60463C9CB00A1440847DA2A26", + "PreviousFields": { + "Balance": "13750014954", + "OwnerCount": 13, + "Sequence": 166 + }, + "PreviousTxnID": "2755DADE8153D4B2B55BC2ADCA574FF43F34FD5E8980B5BDEBDA89C519DB32A8", + "PreviousTxnLgrSeq": 309935 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Balance": { + "currency": "BTC", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-0.242525153474098" + }, + "Flags": 131072, + "HighLimit": { + "currency": "BTC", + "issuer": "r9uVRhJEKsJVaxsU3c3rimzLWKYRmDUcX2", + "value": "5" + }, + "HighNode": "0", + "LowLimit": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "8" + }, + "LedgerEntryType": "RippleState", + "LedgerIndex": "C7FC433CE4271915E7FFC4A965CF901091BB64CE438EF4E659F336DF9E684082", + "PreviousFields": { + "Balance": { + "currency": "BTC", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-2.676827618303865" + } + }, + "PreviousTxnID": "9EDBA2F5A60AF8B4BAABDE16A62CB7C352231C6603BB0636DF0F40B96565B084", + "PreviousTxnLgrSeq": 309911 + } + }, + { + "CreatedNode": { + "LedgerEntryType": "Offer", + "LedgerIndex": "D4DA83BF5667C43FBA4B7088C9A68EBBD1FA623E1BFE26178EA4CDD44C9CD199", + "NewFields": { + "Account": "r9uVRhJEKsJVaxsU3c3rimzLWKYRmDUcX2", + "BookDirectory": "7B73A610A009249B0CC0D4311E8BA7927B5A34D86634581C5B04F94AE6AF8000", + "Sequence": 166, + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "29944.7465447634" + }, + "TakerPays": "-1810000000" + } + } + }, + { + "DeletedNode": { + "FinalFields": { + "Account": "rnfP45Y8G24MaD3Atr2Gt1rYMJFRKbLrpu", + "BookDirectory": "37AAC93D336021AE94310D0430FFA090F7137C97D473488C4A13A0D525B2C32F", + "BookNode": "0", + "Flags": 0, + "OwnerNode": "0", + "PreviousTxnID": "7E6D9C711E369ED617AD6944C257FE3E0BB9808FCE4882453C4DDA9A1050E6FD", + "PreviousTxnLgrSeq": 309894, + "Sequence": 70, + "TakerGets": "0", + "TakerPays": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + } + }, + "LedgerEntryType": "Offer", + "LedgerIndex": "EC379273CDABE3130B7D463E45B7FAE02F4EDC0BA063852C70EA67D2154FDDC3", + "PreviousFields": { + "TakerGets": "1810000000", + "TakerPays": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.1" + } + } + } + } + ], + "TransactionIndex": 0, + "TransactionResult": "tesSUCCESS" + } + } + ] + } +} \ No newline at end of file diff --git a/xrpl4j-core/src/test/resources/negative-balance-ledgers/ledger-result-309937.json b/xrpl4j-core/src/test/resources/negative-balance-ledgers/ledger-result-309937.json new file mode 100644 index 000000000..304b91f9a --- /dev/null +++ b/xrpl4j-core/src/test/resources/negative-balance-ledgers/ledger-result-309937.json @@ -0,0 +1,107 @@ +{ + "ledger_hash": "E74BBAF2073EA15CA82C167FA5B9B40D74E5391C218E8473CBF90FEB9C6540DC", + "ledger_index": 309937, + "validated": true, + "ledger": { + "account_hash": "2262FF0B721EB1FDFC240C7B46C448154331F999C6F9217042A5B4EC07994E74", + "close_flags": 0, + "close_time": 415733650, + "close_time_human": "2013-Mar-04 17:34:10.000000000 UTC", + "close_time_resolution": 10, + "close_time_iso": "2013-03-04T17:34:10Z", + "ledger_hash": "E74BBAF2073EA15CA82C167FA5B9B40D74E5391C218E8473CBF90FEB9C6540DC", + "parent_close_time": 415733640, + "parent_hash": "03C83A4DA96E1E55F8BE7617CDD405C5A967CE4DFE935602632DFEEF34B20021", + "total_coins": "99999999999809990", + "transaction_hash": "DAC1BA6E728658E2F32CC90EB3BB2F8960A01E40FCE74DDA9F85EE67F73BA5ED", + "ledger_index": "309937", + "closed": true, + "transactions": [ + { + "Account": "r9uVRhJEKsJVaxsU3c3rimzLWKYRmDUcX2", + "Fee": "10", + "Flags": 0, + "OfferSequence": 166, + "Sequence": 167, + "SigningPubKey": "035F89BB1F8E4E302D2BEEA706212E522C3A768FB518F699D033FE2FEAFDF3CA5C", + "TransactionType": "OfferCancel", + "TxnSignature": "3046022100BD846F2D421026297F7B45F02404DE46D1FFAD9F7D5DE2450713EA9634ECDACA022100C2007DBCCC9F5BD0DFDD20E7CF41B60C4AE64A21E71A66E61FFD6FAC5A17CBDF", + "hash": "C4831F0E45EE145DA0B22C012205AB02752F09E5D389B797B9274333B2C96F58", + "metaData": { + "AffectedNodes": [ + { + "DeletedNode": { + "FinalFields": { + "ExchangeRate": "5b04f94ae6af8000", + "Flags": 0, + "RootIndex": "7B73A610A009249B0CC0D4311E8BA7927B5A34D86634581C5B04F94AE6AF8000", + "TakerGetsCurrency": "0000000000000000000000004254430000000000", + "TakerGetsIssuer": "0A20B3C85F482532A9578DBB3950B85CA06594D1", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "7B73A610A009249B0CC0D4311E8BA7927B5A34D86634581C5B04F94AE6AF8000" + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Flags": 0, + "Owner": "r9uVRhJEKsJVaxsU3c3rimzLWKYRmDUcX2", + "RootIndex": "A4CCF7BB3C483549CA8561763E47B8B79602905883BA37ED1CDFCAAACA610032" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "A4CCF7BB3C483549CA8561763E47B8B79602905883BA37ED1CDFCAAACA610032" + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Account": "r9uVRhJEKsJVaxsU3c3rimzLWKYRmDUcX2", + "Balance": "57490014934", + "Flags": 0, + "OwnerCount": 13, + "Sequence": 168 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "B0E0E6C5CD61C2AD3CBD1A9A0A9CE75BE6C954B60463C9CB00A1440847DA2A26", + "PreviousFields": { + "Balance": "57490014944", + "OwnerCount": 14, + "Sequence": 167 + }, + "PreviousTxnID": "2AEFB8AE33E908C711CBF5887CA2AD19D8B04416EDE9B497520E91A184DE8015", + "PreviousTxnLgrSeq": 309936 + } + }, + { + "DeletedNode": { + "FinalFields": { + "Account": "r9uVRhJEKsJVaxsU3c3rimzLWKYRmDUcX2", + "BookDirectory": "7B73A610A009249B0CC0D4311E8BA7927B5A34D86634581C5B04F94AE6AF8000", + "BookNode": "0", + "Flags": 0, + "OwnerNode": "0", + "PreviousTxnID": "2AEFB8AE33E908C711CBF5887CA2AD19D8B04416EDE9B497520E91A184DE8015", + "PreviousTxnLgrSeq": 309936, + "Sequence": 166, + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "29944.7465447634" + }, + "TakerPays": "-1810000000" + }, + "LedgerEntryType": "Offer", + "LedgerIndex": "D4DA83BF5667C43FBA4B7088C9A68EBBD1FA623E1BFE26178EA4CDD44C9CD199" + } + } + ], + "TransactionIndex": 0, + "TransactionResult": "tesSUCCESS" + } + } + ] + } +} \ No newline at end of file diff --git a/xrpl4j-core/src/test/resources/negative-balance-ledgers/ledger-result-329212.json b/xrpl4j-core/src/test/resources/negative-balance-ledgers/ledger-result-329212.json new file mode 100644 index 000000000..1d1457f20 --- /dev/null +++ b/xrpl4j-core/src/test/resources/negative-balance-ledgers/ledger-result-329212.json @@ -0,0 +1,203 @@ +{ + "ledger_hash": "ED4395F2C503963E0E9A37F36F5ACC8A60DD9911A1F9E61F71AF555003C1F53B", + "ledger_index": 329212, + "validated": true, + "ledger": { + "account_hash": "E74590C886C899E143BB11CED6603320FBE37C2615BE39C64745009F493593BB", + "close_flags": 0, + "close_time": 416079130, + "close_time_human": "2013-Mar-08 17:32:10.000000000 UTC", + "close_time_resolution": 10, + "close_time_iso": "2013-03-08T17:32:10Z", + "ledger_hash": "ED4395F2C503963E0E9A37F36F5ACC8A60DD9911A1F9E61F71AF555003C1F53B", + "parent_close_time": 416079130, + "parent_hash": "0E2E633067E5E84DE356B24C6BD013EAC3B3282314C15804F84E70D9A1775AD9", + "total_coins": "99999999999735980", + "transaction_hash": "300F0418146C4D327224DCEDD086BE1BE6D295306E5C21AFD73C3093075D6AB0", + "ledger_index": "329212", + "closed": true, + "transactions": [ + { + "Account": "r9K1rn69htFHPfqnKK4oj9HNVAxbcwntKY", + "Amount": { + "currency": "USD", + "issuer": "r9YcKijXfPWsKrgEP9Ekq3HDCVy53fELDk", + "value": "1" + }, + "Destination": "r9YcKijXfPWsKrgEP9Ekq3HDCVy53fELDk", + "Fee": "10", + "Flags": 0, + "Paths": [ + [ + { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 48 + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 49 + } + ] + ], + "SendMax": "1113222000", + "Sequence": 3, + "SigningPubKey": "0356A4FF55139D6C1DFB2A6E8CB254256034116B0EB154BF7499A7F73B4BA29829", + "TransactionType": "Payment", + "TxnSignature": "3045022073D9A407B1F17EA885351C065A6F62A4C511AE9F5A51A3B2821E00F2E40ABFF0022100BCCE1E06D16859D7FA2BA363F43D53F2E6E359FE2F7DE43ACECCBC87352B0934", + "hash": "601BF344A13AEC8189F72AA4CF8BA89D77D1765BAB2DD85C8A328BDF7F3CE7B8", + "DeliverMax": { + "currency": "USD", + "issuer": "r9YcKijXfPWsKrgEP9Ekq3HDCVy53fELDk", + "value": "1" + }, + "metaData": { + "AffectedNodes": [ + { + "ModifiedNode": { + "FinalFields": { + "Account": "r9K1rn69htFHPfqnKK4oj9HNVAxbcwntKY", + "Balance": "-102200030", + "Flags": 0, + "OwnerCount": 1, + "Sequence": 4 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "5330BDBCEF33A1B8F54B879DF09E1FA001AE987C52F41F2ACA41B24AA6314CC7", + "PreviousFields": { + "Balance": "999999980", + "Sequence": 3 + }, + "PreviousTxnID": "0FAA7703D7E4C15C41427B34E0B70CA2A38427DA02D1BA7613FDC73FF407F929", + "PreviousTxnLgrSeq": 329203 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-1" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "r9YcKijXfPWsKrgEP9Ekq3HDCVy53fELDk", + "value": "10" + }, + "HighNode": "0", + "LowLimit": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "b" + }, + "LedgerEntryType": "RippleState", + "LedgerIndex": "552943CD4C3DED0D06935CA5111C7773AD39560325274CAF1E23F976266FD991", + "PreviousFields": { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + } + }, + "PreviousTxnID": "B27055EB30D301E7F7604063FED22A8827AE1FBFCA58BEC99D649E6C89695FE9", + "PreviousTxnLgrSeq": 327407 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Account": "r9tGqzZgKxVFvzKFdUqXAqTzazWBUia8Qr", + "BookDirectory": "4627DFFCFF8B5A265EDBD8AE8C14A52325DBFEDAF4F5C32E5E03E871B540C000", + "BookNode": "0", + "Flags": 0, + "OwnerNode": "0", + "Sequence": 2, + "TakerGets": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "7.998" + }, + "TakerPays": "8797800000" + }, + "LedgerEntryType": "Offer", + "LedgerIndex": "590F3478571467150339972AFEDC0AAD35A1D0F6A74902665108BCD8745AC7AA", + "PreviousFields": { + "TakerGets": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "9" + }, + "TakerPays": "9900000000" + }, + "PreviousTxnID": "D39D577069D749C32DBCDDC367266514BA48C0332BDA389BCD1895A7953C3C00", + "PreviousTxnLgrSeq": 328425 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Account": "r9tGqzZgKxVFvzKFdUqXAqTzazWBUia8Qr", + "Balance": "2523199970", + "Flags": 0, + "OwnerCount": 3, + "Sequence": 4 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "F3E119AAA87AF3607CF87F5523BB8278A83BCB4142833288305D767DD30C392A", + "PreviousFields": { + "Balance": "1420999970" + }, + "PreviousTxnID": "F37CEB93C0364AEBFD8755D33317F7EDD7B88C3DBA973CC4F36243AA0ED78B18", + "PreviousTxnLgrSeq": 329057 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-872.166" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "r9tGqzZgKxVFvzKFdUqXAqTzazWBUia8Qr", + "value": "1000" + }, + "HighNode": "0", + "LowLimit": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "c" + }, + "LedgerEntryType": "RippleState", + "LedgerIndex": "FA1255C2E0407F1945BCF9351257C7C5C28B0F5F09BB81C08D35A03E9F0136BC", + "PreviousFields": { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-873.168" + } + }, + "PreviousTxnID": "79DC17C542DBD12849148B2B2E5884CEAC037B1EF58B9A2E3BF18E3F106659A9", + "PreviousTxnLgrSeq": 329068 + } + } + ], + "TransactionIndex": 0, + "TransactionResult": "tesSUCCESS", + "delivered_amount": "unavailable" + } + } + ] + } +} \ No newline at end of file