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";
}