From f56119d5d4e6fa624958e79dcd6c08182b68e77d Mon Sep 17 00:00:00 2001
From: Jun Luo <4catcode@gmail.com>
Date: Tue, 7 Oct 2025 08:07:26 +0800
Subject: [PATCH] feat: add `AUTH_CLAWBACK_ENABLED_FLAG` to `AccountFlag`.
---
CHANGELOG.md | 3 +++
src/main/java/org/stellar/sdk/AccountFlag.java | 8 ++++++--
.../org/stellar/sdk/operations/SetOptionsOperation.java | 9 +++++----
src/test/java/org/stellar/sdk/AccountFlagTest.java | 1 +
4 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ffb8b3a69..169b4a7be 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,9 @@
## Pending
+### Update:
+- feat: add `AUTH_CLAWBACK_ENABLED_FLAG` to `AccountFlag`.
+
## 2.1.0
### Update:
diff --git a/src/main/java/org/stellar/sdk/AccountFlag.java b/src/main/java/org/stellar/sdk/AccountFlag.java
index 63cd1453e..00cf3905d 100644
--- a/src/main/java/org/stellar/sdk/AccountFlag.java
+++ b/src/main/java/org/stellar/sdk/AccountFlag.java
@@ -27,9 +27,13 @@ public enum AccountFlag {
* Authorization immutable (0x4): If this is set then none of the authorization flags can be set
* and the account can never be deleted.
*/
- AUTH_IMMUTABLE_FLAG(AccountFlags.AUTH_IMMUTABLE_FLAG.getValue());
+ AUTH_IMMUTABLE_FLAG(AccountFlags.AUTH_IMMUTABLE_FLAG.getValue()),
- // TODO: Add Clawback Enabled flag
+ /**
+ * Authorization clawback enabled (0x8): Allows the issuing account to clawback its credit held by
+ * other accounts. This flag requires that {@link #AUTH_REVOCABLE_FLAG} is also set.
+ */
+ AUTH_CLAWBACK_ENABLED_FLAG(AccountFlags.AUTH_CLAWBACK_ENABLED_FLAG.getValue());
private final int value;
diff --git a/src/main/java/org/stellar/sdk/operations/SetOptionsOperation.java b/src/main/java/org/stellar/sdk/operations/SetOptionsOperation.java
index 20691568e..cb453f4fd 100644
--- a/src/main/java/org/stellar/sdk/operations/SetOptionsOperation.java
+++ b/src/main/java/org/stellar/sdk/operations/SetOptionsOperation.java
@@ -34,15 +34,16 @@ public class SetOptionsOperation extends Operation {
/**
* Indicates which flags to clear. For details about the flags, please refer to the accounts doc.
- * You can also use {@link AccountFlag} enum.
+ * href="https://developers.stellar.org/docs/learn/glossary#flags" target="_blank">accounts
+ * doc. You can also use {@link AccountFlag} enum.
*/
+ // TODO: change to EnumSet in next major release
@Nullable private final Integer clearFlags;
/**
* Indicates which flags to set. For details about the flags, please refer to the accounts doc.
- * You can also use {@link AccountFlag} enum.
+ * href="https://developers.stellar.org/docs/learn/glossary#flags" target="_blank">accounts
+ * doc. You can also use {@link AccountFlag} enum.
*/
@Nullable private final Integer setFlags;
diff --git a/src/test/java/org/stellar/sdk/AccountFlagTest.java b/src/test/java/org/stellar/sdk/AccountFlagTest.java
index 16b003ebd..bfbf8b966 100644
--- a/src/test/java/org/stellar/sdk/AccountFlagTest.java
+++ b/src/test/java/org/stellar/sdk/AccountFlagTest.java
@@ -10,5 +10,6 @@ public void testValues() {
assertEquals(1, AccountFlag.AUTH_REQUIRED_FLAG.getValue());
assertEquals(2, AccountFlag.AUTH_REVOCABLE_FLAG.getValue());
assertEquals(4, AccountFlag.AUTH_IMMUTABLE_FLAG.getValue());
+ assertEquals(8, AccountFlag.AUTH_CLAWBACK_ENABLED_FLAG.getValue());
}
}