From 2337d340e57c7ba4e313b943a98d44854cfc80cd Mon Sep 17 00:00:00 2001 From: tequ Date: Fri, 17 Oct 2025 18:56:46 +0900 Subject: [PATCH] Allow delegation for Sponsorship transactions --- include/xrpl/protocol/detail/transactions.macro | 4 ++-- src/test/app/Delegate_test.cpp | 5 ++++- src/xrpld/app/tx/detail/SponsorshipSet.cpp | 3 --- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/xrpl/protocol/detail/transactions.macro b/include/xrpl/protocol/detail/transactions.macro index 47a774e7b9..2ddd871074 100644 --- a/include/xrpl/protocol/detail/transactions.macro +++ b/include/xrpl/protocol/detail/transactions.macro @@ -949,7 +949,7 @@ TRANSACTION(ttBATCH, 71, Batch, # include #endif TRANSACTION(ttSPONSORSHIP_TRANSFER, 72, SponsorshipTransfer, - Delegation::notDelegatable, + Delegation::delegatable, featureSponsor, noPriv, ({ @@ -961,7 +961,7 @@ TRANSACTION(ttSPONSORSHIP_TRANSFER, 72, SponsorshipTransfer, # include #endif TRANSACTION(ttSPONSORSHIP_SET, 73, SponsorshipSet, - Delegation::notDelegatable, + Delegation::delegatable, featureSponsor, noPriv, ({ diff --git a/src/test/app/Delegate_test.cpp b/src/test/app/Delegate_test.cpp index ea5e073a55..d328bdd279 100644 --- a/src/test/app/Delegate_test.cpp +++ b/src/test/app/Delegate_test.cpp @@ -1718,7 +1718,10 @@ class Delegate_test : public beast::unit_test::suite {"VaultDelete", featureSingleAssetVault}, {"VaultDeposit", featureSingleAssetVault}, {"VaultWithdraw", featureSingleAssetVault}, - {"VaultClawback", featureSingleAssetVault}}; + {"VaultClawback", featureSingleAssetVault}, + {"SponsorshipTransfer", featureSponsor}, + {"SponsorshipSet", featureSponsor}, + }; // fixDelegateV1_1 post-amendment: can not delegate tx if any // required feature disabled. diff --git a/src/xrpld/app/tx/detail/SponsorshipSet.cpp b/src/xrpld/app/tx/detail/SponsorshipSet.cpp index 08e8f08165..f89e289319 100644 --- a/src/xrpld/app/tx/detail/SponsorshipSet.cpp +++ b/src/xrpld/app/tx/detail/SponsorshipSet.cpp @@ -95,14 +95,11 @@ SponsorshipSet::preflight(PreflightContext const& ctx) if (maxFee.xrp().drops() <= 0) return temBAD_AMOUNT; - - // TODO: check maxFee > basefee } if (ctx.tx.isFieldPresent(sfReserveCount)) { auto const reserveCount = ctx.tx.getFieldU32(sfReserveCount); - // TODO: max reserveCount? if (reserveCount < 1) return temMALFORMED; }