diff --git a/CHANGELOG.md b/CHANGELOG.md index 3065e0698..3cae7ca01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ As this project is pre 1.0, breaking changes may happen for minor version bumps. ## Pending * Make `StrKey` public, this allows users to conveniently encode and decode Stellar keys to/from strings. ([#548](https://github.com/stellar/java-stellar-sdk/pull/548)) +* Update `LedgerResponse` and `AccountResponse`, remove outdated fields, and add missing fields. ([#549](https://github.com/stellar/java-stellar-sdk/pull/549)) ## 0.41.1 * Add `org.stellar.sdk.spi.SdkProvider`, users can implement this interface to provide their own implementation of the SDK. We provide an [Android specific implementation](https://github.com/stellar/java-stellar-sdk-android-spi), if you are integrating this SDK into an Android project, be sure to check it out. ([#543](https://github.com/stellar/java-stellar-sdk/pull/543)) diff --git a/src/main/java/org/stellar/sdk/responses/AccountResponse.java b/src/main/java/org/stellar/sdk/responses/AccountResponse.java index aa9e4437d..d417bb8d9 100644 --- a/src/main/java/org/stellar/sdk/responses/AccountResponse.java +++ b/src/main/java/org/stellar/sdk/responses/AccountResponse.java @@ -14,8 +14,9 @@ /** * Represents account response. * - * @see Account - * documentation + * @see Account documentation * @see org.stellar.sdk.requests.AccountsRequestBuilder * @see org.stellar.sdk.Server#accounts() */ @@ -44,6 +45,9 @@ public class AccountResponse extends Response implements org.stellar.sdk.Transac @SerializedName("last_modified_ledger") private Integer lastModifiedLedger; + @SerializedName("last_modified_time") + private String lastModifiedTime; + @SerializedName("thresholds") private Thresholds thresholds; @@ -134,6 +138,10 @@ public Integer getLastModifiedLedger() { return lastModifiedLedger; } + public String getLastModifiedTime() { + return lastModifiedTime; + } + public Thresholds getThresholds() { return thresholds; } @@ -274,6 +282,9 @@ public static class Balance { @SerializedName("is_authorized_to_maintain_liabilities") private final Boolean isAuthorizedToMaintainLiabilities; + @SerializedName("is_clawback_enabled") + private final Boolean isClawbackEnabled; + @SerializedName("last_modified_ledger") private final Integer lastModifiedLedger; @@ -291,6 +302,7 @@ public Balance( @NonNull String sellingLiabilities, Boolean isAuthorized, Boolean isAuthorizedToMaintainLiabilities, + Boolean isClawbackEnabled, Integer lastModifiedLedger, String sponsor) { this.assetType = assetType; @@ -303,6 +315,7 @@ public Balance( this.sellingLiabilities = sellingLiabilities; this.isAuthorized = isAuthorized; this.isAuthorizedToMaintainLiabilities = isAuthorizedToMaintainLiabilities; + this.isClawbackEnabled = isClawbackEnabled; this.lastModifiedLedger = lastModifiedLedger; // sponsor is an optional field this.sponsor = sponsor; @@ -356,6 +369,10 @@ public Boolean getAuthorizedToMaintainLiabilities() { return isAuthorizedToMaintainLiabilities; } + public Boolean getClawbackEnabled() { + return isClawbackEnabled; + } + public Integer getLastModifiedLedger() { return lastModifiedLedger; } diff --git a/src/main/java/org/stellar/sdk/responses/LedgerResponse.java b/src/main/java/org/stellar/sdk/responses/LedgerResponse.java index 4436f0a22..cf7c933c1 100644 --- a/src/main/java/org/stellar/sdk/responses/LedgerResponse.java +++ b/src/main/java/org/stellar/sdk/responses/LedgerResponse.java @@ -1,228 +1,91 @@ package org.stellar.sdk.responses; import com.google.gson.annotations.SerializedName; +import lombok.EqualsAndHashCode; +import lombok.Value; /** * Represents ledger response. * - * @see Ledger - * documentation + * @see Ledger documentation * @see org.stellar.sdk.requests.LedgersRequestBuilder * @see org.stellar.sdk.Server#ledgers() */ +@Value +@EqualsAndHashCode(callSuper = false) public class LedgerResponse extends Response implements Pageable { - @SerializedName("sequence") - private final Long sequence; - - @SerializedName("hash") - private final String hash; + @SerializedName("id") + String id; @SerializedName("paging_token") - private final String pagingToken; + String pagingToken; + + @SerializedName("hash") + String hash; @SerializedName("prev_hash") - private final String prevHash; + String prevHash; - @SerializedName("transaction_count") - private final Integer transactionCount; + @SerializedName("sequence") + Long sequence; @SerializedName("successful_transaction_count") - private final Integer successfulTransactionCount; + Integer successfulTransactionCount; @SerializedName("failed_transaction_count") - private final Integer failedTransactionCount; + Integer failedTransactionCount; @SerializedName("operation_count") - private final Integer operationCount; + Integer operationCount; + + @SerializedName("tx_set_operation_count") + Integer txSetOperationCount; @SerializedName("closed_at") - private final String closedAt; + String closedAt; @SerializedName("total_coins") - private final String totalCoins; + String totalCoins; @SerializedName("fee_pool") - private final String feePool; - - @SerializedName("base_fee") - private final Long baseFee; - - @SerializedName("base_reserve") - private final String baseReserve; + String feePool; @SerializedName("base_fee_in_stroops") - private final String baseFeeInStroops; + String baseFeeInStroops; @SerializedName("base_reserve_in_stroops") - private final String baseReserveInStroops; + String baseReserveInStroops; @SerializedName("max_tx_set_size") - private final Integer maxTxSetSize; + Integer maxTxSetSize; @SerializedName("protocol_version") - private final Integer protocolVersion; + Integer protocolVersion; @SerializedName("header_xdr") - private final String headerXdr; + String headerXdr; @SerializedName("_links") - private final Links links; - - LedgerResponse( - Long sequence, - String hash, - String pagingToken, - String prevHash, - Integer transactionCount, - Integer successfulTransactionCount, - Integer failedTransactionCount, - Integer operationCount, - String closedAt, - String totalCoins, - String feePool, - Long baseFee, - String baseReserve, - String baseFeeInStroops, - String baseReserveInStroops, - Integer maxTxSetSize, - Integer protocolVersion, - String headerXdr, - Links links) { - this.sequence = sequence; - this.hash = hash; - this.pagingToken = pagingToken; - this.prevHash = prevHash; - this.transactionCount = transactionCount; - this.successfulTransactionCount = successfulTransactionCount; - this.failedTransactionCount = failedTransactionCount; - this.operationCount = operationCount; - this.closedAt = closedAt; - this.totalCoins = totalCoins; - this.feePool = feePool; - this.baseFee = baseFee; - this.baseFeeInStroops = baseFeeInStroops; - this.baseReserve = baseReserve; - this.baseReserveInStroops = baseReserveInStroops; - this.maxTxSetSize = maxTxSetSize; - this.protocolVersion = protocolVersion; - this.headerXdr = headerXdr; - this.links = links; - } - - public Long getSequence() { - return sequence; - } - - public String getHash() { - return hash; - } - - public String getPagingToken() { - return pagingToken; - } - - public String getPrevHash() { - return prevHash; - } - - /** - * @deprecated Will be removed in Horizon 0.17.0 - */ - public Integer getTransactionCount() { - return transactionCount; - } - - public Integer getSuccessfulTransactionCount() { - return successfulTransactionCount; - } - - public Integer getFailedTransactionCount() { - return failedTransactionCount; - } - - public Integer getOperationCount() { - return operationCount; - } - - public String getClosedAt() { - return closedAt; - } - - public String getTotalCoins() { - return totalCoins; - } - - public String getFeePool() { - return feePool; - } - - public Long getBaseFee() { - return baseFee; - } - - public String getBaseReserve() { - return baseReserve; - } - - public String getBaseFeeInStroops() { - return baseFeeInStroops; - } - - public String getBaseReserveInStroops() { - return baseReserveInStroops; - } - - public Integer getMaxTxSetSize() { - return maxTxSetSize; - } - - public Integer getProtocolVersion() { - return protocolVersion; - } - - public String getHeaderXdr() { - return headerXdr; - } - - public Links getLinks() { - return links; - } + Links links; /** Links connected to ledger. */ + @Value public static class Links { - @SerializedName("effects") - private final Link effects; + @SerializedName("self") + Link self; + + @SerializedName("transactions") + Link transactions; @SerializedName("operations") - private final Link operations; + Link operations; - @SerializedName("self") - private final Link self; + @SerializedName("payments") + Link payments; - @SerializedName("transactions") - private final Link transactions; - - Links(Link effects, Link operations, Link self, Link transactions) { - this.effects = effects; - this.operations = operations; - this.self = self; - this.transactions = transactions; - } - - public Link getEffects() { - return effects; - } - - public Link getOperations() { - return operations; - } - - public Link getSelf() { - return self; - } - - public Link getTransactions() { - return transactions; - } + @SerializedName("effects") + Link effects; } } diff --git a/src/test/java/org/stellar/sdk/responses/AccountDeserializerTest.java b/src/test/java/org/stellar/sdk/responses/AccountDeserializerTest.java index 9aa379d9b..3729f985b 100644 --- a/src/test/java/org/stellar/sdk/responses/AccountDeserializerTest.java +++ b/src/test/java/org/stellar/sdk/responses/AccountDeserializerTest.java @@ -30,6 +30,7 @@ public void testDeserializeBalanceAuth() { assertEquals(account.getBalances()[0].getSellingLiabilities(), Optional.of("100.7654321")); assertEquals(account.getBalances()[0].getAuthorized(), Boolean.FALSE); assertEquals(account.getBalances()[0].getAuthorizedToMaintainLiabilities(), Boolean.TRUE); + assertEquals(account.getBalances()[0].getClawbackEnabled(), Boolean.TRUE); assertEquals(account.getBalances()[1].getAssetType(), "native"); assertEquals(account.getBalances()[1].getAsset(), Optional.of(new AssetTypeNative())); @@ -46,6 +47,8 @@ public void testDeserialize() { account.getAccountId(), "GAAZI4TCR3TY5OJHCTJC2A4QSY6CJWJH5IAJTGKIN2ER7LBNVKOCCWN7"); assertEquals(account.getSequenceNumber(), Long.valueOf(2319149195853854L)); assertEquals(account.getSubentryCount(), Integer.valueOf(0)); + assertEquals(account.getLastModifiedLedger(), Integer.valueOf(117663)); + assertEquals(account.getLastModifiedTime(), "2020-09-28T17:56:04Z"); assertEquals(account.getSequenceUpdatedAtLedger().longValue(), 1234); assertEquals(account.getSequenceUpdatedAtTime().longValue(), 4567); assertEquals( @@ -240,7 +243,8 @@ public void testDeserializeLiquidityPoolBalanc() { + " \"asset_code\": \"ABC\",\n" + " \"asset_issuer\": \"GCRA6COW27CY5MTKIA7POQ2326C5ABYCXODBN4TFF5VL4FMBRHOT3YHU\",\n" + " \"is_authorized\": false,\n" - + " \"is_authorized_to_maintain_liabilities\": true\n" + + " \"is_authorized_to_maintain_liabilities\": true,\n" + + " \"is_clawback_enabled\": true\n" + " }," + " {\n" + " \"asset_type\": \"native\",\n" @@ -301,6 +305,8 @@ public void testDeserializeLiquidityPoolBalanc() { + " \"subentry_count\": 0,\n" + " \"inflation_destination\": \"GAGRSA6QNQJN2OQYCBNQGMFLO4QLZFNEHIFXOMTQVSUTWVTWT66TOFSC\",\n" + " \"home_domain\": \"stellar.org\",\n" + + " \"last_modified_ledger\": 117663,\n" + + " \"last_modified_time\": \"2020-09-28T17:56:04Z\",\n" + " \"thresholds\": {\n" + " \"low_threshold\": 10,\n" + " \"med_threshold\": 20,\n" diff --git a/src/test/java/org/stellar/sdk/responses/LedgerDeserializerTest.java b/src/test/java/org/stellar/sdk/responses/LedgerDeserializerTest.java index f8da7fa6f..fbf985842 100644 --- a/src/test/java/org/stellar/sdk/responses/LedgerDeserializerTest.java +++ b/src/test/java/org/stellar/sdk/responses/LedgerDeserializerTest.java @@ -9,76 +9,81 @@ public void testDeserialize() { String json = "{\n" + " \"_links\": {\n" - + " \"effects\": {\n" - + " \"href\": \"/ledgers/898826/effects{?cursor,limit,order}\",\n" + + " \"self\": {\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48637678\"\n" + + " },\n" + + " \"transactions\": {\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48637678/transactions{?cursor,limit,order}\",\n" + " \"templated\": true\n" + " },\n" + " \"operations\": {\n" - + " \"href\": \"/ledgers/898826/operations{?cursor,limit,order}\",\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48637678/operations{?cursor,limit,order}\",\n" + " \"templated\": true\n" + " },\n" - + " \"self\": {\n" - + " \"href\": \"/ledgers/898826\"\n" + + " \"payments\": {\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48637678/payments{?cursor,limit,order}\",\n" + + " \"templated\": true\n" + " },\n" - + " \"transactions\": {\n" - + " \"href\": \"/ledgers/898826/transactions{?cursor,limit,order}\",\n" + + " \"effects\": {\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48637678/effects{?cursor,limit,order}\",\n" + " \"templated\": true\n" + " }\n" + " },\n" - + " \"id\": \"686bb246db89b099cd3963a4633eb5e4315d89dfd3c00594c80b41a483847bfa\",\n" - + " \"paging_token\": \"3860428274794496\",\n" - + " \"hash\": \"686bb246db89b099cd3963a4633eb5e4315d89dfd3c00594c80b41a483847bfa\",\n" - + " \"prev_hash\": \"50c8695eb32171a19858413e397cc50b504ceacc819010bdf8ff873aff7858d7\",\n" - + " \"sequence\": 898826,\n" - + " \"transaction_count\": 5,\n" - + " \"successful_transaction_count\": 3,\n" - + " \"failed_transaction_count\": 2,\n" - + " \"operation_count\": 10,\n" - + " \"closed_at\": \"2015-11-19T21:35:59Z\",\n" - + " \"total_coins\": \"101343867604.8975480\",\n" - + " \"fee_pool\": \"1908.2248818\",\n" - + " \"base_fee\": 100,\n" - + " \"base_reserve\": \"10.0000000\",\n" - + " \"max_tx_set_size\": 50,\n" - + " \"protocol_version\": 10,\n" - + " \"header_xdr\": \"AAAACvkxR60p1bwRO3PdsRy48pkWVtuyF08xyvB3jU7u437r9tK/G7DoXa+J8N5ptWhpHGrc/" - + "a+5k9Ak3kHnZSAaiPgAAAAAW4aHyQAAAAAAAAAAyz4xx/YIt7Z9PLeCHj/ZrFGcDaNSJpQX+jpL1IX3uqSCiFrU4CFidqxjmmJzXNWN1rY4cBwliHN21hicu/" - + "JyawCkgzIOdhy8pVTcbQA+gekx1NpNAAAA2QAAAAAACsLiAAAAZABMS0AAAAAykmy96ckoDVk3UDBm7B4n8oC6+cdCxGDnWu7tO6aU34xipth5GRNy+I5Y8m+E/" - + "bHlElCDX2J8y6kuKr7yU6xvyjMb9nwaii7EHN74adNyyUuselmxQcKfEVf/tj3j5l9yOMqgE05NDyU0+LycHY47062IWxvG0o2yDaaxp2Z72pwAAAAA\"\n" + + " \"id\": \"41cfd330183c18bc8b380a46e71769e496199b420356bffc9f03287bfb9ce7b6\",\n" + + " \"paging_token\": \"208897236363378688\",\n" + + " \"hash\": \"41cfd330183c18bc8b380a46e71769e496199b420356bffc9f03287bfb9ce7b6\",\n" + + " \"prev_hash\": \"fa6f2b3fc10f441a5dfdcd973c73a78cc99f3257271f8da2d9b0bc4e2cf31bcf\",\n" + + " \"sequence\": 48637678,\n" + + " \"successful_transaction_count\": 98,\n" + + " \"failed_transaction_count\": 505,\n" + + " \"operation_count\": 443,\n" + + " \"tx_set_operation_count\": 964,\n" + + " \"closed_at\": \"2023-10-20T04:07:21Z\",\n" + + " \"total_coins\": \"105443902087.3472865\",\n" + + " \"fee_pool\": \"4230801.4837990\",\n" + + " \"base_fee_in_stroops\": 100,\n" + + " \"base_reserve_in_stroops\": 5000000,\n" + + " \"max_tx_set_size\": 1000,\n" + + " \"protocol_version\": 19,\n" + + " \"header_xdr\": \"AAAAE/pvKz/BD0QaXf3Nlzxzp4zJnzJXJx+NotmwvE4s8xvP7qfvEc2qNS7fkzYsE0nuWzTntzk51lygSX3R4OohQqEAAAAAZTH8+QAAAAAAAAABAAAAAAaweClXqq3sjNIHBm/r6o1RY6yR5HqkHJCaZtEEdMUfAAAAQC8qa6+gFLyfrj2BLi7B6TJUF0AXAg5Tao+wfa46XK1Ap9MdCtNekddz5+yIuJfEXpZbDL026omNsGZAXApWWQWaqZFwC16SgweXoVDEoRR5DxOpX1KTw8mYFB1LQ5hXDnP0Q24AyMXFNS5889SWfmKJ23vRjsw2+dJ6d4ldcKKYAuYm7g6iHrPseVthAAAmepoyEOYAAAEWAAAAAFJPSV0AAABkAExLQAAAA+hqOATyc5yeP5Rbm04iZNfUsSSL5gjTrl9qiRrMyVBAmUnSjbHKF9M4otFOBK8dTBPBlwTILohIRKCKLrfzZZ3yAnnNpR07DmDiuC0VFFYqF4mp7+54u0NkorebGPfT+Oyzx+5JqY5nE8H+vi/tc2ytQwnV2PZQhsxBoaVJrJluHgAAAAA=\"\n" + "}"; LedgerResponse ledger = GsonSingleton.getInstance().fromJson(json, LedgerResponse.class); assertEquals( - ledger.getHash(), "686bb246db89b099cd3963a4633eb5e4315d89dfd3c00594c80b41a483847bfa"); - assertEquals(ledger.getPagingToken(), "3860428274794496"); + ledger.getId(), "41cfd330183c18bc8b380a46e71769e496199b420356bffc9f03287bfb9ce7b6"); + assertEquals(ledger.getPagingToken(), "208897236363378688"); + assertEquals( + ledger.getHash(), "41cfd330183c18bc8b380a46e71769e496199b420356bffc9f03287bfb9ce7b6"); assertEquals( - ledger.getPrevHash(), "50c8695eb32171a19858413e397cc50b504ceacc819010bdf8ff873aff7858d7"); - assertEquals(ledger.getSequence(), new Long(898826)); - assertEquals(ledger.getTransactionCount(), new Integer(5)); - assertEquals(ledger.getSuccessfulTransactionCount(), new Integer(3)); - assertEquals(ledger.getFailedTransactionCount(), new Integer(2)); - assertEquals(ledger.getOperationCount(), new Integer(10)); - assertEquals(ledger.getClosedAt(), "2015-11-19T21:35:59Z"); - assertEquals(ledger.getTotalCoins(), "101343867604.8975480"); - assertEquals(ledger.getFeePool(), "1908.2248818"); - assertEquals(ledger.getBaseFee(), new Long(100)); - assertEquals(ledger.getBaseReserve(), "10.0000000"); - assertEquals(ledger.getMaxTxSetSize(), new Integer(50)); - assertEquals(ledger.getProtocolVersion(), new Integer(10)); + ledger.getPrevHash(), "fa6f2b3fc10f441a5dfdcd973c73a78cc99f3257271f8da2d9b0bc4e2cf31bcf"); + assertEquals(ledger.getSequence(), Long.valueOf(48637678)); + assertEquals(ledger.getSuccessfulTransactionCount(), Integer.valueOf(98)); + assertEquals(ledger.getFailedTransactionCount(), Integer.valueOf(505)); + assertEquals(ledger.getOperationCount(), Integer.valueOf(443)); + assertEquals(ledger.getTxSetOperationCount(), Integer.valueOf(964)); + assertEquals(ledger.getClosedAt(), "2023-10-20T04:07:21Z"); + assertEquals(ledger.getTotalCoins(), "105443902087.3472865"); + assertEquals(ledger.getFeePool(), "4230801.4837990"); + assertEquals(ledger.getBaseFeeInStroops(), "100"); + assertEquals(ledger.getBaseReserveInStroops(), "5000000"); + assertEquals(ledger.getMaxTxSetSize(), Integer.valueOf(1000)); + assertEquals(ledger.getProtocolVersion(), Integer.valueOf(19)); assertEquals( ledger.getHeaderXdr(), - "AAAACvkxR60p1bwRO3PdsRy48pkWVtuyF08xyvB3jU7u437r9tK/G7DoXa+J8N5ptWhpHGrc/" - + "a+5k9Ak3kHnZSAaiPgAAAAAW4aHyQAAAAAAAAAAyz4xx/YIt7Z9PLeCHj/ZrFGcDaNSJpQX+jpL1IX3uqSCiFrU4CFidqxjmmJzXNWN1rY4cBwliHN21hicu/" - + "JyawCkgzIOdhy8pVTcbQA+gekx1NpNAAAA2QAAAAAACsLiAAAAZABMS0AAAAAykmy96ckoDVk3UDBm7B4n8oC6+cdCxGDnWu7tO6aU34xipth5GRNy+I5Y8m+E/" - + "bHlElCDX2J8y6kuKr7yU6xvyjMb9nwaii7EHN74adNyyUuselmxQcKfEVf/tj3j5l9yOMqgE05NDyU0+LycHY47062IWxvG0o2yDaaxp2Z72pwAAAAA"); + "AAAAE/pvKz/BD0QaXf3Nlzxzp4zJnzJXJx+NotmwvE4s8xvP7qfvEc2qNS7fkzYsE0nuWzTntzk51lygSX3R4OohQqEAAAAAZTH8+QAAAAAAAAABAAAAAAaweClXqq3sjNIHBm/r6o1RY6yR5HqkHJCaZtEEdMUfAAAAQC8qa6+gFLyfrj2BLi7B6TJUF0AXAg5Tao+wfa46XK1Ap9MdCtNekddz5+yIuJfEXpZbDL026omNsGZAXApWWQWaqZFwC16SgweXoVDEoRR5DxOpX1KTw8mYFB1LQ5hXDnP0Q24AyMXFNS5889SWfmKJ23vRjsw2+dJ6d4ldcKKYAuYm7g6iHrPseVthAAAmepoyEOYAAAEWAAAAAFJPSV0AAABkAExLQAAAA+hqOATyc5yeP5Rbm04iZNfUsSSL5gjTrl9qiRrMyVBAmUnSjbHKF9M4otFOBK8dTBPBlwTILohIRKCKLrfzZZ3yAnnNpR07DmDiuC0VFFYqF4mp7+54u0NkorebGPfT+Oyzx+5JqY5nE8H+vi/tc2ytQwnV2PZQhsxBoaVJrJluHgAAAAA="); + assertEquals( + ledger.getLinks().getSelf().getHref(), "https://horizon.stellar.org/ledgers/48637678"); assertEquals( - ledger.getLinks().getEffects().getHref(), "/ledgers/898826/effects{?cursor,limit,order}"); + ledger.getLinks().getTransactions().getHref(), + "https://horizon.stellar.org/ledgers/48637678/transactions{?cursor,limit,order}"); assertEquals( ledger.getLinks().getOperations().getHref(), - "/ledgers/898826/operations{?cursor,limit,order}"); - assertEquals(ledger.getLinks().getSelf().getHref(), "/ledgers/898826"); + "https://horizon.stellar.org/ledgers/48637678/operations{?cursor,limit,order}"); assertEquals( - ledger.getLinks().getTransactions().getHref(), - "/ledgers/898826/transactions{?cursor,limit,order}"); + ledger.getLinks().getPayments().getHref(), + "https://horizon.stellar.org/ledgers/48637678/payments{?cursor,limit,order}"); + assertEquals( + ledger.getLinks().getEffects().getHref(), + "https://horizon.stellar.org/ledgers/48637678/effects{?cursor,limit,order}"); } } diff --git a/src/test/java/org/stellar/sdk/responses/LedgerPageDeserializerTest.java b/src/test/java/org/stellar/sdk/responses/LedgerPageDeserializerTest.java index 77d74eea9..6b69c442f 100644 --- a/src/test/java/org/stellar/sdk/responses/LedgerPageDeserializerTest.java +++ b/src/test/java/org/stellar/sdk/responses/LedgerPageDeserializerTest.java @@ -12,357 +12,158 @@ public void testDeserialize() { .fromJson(json, new TypeToken>() {}.getType()); assertEquals( ledgersPage.getRecords().get(0).getHash(), - "f6fc9a29b5ecec90348e17a10a60e019c5cb8ea24f66a1063e92c13391b09b8d"); - assertEquals(ledgersPage.getRecords().get(0).getPagingToken(), "3862202096287744"); + "1c47f90760bc6761a75922658093c1302ab8c1275a6dffca0c2f612afcfd05c0"); + assertEquals(ledgersPage.getRecords().get(0).getPagingToken(), "208902149805965312"); assertEquals( - ledgersPage.getRecords().get(9).getHash(), - "8552b7d130e602ed068bcfec729b3056d0c8b94d77f06d91cd1ec8323c2d6177"); + ledgersPage.getRecords().get(2).getHash(), + "f3a99918b9e3be4b2d2d19a49a1058ee3e14c691b2de0c0ab345cf7371b19f08"); assertEquals( ledgersPage.getLinks().getNext().getHref(), - "/ledgers?order=desc&limit=10&cursor=3862163441582080"); + "https://horizon.stellar.org/ledgers?cursor=208902141216030720&limit=3&order=desc"); assertEquals( ledgersPage.getLinks().getPrev().getHref(), - "/ledgers?order=asc&limit=10&cursor=3862202096287744"); + "https://horizon.stellar.org/ledgers?cursor=208902149805965312&limit=3&order=asc"); assertEquals( - ledgersPage.getLinks().getSelf().getHref(), "/ledgers?order=desc&limit=10&cursor="); + ledgersPage.getLinks().getSelf().getHref(), + "https://horizon.stellar.org/ledgers?cursor=&limit=3&order=desc"); } String json = "{\n" + + " \"_links\": {\n" + + " \"self\": {\n" + + " \"href\": \"https://horizon.stellar.org/ledgers?cursor=&limit=3&order=desc\"\n" + + " },\n" + + " \"next\": {\n" + + " \"href\": \"https://horizon.stellar.org/ledgers?cursor=208902141216030720&limit=3&order=desc\"\n" + + " },\n" + + " \"prev\": {\n" + + " \"href\": \"https://horizon.stellar.org/ledgers?cursor=208902149805965312&limit=3&order=asc\"\n" + + " }\n" + + " },\n" + " \"_embedded\": {\n" + " \"records\": [\n" + " {\n" + " \"_links\": {\n" - + " \"effects\": {\n" - + " \"href\": \"/ledgers/899239/effects{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " },\n" - + " \"operations\": {\n" - + " \"href\": \"/ledgers/899239/operations{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " },\n" + " \"self\": {\n" - + " \"href\": \"/ledgers/899239\"\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48638822\"\n" + " },\n" + " \"transactions\": {\n" - + " \"href\": \"/ledgers/899239/transactions{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " }\n" - + " },\n" - + " \"id\": \"f6fc9a29b5ecec90348e17a10a60e019c5cb8ea24f66a1063e92c13391b09b8d\",\n" - + " \"paging_token\": \"3862202096287744\",\n" - + " \"hash\": \"f6fc9a29b5ecec90348e17a10a60e019c5cb8ea24f66a1063e92c13391b09b8d\",\n" - + " \"prev_hash\": \"0bc807d3be86e8a9f7c913bc0e408f67402f50fbf4c0ea6583bc0f788075a567\",\n" - + " \"sequence\": 899239,\n" - + " \"transaction_count\": 0,\n" - + " \"operation_count\": 0,\n" - + " \"closed_at\": \"2015-11-19T22:01:34Z\",\n" - + " \"total_coins\": \"101343867604.8975480\",\n" - + " \"fee_pool\": \"1908.2251218\",\n" - + " \"base_fee\": 100,\n" - + " \"base_reserve\": \"10.0000000\",\n" - + " \"max_tx_set_size\": 50\n" - + " },\n" - + " {\n" - + " \"_links\": {\n" - + " \"effects\": {\n" - + " \"href\": \"/ledgers/899238/effects{?cursor,limit,order}\",\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48638822/transactions{?cursor,limit,order}\",\n" + " \"templated\": true\n" + " },\n" + " \"operations\": {\n" - + " \"href\": \"/ledgers/899238/operations{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " },\n" - + " \"self\": {\n" - + " \"href\": \"/ledgers/899238\"\n" - + " },\n" - + " \"transactions\": {\n" - + " \"href\": \"/ledgers/899238/transactions{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " }\n" - + " },\n" - + " \"id\": \"0bc807d3be86e8a9f7c913bc0e408f67402f50fbf4c0ea6583bc0f788075a567\",\n" - + " \"paging_token\": \"3862197801320448\",\n" - + " \"hash\": \"0bc807d3be86e8a9f7c913bc0e408f67402f50fbf4c0ea6583bc0f788075a567\",\n" - + " \"prev_hash\": \"4a88c758baf11ff4265df0d7b304b737db7c7fad4b605deb887abaa1994c9be7\",\n" - + " \"sequence\": 899238,\n" - + " \"transaction_count\": 0,\n" - + " \"operation_count\": 0,\n" - + " \"closed_at\": \"2015-11-19T22:01:27Z\",\n" - + " \"total_coins\": \"101343867604.8975480\",\n" - + " \"fee_pool\": \"1908.2251218\",\n" - + " \"base_fee\": 100,\n" - + " \"base_reserve\": \"10.0000000\",\n" - + " \"max_tx_set_size\": 50\n" - + " },\n" - + " {\n" - + " \"_links\": {\n" - + " \"effects\": {\n" - + " \"href\": \"/ledgers/899237/effects{?cursor,limit,order}\",\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48638822/operations{?cursor,limit,order}\",\n" + " \"templated\": true\n" + " },\n" - + " \"operations\": {\n" - + " \"href\": \"/ledgers/899237/operations{?cursor,limit,order}\",\n" + + " \"payments\": {\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48638822/payments{?cursor,limit,order}\",\n" + " \"templated\": true\n" + " },\n" - + " \"self\": {\n" - + " \"href\": \"/ledgers/899237\"\n" - + " },\n" - + " \"transactions\": {\n" - + " \"href\": \"/ledgers/899237/transactions{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " }\n" - + " },\n" - + " \"id\": \"4a88c758baf11ff4265df0d7b304b737db7c7fad4b605deb887abaa1994c9be7\",\n" - + " \"paging_token\": \"3862193506353152\",\n" - + " \"hash\": \"4a88c758baf11ff4265df0d7b304b737db7c7fad4b605deb887abaa1994c9be7\",\n" - + " \"prev_hash\": \"6c8c24c0f4668e8f67d868bbfc851863f309da50f70341607a442f201da17190\",\n" - + " \"sequence\": 899237,\n" - + " \"transaction_count\": 0,\n" - + " \"operation_count\": 0,\n" - + " \"closed_at\": \"2015-11-19T22:01:25Z\",\n" - + " \"total_coins\": \"101343867604.8975480\",\n" - + " \"fee_pool\": \"1908.2251218\",\n" - + " \"base_fee\": 100,\n" - + " \"base_reserve\": \"10.0000000\",\n" - + " \"max_tx_set_size\": 50\n" - + " },\n" - + " {\n" - + " \"_links\": {\n" + " \"effects\": {\n" - + " \"href\": \"/ledgers/899236/effects{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " },\n" - + " \"operations\": {\n" - + " \"href\": \"/ledgers/899236/operations{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " },\n" - + " \"self\": {\n" - + " \"href\": \"/ledgers/899236\"\n" - + " },\n" - + " \"transactions\": {\n" - + " \"href\": \"/ledgers/899236/transactions{?cursor,limit,order}\",\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48638822/effects{?cursor,limit,order}\",\n" + " \"templated\": true\n" + " }\n" + " },\n" - + " \"id\": \"6c8c24c0f4668e8f67d868bbfc851863f309da50f70341607a442f201da17190\",\n" - + " \"paging_token\": \"3862189211385856\",\n" - + " \"hash\": \"6c8c24c0f4668e8f67d868bbfc851863f309da50f70341607a442f201da17190\",\n" - + " \"prev_hash\": \"32efbdd295310a379621bda41397258708e5a4e606ad3c33c5a343289979ee7f\",\n" - + " \"sequence\": 899236,\n" - + " \"transaction_count\": 0,\n" - + " \"operation_count\": 0,\n" - + " \"closed_at\": \"2015-11-19T22:01:20Z\",\n" - + " \"total_coins\": \"101343867604.8975480\",\n" - + " \"fee_pool\": \"1908.2251218\",\n" - + " \"base_fee\": 100,\n" - + " \"base_reserve\": \"10.0000000\",\n" - + " \"max_tx_set_size\": 50\n" + + " \"id\": \"1c47f90760bc6761a75922658093c1302ab8c1275a6dffca0c2f612afcfd05c0\",\n" + + " \"paging_token\": \"208902149805965312\",\n" + + " \"hash\": \"1c47f90760bc6761a75922658093c1302ab8c1275a6dffca0c2f612afcfd05c0\",\n" + + " \"prev_hash\": \"c1f60e0626a21e7d6375300b22a2cd0c1a18b07b78853f883b8836e827df475a\",\n" + + " \"sequence\": 48638822,\n" + + " \"successful_transaction_count\": 118,\n" + + " \"failed_transaction_count\": 64,\n" + + " \"operation_count\": 395,\n" + + " \"tx_set_operation_count\": 471,\n" + + " \"closed_at\": \"2023-10-20T06:00:47Z\",\n" + + " \"total_coins\": \"105443902087.3472865\",\n" + + " \"fee_pool\": \"4230864.3905680\",\n" + + " \"base_fee_in_stroops\": 100,\n" + + " \"base_reserve_in_stroops\": 5000000,\n" + + " \"max_tx_set_size\": 1000,\n" + + " \"protocol_version\": 19,\n" + + " \"header_xdr\": \"AAAAE8H2DgYmoh59Y3UwCyKizQwaGLB7eIU/iDuINugn30daLWY7+UaK4yKpdCFQAWcJA4l1Rq7rDNFAq4r1QH6bimkAAAAAZTIXjwAAAAAAAAABAAAAAFaWt2CucvNouAYniCiCbacMYpTGlVK3TqKyoNF3RcOeAAAAQEAYeHnLlZs5XT5NcDpfeNwY6Dll7aKicGYJeIW/doF/sxZY8whV3hePJ1ARx58qKeO0sr0K8oVEmfc5a+3qOAIarXr3MA9nr4vrda61LC0Zki97fz6hGeY2R2kaHvZOD3SCQC9g5lZIwKuNE9Ielxy1Rq/0hj+SOUe0u7HRwrWxAuYrZg6iHrPseVthAAAmer+w4JAAAAEWAAAAAFJQkowAAABkAExLQAAAA+iQpli0ZPueCHp7QYx758RcXpCE58SPU3HPXfuDGFXHGEnSjbHKF9M4otFOBK8dTBPBlwTILohIRKCKLrfzZZ3yAnnNpR07DmDiuC0VFFYqF4mp7+54u0NkorebGPfT+Oyzx+5JqY5nE8H+vi/tc2ytQwnV2PZQhsxBoaVJrJluHgAAAAA=\"\n" + " },\n" + " {\n" + " \"_links\": {\n" - + " \"effects\": {\n" - + " \"href\": \"/ledgers/899235/effects{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " },\n" - + " \"operations\": {\n" - + " \"href\": \"/ledgers/899235/operations{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " },\n" + " \"self\": {\n" - + " \"href\": \"/ledgers/899235\"\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48638821\"\n" + " },\n" + " \"transactions\": {\n" - + " \"href\": \"/ledgers/899235/transactions{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " }\n" - + " },\n" - + " \"id\": \"32efbdd295310a379621bda41397258708e5a4e606ad3c33c5a343289979ee7f\",\n" - + " \"paging_token\": \"3862184916418560\",\n" - + " \"hash\": \"32efbdd295310a379621bda41397258708e5a4e606ad3c33c5a343289979ee7f\",\n" - + " \"prev_hash\": \"65349e138f295aff14f30d1bcce6f9fb76055ca561004416194572e90cb2d05f\",\n" - + " \"sequence\": 899235,\n" - + " \"transaction_count\": 0,\n" - + " \"operation_count\": 0,\n" - + " \"closed_at\": \"2015-11-19T22:01:15Z\",\n" - + " \"total_coins\": \"101343867604.8975480\",\n" - + " \"fee_pool\": \"1908.2251218\",\n" - + " \"base_fee\": 100,\n" - + " \"base_reserve\": \"10.0000000\",\n" - + " \"max_tx_set_size\": 50\n" - + " },\n" - + " {\n" - + " \"_links\": {\n" - + " \"effects\": {\n" - + " \"href\": \"/ledgers/899234/effects{?cursor,limit,order}\",\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48638821/transactions{?cursor,limit,order}\",\n" + " \"templated\": true\n" + " },\n" + " \"operations\": {\n" - + " \"href\": \"/ledgers/899234/operations{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " },\n" - + " \"self\": {\n" - + " \"href\": \"/ledgers/899234\"\n" - + " },\n" - + " \"transactions\": {\n" - + " \"href\": \"/ledgers/899234/transactions{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " }\n" - + " },\n" - + " \"id\": \"65349e138f295aff14f30d1bcce6f9fb76055ca561004416194572e90cb2d05f\",\n" - + " \"paging_token\": \"3862180621451264\",\n" - + " \"hash\": \"65349e138f295aff14f30d1bcce6f9fb76055ca561004416194572e90cb2d05f\",\n" - + " \"prev_hash\": \"ec548930241d677c712381cfc72b0c57bd4c0ce10ef7e7c3b7c693387f932aa5\",\n" - + " \"sequence\": 899234,\n" - + " \"transaction_count\": 0,\n" - + " \"operation_count\": 0,\n" - + " \"closed_at\": \"2015-11-19T22:01:12Z\",\n" - + " \"total_coins\": \"101343867604.8975480\",\n" - + " \"fee_pool\": \"1908.2251218\",\n" - + " \"base_fee\": 100,\n" - + " \"base_reserve\": \"10.0000000\",\n" - + " \"max_tx_set_size\": 50\n" - + " },\n" - + " {\n" - + " \"_links\": {\n" - + " \"effects\": {\n" - + " \"href\": \"/ledgers/899233/effects{?cursor,limit,order}\",\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48638821/operations{?cursor,limit,order}\",\n" + " \"templated\": true\n" + " },\n" - + " \"operations\": {\n" - + " \"href\": \"/ledgers/899233/operations{?cursor,limit,order}\",\n" + + " \"payments\": {\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48638821/payments{?cursor,limit,order}\",\n" + " \"templated\": true\n" + " },\n" - + " \"self\": {\n" - + " \"href\": \"/ledgers/899233\"\n" - + " },\n" - + " \"transactions\": {\n" - + " \"href\": \"/ledgers/899233/transactions{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " }\n" - + " },\n" - + " \"id\": \"ec548930241d677c712381cfc72b0c57bd4c0ce10ef7e7c3b7c693387f932aa5\",\n" - + " \"paging_token\": \"3862176326483968\",\n" - + " \"hash\": \"ec548930241d677c712381cfc72b0c57bd4c0ce10ef7e7c3b7c693387f932aa5\",\n" - + " \"prev_hash\": \"03dfe28b30dad13a95eaf20681613ecad1795f527182103524e1f5b106fefd53\",\n" - + " \"sequence\": 899233,\n" - + " \"transaction_count\": 0,\n" - + " \"operation_count\": 0,\n" - + " \"closed_at\": \"2015-11-19T22:01:09Z\",\n" - + " \"total_coins\": \"101343867604.8975480\",\n" - + " \"fee_pool\": \"1908.2251218\",\n" - + " \"base_fee\": 100,\n" - + " \"base_reserve\": \"10.0000000\",\n" - + " \"max_tx_set_size\": 50\n" - + " },\n" - + " {\n" - + " \"_links\": {\n" + " \"effects\": {\n" - + " \"href\": \"/ledgers/899232/effects{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " },\n" - + " \"operations\": {\n" - + " \"href\": \"/ledgers/899232/operations{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " },\n" - + " \"self\": {\n" - + " \"href\": \"/ledgers/899232\"\n" - + " },\n" - + " \"transactions\": {\n" - + " \"href\": \"/ledgers/899232/transactions{?cursor,limit,order}\",\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48638821/effects{?cursor,limit,order}\",\n" + " \"templated\": true\n" + " }\n" + " },\n" - + " \"id\": \"03dfe28b30dad13a95eaf20681613ecad1795f527182103524e1f5b106fefd53\",\n" - + " \"paging_token\": \"3862172031516672\",\n" - + " \"hash\": \"03dfe28b30dad13a95eaf20681613ecad1795f527182103524e1f5b106fefd53\",\n" - + " \"prev_hash\": \"03abed895270fd6a534c7d8813778e932dd6b5894aa350b085ce8d9e46ce32fa\",\n" - + " \"sequence\": 899232,\n" - + " \"transaction_count\": 0,\n" - + " \"operation_count\": 0,\n" - + " \"closed_at\": \"2015-11-19T22:01:05Z\",\n" - + " \"total_coins\": \"101343867604.8975480\",\n" - + " \"fee_pool\": \"1908.2251218\",\n" - + " \"base_fee\": 100,\n" - + " \"base_reserve\": \"10.0000000\",\n" - + " \"max_tx_set_size\": 50\n" + + " \"id\": \"c1f60e0626a21e7d6375300b22a2cd0c1a18b07b78853f883b8836e827df475a\",\n" + + " \"paging_token\": \"208902145510998016\",\n" + + " \"hash\": \"c1f60e0626a21e7d6375300b22a2cd0c1a18b07b78853f883b8836e827df475a\",\n" + + " \"prev_hash\": \"f3a99918b9e3be4b2d2d19a49a1058ee3e14c691b2de0c0ab345cf7371b19f08\",\n" + + " \"sequence\": 48638821,\n" + + " \"successful_transaction_count\": 107,\n" + + " \"failed_transaction_count\": 171,\n" + + " \"operation_count\": 321,\n" + + " \"tx_set_operation_count\": 493,\n" + + " \"closed_at\": \"2023-10-20T06:00:40Z\",\n" + + " \"total_coins\": \"105443902087.3472865\",\n" + + " \"fee_pool\": \"4230864.3858480\",\n" + + " \"base_fee_in_stroops\": 100,\n" + + " \"base_reserve_in_stroops\": 5000000,\n" + + " \"max_tx_set_size\": 1000,\n" + + " \"protocol_version\": 19,\n" + + " \"header_xdr\": \"AAAAE/OpmRi5475LLS0ZpJoQWO4+FMaRst4MCrNFz3NxsZ8IKazZrKli28IjrqWNyZhzpZd/CXg3aMKnQVq83NvDJd8AAAAAZTIXiAAAAAAAAAABAAAAAFMKIvR3Lya8FJ+cNeaJjXTX3wCSqBxw3WYftnPvFVHeAAAAQMhQ82GdXyFDjpCzBC/4ZSW5SYDw5VjL5fyv/YQ4IltiSqKgUqaK0XNm2Pma5nKByEVvTgOqpeIUBnAxwCXlpAThqEzjvZ0BPLeGnA5YIODGbJWr7E8sq59l2JmSkWmT6uJAEKjmiDZ7qbQICtqGsO2d8dVSAE0Gs9ZmJZCvpVQkAuYrZQ6iHrPseVthAAAmer+wKDAAAAEWAAAAAFJQkk4AAABkAExLQAAAA+iQpli0ZPueCHp7QYx758RcXpCE58SPU3HPXfuDGFXHGEnSjbHKF9M4otFOBK8dTBPBlwTILohIRKCKLrfzZZ3yAnnNpR07DmDiuC0VFFYqF4mp7+54u0NkorebGPfT+Oyzx+5JqY5nE8H+vi/tc2ytQwnV2PZQhsxBoaVJrJluHgAAAAA=\"\n" + " },\n" + " {\n" + " \"_links\": {\n" - + " \"effects\": {\n" - + " \"href\": \"/ledgers/899231/effects{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " },\n" - + " \"operations\": {\n" - + " \"href\": \"/ledgers/899231/operations{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " },\n" + " \"self\": {\n" - + " \"href\": \"/ledgers/899231\"\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48638820\"\n" + " },\n" + " \"transactions\": {\n" - + " \"href\": \"/ledgers/899231/transactions{?cursor,limit,order}\",\n" - + " \"templated\": true\n" - + " }\n" - + " },\n" - + " \"id\": \"03abed895270fd6a534c7d8813778e932dd6b5894aa350b085ce8d9e46ce32fa\",\n" - + " \"paging_token\": \"3862167736549376\",\n" - + " \"hash\": \"03abed895270fd6a534c7d8813778e932dd6b5894aa350b085ce8d9e46ce32fa\",\n" - + " \"prev_hash\": \"8552b7d130e602ed068bcfec729b3056d0c8b94d77f06d91cd1ec8323c2d6177\",\n" - + " \"sequence\": 899231,\n" - + " \"transaction_count\": 0,\n" - + " \"operation_count\": 0,\n" - + " \"closed_at\": \"2015-11-19T22:01:02Z\",\n" - + " \"total_coins\": \"101343867604.8975480\",\n" - + " \"fee_pool\": \"1908.2251218\",\n" - + " \"base_fee\": 100,\n" - + " \"base_reserve\": \"10.0000000\",\n" - + " \"max_tx_set_size\": 50\n" - + " },\n" - + " {\n" - + " \"_links\": {\n" - + " \"effects\": {\n" - + " \"href\": \"/ledgers/899230/effects{?cursor,limit,order}\",\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48638820/transactions{?cursor,limit,order}\",\n" + " \"templated\": true\n" + " },\n" + " \"operations\": {\n" - + " \"href\": \"/ledgers/899230/operations{?cursor,limit,order}\",\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48638820/operations{?cursor,limit,order}\",\n" + " \"templated\": true\n" + " },\n" - + " \"self\": {\n" - + " \"href\": \"/ledgers/899230\"\n" + + " \"payments\": {\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48638820/payments{?cursor,limit,order}\",\n" + + " \"templated\": true\n" + " },\n" - + " \"transactions\": {\n" - + " \"href\": \"/ledgers/899230/transactions{?cursor,limit,order}\",\n" + + " \"effects\": {\n" + + " \"href\": \"https://horizon.stellar.org/ledgers/48638820/effects{?cursor,limit,order}\",\n" + " \"templated\": true\n" + " }\n" + " },\n" - + " \"id\": \"8552b7d130e602ed068bcfec729b3056d0c8b94d77f06d91cd1ec8323c2d6177\",\n" - + " \"paging_token\": \"3862163441582080\",\n" - + " \"hash\": \"8552b7d130e602ed068bcfec729b3056d0c8b94d77f06d91cd1ec8323c2d6177\",\n" - + " \"prev_hash\": \"62efa4d5059f438aef2e3c059162b8fca9c59317bdbdd1b04dc92924302a455e\",\n" - + " \"sequence\": 899230,\n" - + " \"transaction_count\": 0,\n" - + " \"operation_count\": 0,\n" - + " \"closed_at\": \"2015-11-19T22:00:59Z\",\n" - + " \"total_coins\": \"101343867604.8975480\",\n" - + " \"fee_pool\": \"1908.2251218\",\n" - + " \"base_fee\": 100,\n" - + " \"base_reserve\": \"10.0000000\",\n" - + " \"max_tx_set_size\": 50\n" + + " \"id\": \"f3a99918b9e3be4b2d2d19a49a1058ee3e14c691b2de0c0ab345cf7371b19f08\",\n" + + " \"paging_token\": \"208902141216030720\",\n" + + " \"hash\": \"f3a99918b9e3be4b2d2d19a49a1058ee3e14c691b2de0c0ab345cf7371b19f08\",\n" + + " \"prev_hash\": \"1cf89c5a76f3a0ed4b60077a6f17399e83a38d2d2eb81ecb66893930a4f2f4ca\",\n" + + " \"sequence\": 48638820,\n" + + " \"successful_transaction_count\": 100,\n" + + " \"failed_transaction_count\": 144,\n" + + " \"operation_count\": 373,\n" + + " \"tx_set_operation_count\": 523,\n" + + " \"closed_at\": \"2023-10-20T06:00:35Z\",\n" + + " \"total_coins\": \"105443902087.3472865\",\n" + + " \"fee_pool\": \"4230864.3809180\",\n" + + " \"base_fee_in_stroops\": 100,\n" + + " \"base_reserve_in_stroops\": 5000000,\n" + + " \"max_tx_set_size\": 1000,\n" + + " \"protocol_version\": 19,\n" + + " \"header_xdr\": \"AAAAExz4nFp286DtS2AHem8XOZ6Do40tLrgey2aJOTCk8vTKxo0OIVaAQ9y6YvR4wW88JNf6pXS364wqZFe5rBZLqogAAAAAZTIXgwAAAAAAAAABAAAAADPN/Tz0hFfkg11MNisvWV3/3TyFQUjJNY5VqfZfvQp7AAAAQF6QJM4hGy0NYD0Q60KnRj39I2+Jr9uiY4obqLLDaT+az5X6HAaD9GeEX+7iPKD3eE7aylrfANYBIjuRbcpHxAo9Sfqi/qTCAr0Y5vQw3JqxViZthEzefMMjrzEh8cp/FqMQsqL2tmhp542WBRxt6rfv+wM11/aH5TpVgXngme32AuYrZA6iHrPseVthAAAmer+vZ5wAAAEWAAAAAFJQki0AAABkAExLQAAAA+iQpli0ZPueCHp7QYx758RcXpCE58SPU3HPXfuDGFXHGEnSjbHKF9M4otFOBK8dTBPBlwTILohIRKCKLrfzZZ3yAnnNpR07DmDiuC0VFFYqF4mp7+54u0NkorebGPfT+Oyzx+5JqY5nE8H+vi/tc2ytQwnV2PZQhsxBoaVJrJluHgAAAAA=\"\n" + " }\n" + " ]\n" - + " },\n" - + " \"_links\": {\n" - + " \"next\": {\n" - + " \"href\": \"/ledgers?order=desc\\u0026limit=10\\u0026cursor=3862163441582080\"\n" - + " },\n" - + " \"prev\": {\n" - + " \"href\": \"/ledgers?order=asc\\u0026limit=10\\u0026cursor=3862202096287744\"\n" - + " },\n" - + " \"self\": {\n" - + " \"href\": \"/ledgers?order=desc\\u0026limit=10\\u0026cursor=\"\n" - + " }\n" + " }\n" - + "}"; + + "}\n"; }