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()); } }