From adc596c3d2693bb1abe68d262458e9e0a2db4bbe Mon Sep 17 00:00:00 2001 From: Tim Emiola Date: Wed, 17 Jun 2026 13:58:05 +0900 Subject: [PATCH 01/11] [ci] Switch default network reward config to use traffic-based app rewards Signed-off-by: Tim Emiola --- .../lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala index 78d9a2120c..9edd6b9a8f 100644 --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala @@ -117,7 +117,7 @@ object SvOnboardingConfig { developmentFundManager: Option[PartyId] = None, initialExternalPartyConfigStateTickDuration: Option[NonNegativeFiniteDuration] = None, optValidatorFaucetCap: Option[BigDecimal] = None, - initialRewardConfig: Option[InitialRewardConfig] = None, + initialRewardConfig: Option[InitialRewardConfig] = Some(InitialRewardConfig()), ) extends SvOnboardingConfig case class JoinWithKey( @@ -242,7 +242,7 @@ object SvOnboardingConfig { } final case class InitialRewardConfig( - mintingVersion: String = "RewardVersion_FeaturedAppMarkers", + mintingVersion: String = "RewardVersion_TrafficBasedAppRewards", dryRunVersion: Option[String] = None, batchSize: Long = 100, rewardCouponTimeToLiveMicros: Long = 36L * 60 * 60 * 1000000, // 36 hours From 5187981d746233ee8eae226351d1aa4c3877c16d Mon Sep 17 00:00:00 2001 From: Tim Emiola Date: Wed, 17 Jun 2026 15:29:49 +0900 Subject: [PATCH 02/11] [ci] Opt out failing tests from TBAR default with withoutRewardConfig Signed-off-by: Tim Emiola --- .../splice/config/ConfigTransforms.scala | 3 +++ ...uletExpiryWithOldPackageIntegrationTest.scala | 1 + ...ternalPartySetupProposalIntegrationTest.scala | 1 + ...eaturedAppActivityMarkerIntegrationTest.scala | 1 + .../tests/SplitwellIntegrationTest.scala | 2 ++ ...wardsCollectionTimeBasedIntegrationTest.scala | 16 +++++++++------- .../TokenStandardAllocationIntegrationTest.scala | 2 ++ ...wardsCollectionTimeBasedIntegrationTest.scala | 1 + 8 files changed, 20 insertions(+), 7 deletions(-) diff --git a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/config/ConfigTransforms.scala b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/config/ConfigTransforms.scala index 09f61da17a..784f9f7f3e 100644 --- a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/config/ConfigTransforms.scala +++ b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/config/ConfigTransforms.scala @@ -809,6 +809,9 @@ object ConfigTransforms { ): ConfigTransform = updateAllSvAppFoundDsoConfigs_(c => c.copy(initialRewardConfig = Some(rewardConfig))) + def withoutRewardConfig: ConfigTransform = + updateAllSvAppFoundDsoConfigs_(c => c.copy(initialRewardConfig = None)) + private def portTransform(bump: Int, c: AdminServerConfig): AdminServerConfig = c.copy(internalPort = c.internalPort.map(_ + bump)) diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AmuletExpiryWithOldPackageIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AmuletExpiryWithOldPackageIntegrationTest.scala index ceb4cfa41a..5d9fd243ee 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AmuletExpiryWithOldPackageIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AmuletExpiryWithOldPackageIntegrationTest.scala @@ -69,6 +69,7 @@ abstract class AmuletExpiryWithOldPackageIntegrationTestBase .simpleTopology1Sv(this.getClass.getSimpleName) .withNoVettedPackages(implicit env => env.validators.local.map(_.participantClient)) .withTrafficTopupsDisabled + .addConfigTransform((_, config) => ConfigTransforms.withoutRewardConfig(config)) .addConfigTransforms( (_, c) => ConfigTransforms.updateInitialTickDuration(NonNegativeFiniteDuration.ofMillis(500))(c), diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala index a6b4b8fab9..3867dfaaa4 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala @@ -75,6 +75,7 @@ class ExternalPartySetupProposalIntegrationTest override def environmentDefinition: EnvironmentDefinition = { EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) + .addConfigTransform((_, config) => ConfigTransforms.withoutRewardConfig(config)) .addConfigTransforms( // set renewal duration to be same as pre-approval lifetime to ensure renewal // gets triggered immediately diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/FeaturedAppActivityMarkerIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/FeaturedAppActivityMarkerIntegrationTest.scala index 8d96cd2797..033bad9eb3 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/FeaturedAppActivityMarkerIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/FeaturedAppActivityMarkerIntegrationTest.scala @@ -32,6 +32,7 @@ class FeaturedAppActivityMarkerIntegrationTest EnvironmentDefinition // Using 4Svs so that we see whether they manage to jointly complete all work .simpleTopology4Svs(this.getClass.getSimpleName) + .addConfigTransform((_, config) => ConfigTransforms.withoutRewardConfig(config)) .addConfigTransforms((_, config) => ConfigTransforms.updateAllSvAppFoundDsoConfigs_( _.copy( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellIntegrationTest.scala index 9f18a8cec9..37b91f2287 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellIntegrationTest.scala @@ -3,6 +3,7 @@ package org.lfdecentralizedtrust.splice.integration.tests import com.digitalasset.canton.SynchronizerAlias import org.lfdecentralizedtrust.splice.codegen.java.splice.splitwell as splitwellCodegen import org.lfdecentralizedtrust.splice.codegen.java.splice.wallet.payment as walletCodegen +import org.lfdecentralizedtrust.splice.config.ConfigTransforms import org.lfdecentralizedtrust.splice.integration.EnvironmentDefinition import org.lfdecentralizedtrust.splice.integration.tests.SpliceTests.IntegrationTest import org.lfdecentralizedtrust.splice.splitwell.automation.AcceptedAppPaymentRequestsTrigger @@ -20,6 +21,7 @@ class SplitwellIntegrationTest override def environmentDefinition: SpliceEnvironmentDefinition = EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) + .addConfigTransform((_, config) => ConfigTransforms.withoutRewardConfig(config)) .withAdditionalSetup(implicit env => { aliceValidatorBackend.participantClient.upload_dar_unless_exists(splitwellDarPath) bobValidatorBackend.participantClient.upload_dar_unless_exists(splitwellDarPath) diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvExpiredRewardsCollectionTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvExpiredRewardsCollectionTimeBasedIntegrationTest.scala index 5c741a0841..51656e76d0 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvExpiredRewardsCollectionTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvExpiredRewardsCollectionTimeBasedIntegrationTest.scala @@ -18,13 +18,15 @@ class SvExpiredRewardsCollectionTimeBasedIntegrationTest with SvTestUtil { override def environmentDefinition = - super.environmentDefinition.addConfigTransform((_, config) => - ConfigTransforms.updateAllValidatorConfigs_( - // Bump lifetime above base duration to burn fees and generate validator rewards - _.focus(_.transferPreapproval.preapprovalLifetime) - .replace(NonNegativeFiniteDuration.ofDays(100)) - )(config) - ) + super.environmentDefinition + .addConfigTransform((_, config) => ConfigTransforms.withoutRewardConfig(config)) + .addConfigTransform((_, config) => + ConfigTransforms.updateAllValidatorConfigs_( + // Bump lifetime above base duration to burn fees and generate validator rewards + _.focus(_.transferPreapproval.preapprovalLifetime) + .replace(NonNegativeFiniteDuration.ofDays(100)) + )(config) + ) "collect expired reward coupons" in { implicit env => def getRewardCoupons( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardAllocationIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardAllocationIntegrationTest.scala index 432e4ffe12..6bfdbe8ce6 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardAllocationIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardAllocationIntegrationTest.scala @@ -13,6 +13,7 @@ import org.lfdecentralizedtrust.splice.codegen.java.splice.api.token.{ holdingv1, metadatav1, } +import org.lfdecentralizedtrust.splice.config.ConfigTransforms import org.lfdecentralizedtrust.splice.environment.DarResources import org.lfdecentralizedtrust.splice.integration.EnvironmentDefinition import org.lfdecentralizedtrust.splice.integration.tests.SpliceTests.{ @@ -55,6 +56,7 @@ class TokenStandardAllocationIntegrationTest override def environmentDefinition: EnvironmentDefinition = { EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) + .addConfigTransform((_, config) => ConfigTransforms.withoutRewardConfig(config)) .withAdditionalSetup(implicit env => { Seq( sv1ValidatorBackend, diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogWithRewardsCollectionTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogWithRewardsCollectionTimeBasedIntegrationTest.scala index c53b46fb26..ca5511e13c 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogWithRewardsCollectionTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogWithRewardsCollectionTimeBasedIntegrationTest.scala @@ -31,6 +31,7 @@ class WalletTxLogWithRewardsCollectionTimeBasedIntegrationTest .simpleTopology1SvWithSimTime(this.getClass.getSimpleName) // Set a non-unit amulet price to better test CC-USD conversion. .addConfigTransform((_, config) => ConfigTransforms.setAmuletPrice(amuletPrice)(config)) + .addConfigTransform((_, config) => ConfigTransforms.withoutRewardConfig(config)) .addConfigTransforms( (_, config) => // without this, you can have 1 or 2 transfers in the txlog, or just 1 with different balance From 6de84b0d0bda037767b416066efde541863c2d97 Mon Sep 17 00:00:00 2001 From: Tim Emiola Date: Thu, 25 Jun 2026 13:16:11 +0900 Subject: [PATCH 03/11] [ci] s/withoutRewardConfig/withFeaturedAppMarkers/ Signed-off-by: Tim Emiola --- .../lfdecentralizedtrust/splice/config/ConfigTransforms.scala | 2 +- .../tests/AmuletExpiryWithOldPackageIntegrationTest.scala | 2 +- .../tests/ExternalPartySetupProposalIntegrationTest.scala | 2 +- .../tests/FeaturedAppActivityMarkerIntegrationTest.scala | 2 +- .../splice/integration/tests/SplitwellIntegrationTest.scala | 2 +- .../SvExpiredRewardsCollectionTimeBasedIntegrationTest.scala | 2 +- .../tests/TokenStandardAllocationIntegrationTest.scala | 2 +- ...lletTxLogWithRewardsCollectionTimeBasedIntegrationTest.scala | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/config/ConfigTransforms.scala b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/config/ConfigTransforms.scala index 784f9f7f3e..af6c18e284 100644 --- a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/config/ConfigTransforms.scala +++ b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/config/ConfigTransforms.scala @@ -809,7 +809,7 @@ object ConfigTransforms { ): ConfigTransform = updateAllSvAppFoundDsoConfigs_(c => c.copy(initialRewardConfig = Some(rewardConfig))) - def withoutRewardConfig: ConfigTransform = + def withFeaturedAppMarkers: ConfigTransform = updateAllSvAppFoundDsoConfigs_(c => c.copy(initialRewardConfig = None)) private def portTransform(bump: Int, c: AdminServerConfig): AdminServerConfig = diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AmuletExpiryWithOldPackageIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AmuletExpiryWithOldPackageIntegrationTest.scala index 5d9fd243ee..ed7d6d94bb 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AmuletExpiryWithOldPackageIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AmuletExpiryWithOldPackageIntegrationTest.scala @@ -69,7 +69,7 @@ abstract class AmuletExpiryWithOldPackageIntegrationTestBase .simpleTopology1Sv(this.getClass.getSimpleName) .withNoVettedPackages(implicit env => env.validators.local.map(_.participantClient)) .withTrafficTopupsDisabled - .addConfigTransform((_, config) => ConfigTransforms.withoutRewardConfig(config)) + .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms( (_, c) => ConfigTransforms.updateInitialTickDuration(NonNegativeFiniteDuration.ofMillis(500))(c), diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala index 3867dfaaa4..f7062b55ed 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala @@ -75,7 +75,7 @@ class ExternalPartySetupProposalIntegrationTest override def environmentDefinition: EnvironmentDefinition = { EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) - .addConfigTransform((_, config) => ConfigTransforms.withoutRewardConfig(config)) + .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms( // set renewal duration to be same as pre-approval lifetime to ensure renewal // gets triggered immediately diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/FeaturedAppActivityMarkerIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/FeaturedAppActivityMarkerIntegrationTest.scala index 033bad9eb3..c04ca1ae83 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/FeaturedAppActivityMarkerIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/FeaturedAppActivityMarkerIntegrationTest.scala @@ -32,7 +32,7 @@ class FeaturedAppActivityMarkerIntegrationTest EnvironmentDefinition // Using 4Svs so that we see whether they manage to jointly complete all work .simpleTopology4Svs(this.getClass.getSimpleName) - .addConfigTransform((_, config) => ConfigTransforms.withoutRewardConfig(config)) + .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms((_, config) => ConfigTransforms.updateAllSvAppFoundDsoConfigs_( _.copy( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellIntegrationTest.scala index 37b91f2287..8d8d234250 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellIntegrationTest.scala @@ -21,7 +21,7 @@ class SplitwellIntegrationTest override def environmentDefinition: SpliceEnvironmentDefinition = EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) - .addConfigTransform((_, config) => ConfigTransforms.withoutRewardConfig(config)) + .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .withAdditionalSetup(implicit env => { aliceValidatorBackend.participantClient.upload_dar_unless_exists(splitwellDarPath) bobValidatorBackend.participantClient.upload_dar_unless_exists(splitwellDarPath) diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvExpiredRewardsCollectionTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvExpiredRewardsCollectionTimeBasedIntegrationTest.scala index 51656e76d0..3da84e2588 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvExpiredRewardsCollectionTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvExpiredRewardsCollectionTimeBasedIntegrationTest.scala @@ -19,7 +19,7 @@ class SvExpiredRewardsCollectionTimeBasedIntegrationTest override def environmentDefinition = super.environmentDefinition - .addConfigTransform((_, config) => ConfigTransforms.withoutRewardConfig(config)) + .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransform((_, config) => ConfigTransforms.updateAllValidatorConfigs_( // Bump lifetime above base duration to burn fees and generate validator rewards diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardAllocationIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardAllocationIntegrationTest.scala index 6bfdbe8ce6..cdf613316d 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardAllocationIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardAllocationIntegrationTest.scala @@ -56,7 +56,7 @@ class TokenStandardAllocationIntegrationTest override def environmentDefinition: EnvironmentDefinition = { EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) - .addConfigTransform((_, config) => ConfigTransforms.withoutRewardConfig(config)) + .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .withAdditionalSetup(implicit env => { Seq( sv1ValidatorBackend, diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogWithRewardsCollectionTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogWithRewardsCollectionTimeBasedIntegrationTest.scala index ca5511e13c..abe5ddeddd 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogWithRewardsCollectionTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogWithRewardsCollectionTimeBasedIntegrationTest.scala @@ -31,7 +31,7 @@ class WalletTxLogWithRewardsCollectionTimeBasedIntegrationTest .simpleTopology1SvWithSimTime(this.getClass.getSimpleName) // Set a non-unit amulet price to better test CC-USD conversion. .addConfigTransform((_, config) => ConfigTransforms.setAmuletPrice(amuletPrice)(config)) - .addConfigTransform((_, config) => ConfigTransforms.withoutRewardConfig(config)) + .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms( (_, config) => // without this, you can have 1 or 2 transfers in the txlog, or just 1 with different balance From 2b1e928885932600e7a3339cb9bfb387e15d0261 Mon Sep 17 00:00:00 2001 From: Tim Emiola Date: Thu, 25 Jun 2026 22:22:56 +0900 Subject: [PATCH 04/11] [ci] Opt out rewardConfig-incompatible tests with withFeaturedAppMarkers Signed-off-by: Tim Emiola --- .../tests/BatchedFeaturedAppActivityMarkerIntegrationTest.scala | 1 + .../integration/tests/SvReonboardingIntegrationTest.scala | 1 + .../tests/UnsupportedPackageVettingIntegrationTest.scala | 2 ++ .../tests/ValidatorReonboardingIntegrationTest.scala | 1 + .../tests/ValidatorSequencerConnectionIntegrationTest.scala | 1 + .../splice/integration/tests/WalletTxLogIntegrationTest.scala | 1 + 6 files changed, 7 insertions(+) diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/BatchedFeaturedAppActivityMarkerIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/BatchedFeaturedAppActivityMarkerIntegrationTest.scala index e09a0cc265..3edb4cc546 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/BatchedFeaturedAppActivityMarkerIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/BatchedFeaturedAppActivityMarkerIntegrationTest.scala @@ -36,6 +36,7 @@ class BatchedFeaturedAppActivityMarkerIntegrationTest override def environmentDefinition: SpliceEnvironmentDefinition = EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) + .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms((_, config) => ConfigTransforms.updateAutomationConfig(ConfigTransforms.ConfigurableApp.Sv)( _.withPausedTrigger[FeaturedAppActivityMarkerTrigger] diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvReonboardingIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvReonboardingIntegrationTest.scala index 74838dfcb4..fa6ce13e62 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvReonboardingIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvReonboardingIntegrationTest.scala @@ -95,6 +95,7 @@ class SvReonboardingIntegrationTest .simpleTopology4Svs(this.getClass.getSimpleName) // Disable user allocation .withPreSetup(_ => ()) + .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransformsToFront((_, conf) => ConfigTransforms.bumpCantonPortsBy(22_000)(conf)) .addConfigTransforms( (_, config) => diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/UnsupportedPackageVettingIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/UnsupportedPackageVettingIntegrationTest.scala index e981fbe357..dfecdfb32c 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/UnsupportedPackageVettingIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/UnsupportedPackageVettingIntegrationTest.scala @@ -9,6 +9,7 @@ import org.lfdecentralizedtrust.splice.codegen.java.splice.amuletconfig.{ AmuletConfig, PackageConfig, } +import org.lfdecentralizedtrust.splice.config.ConfigTransforms import org.lfdecentralizedtrust.splice.config.ConfigTransforms.{ ConfigurableApp, updateAutomationConfig, @@ -44,6 +45,7 @@ class UnsupportedPackageVettingIntegrationTest override def environmentDefinition: SpliceEnvironmentDefinition = EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) + .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .withoutAliceValidatorConnectingToSplitwell // if other tests run before, packages that break this test might already be vetted .withNoVettedPackages(implicit env => env.validators.local.map(_.participantClient)) diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorReonboardingIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorReonboardingIntegrationTest.scala index 7d5251a6d6..2bc5d62aa4 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorReonboardingIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorReonboardingIntegrationTest.scala @@ -88,6 +88,7 @@ trait ValidatorReonboardingIntegrationTestBase .simpleTopology1Sv(this.getClass.getSimpleName) .withPreSetup(_ => ()) .withAllocatedUsers(extraIgnoredValidatorPrefixes = Seq("aliceValidator")) + .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms((_, config) => { val defaultAliceValidatorConfig = config.validatorApps(InstanceName.tryCreate("aliceValidator")) diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorSequencerConnectionIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorSequencerConnectionIntegrationTest.scala index 8828ea149b..cd82858a40 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorSequencerConnectionIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorSequencerConnectionIntegrationTest.scala @@ -37,6 +37,7 @@ class ValidatorSequencerConnectionIntegrationTest override def environmentDefinition: SpliceEnvironmentDefinition = EnvironmentDefinition .simpleTopology4Svs(this.getClass.getSimpleName) + .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms((_, config) => ConfigTransforms.updateAllValidatorConfigs { case (name, c) if name == "aliceValidator" => diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogIntegrationTest.scala index f88e98f41e..3c58314912 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogIntegrationTest.scala @@ -66,6 +66,7 @@ class WalletTxLogIntegrationTest // The wallet automation periodically merges amulets, which leads to non-deterministic balance changes. // We disable the automation for this suite. .withoutAutomaticRewardsCollectionAndAmuletMerging + .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) // Set a non-unit amulet price to better test CC-USD conversion. .addConfigTransform((_, config) => ConfigTransforms.setAmuletPrice(amuletPrice)(config)) .addConfigTransform((_, config) => From 099faae4c5d3ddf0d2a97f4d11319222c45eb80c Mon Sep 17 00:00:00 2001 From: Tim Emiola Date: Mon, 29 Jun 2026 12:17:52 +0900 Subject: [PATCH 05/11] [ci] Add comments explaining the need for withFeaturedAppMarkers Signed-off-by: Tim Emiola --- .../tests/AmuletExpiryWithOldPackageIntegrationTest.scala | 1 + .../tests/BatchedFeaturedAppActivityMarkerIntegrationTest.scala | 1 + .../tests/ExternalPartySetupProposalIntegrationTest.scala | 1 + .../tests/FeaturedAppActivityMarkerIntegrationTest.scala | 1 + .../splice/integration/tests/SplitwellIntegrationTest.scala | 1 + .../SvExpiredRewardsCollectionTimeBasedIntegrationTest.scala | 1 + .../splice/integration/tests/SvReonboardingIntegrationTest.scala | 1 + .../tests/TokenStandardAllocationIntegrationTest.scala | 1 + .../tests/UnsupportedPackageVettingIntegrationTest.scala | 1 + .../integration/tests/ValidatorReonboardingIntegrationTest.scala | 1 + .../tests/ValidatorSequencerConnectionIntegrationTest.scala | 1 + .../splice/integration/tests/WalletTxLogIntegrationTest.scala | 1 + ...alletTxLogWithRewardsCollectionTimeBasedIntegrationTest.scala | 1 + 13 files changed, 13 insertions(+) diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AmuletExpiryWithOldPackageIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AmuletExpiryWithOldPackageIntegrationTest.scala index ed7d6d94bb..5c1660bf9b 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AmuletExpiryWithOldPackageIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AmuletExpiryWithOldPackageIntegrationTest.scala @@ -69,6 +69,7 @@ abstract class AmuletExpiryWithOldPackageIntegrationTestBase .simpleTopology1Sv(this.getClass.getSimpleName) .withNoVettedPackages(implicit env => env.validators.local.map(_.participantClient)) .withTrafficTopupsDisabled + // Uses FeaturedAppMarkers: test deliberately uses old packages that lack the rewardConfig field added by TBAR .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms( (_, c) => diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/BatchedFeaturedAppActivityMarkerIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/BatchedFeaturedAppActivityMarkerIntegrationTest.scala index 3edb4cc546..51da2bfed2 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/BatchedFeaturedAppActivityMarkerIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/BatchedFeaturedAppActivityMarkerIntegrationTest.scala @@ -36,6 +36,7 @@ class BatchedFeaturedAppActivityMarkerIntegrationTest override def environmentDefinition: SpliceEnvironmentDefinition = EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) + // Uses FeaturedAppMarkers: test exercises the FeaturedAppActivityMarker mechanism .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms((_, config) => ConfigTransforms.updateAutomationConfig(ConfigTransforms.ConfigurableApp.Sv)( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala index f7062b55ed..9b710b1d90 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala @@ -75,6 +75,7 @@ class ExternalPartySetupProposalIntegrationTest override def environmentDefinition: EnvironmentDefinition = { EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) + // Uses FeaturedAppMarkers: test asserts on AppRewardCoupon which TBAR replaces with RewardCouponV2 .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms( // set renewal duration to be same as pre-approval lifetime to ensure renewal diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/FeaturedAppActivityMarkerIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/FeaturedAppActivityMarkerIntegrationTest.scala index c04ca1ae83..30f3dfd007 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/FeaturedAppActivityMarkerIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/FeaturedAppActivityMarkerIntegrationTest.scala @@ -32,6 +32,7 @@ class FeaturedAppActivityMarkerIntegrationTest EnvironmentDefinition // Using 4Svs so that we see whether they manage to jointly complete all work .simpleTopology4Svs(this.getClass.getSimpleName) + // Uses FeaturedAppMarkers: test exercises the FeaturedAppActivityMarker mechanism .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms((_, config) => ConfigTransforms.updateAllSvAppFoundDsoConfigs_( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellIntegrationTest.scala index 8d8d234250..2e78d9c20a 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellIntegrationTest.scala @@ -21,6 +21,7 @@ class SplitwellIntegrationTest override def environmentDefinition: SpliceEnvironmentDefinition = EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) + // Uses FeaturedAppMarkers: test asserts on AppRewardCoupon which TBAR replaces with RewardCouponV2 .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .withAdditionalSetup(implicit env => { aliceValidatorBackend.participantClient.upload_dar_unless_exists(splitwellDarPath) diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvExpiredRewardsCollectionTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvExpiredRewardsCollectionTimeBasedIntegrationTest.scala index 3da84e2588..d1e9b56e38 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvExpiredRewardsCollectionTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvExpiredRewardsCollectionTimeBasedIntegrationTest.scala @@ -19,6 +19,7 @@ class SvExpiredRewardsCollectionTimeBasedIntegrationTest override def environmentDefinition = super.environmentDefinition + // Uses FeaturedAppMarkers: test asserts on AppRewardCoupon which TBAR replaces with RewardCouponV2 .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransform((_, config) => ConfigTransforms.updateAllValidatorConfigs_( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvReonboardingIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvReonboardingIntegrationTest.scala index fa6ce13e62..7788965e09 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvReonboardingIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvReonboardingIntegrationTest.scala @@ -95,6 +95,7 @@ class SvReonboardingIntegrationTest .simpleTopology4Svs(this.getClass.getSimpleName) // Disable user allocation .withPreSetup(_ => ()) + // Uses FeaturedAppMarkers: reonboarding encounters OpenMiningRound with rewardConfig before packages are fully vetted .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransformsToFront((_, conf) => ConfigTransforms.bumpCantonPortsBy(22_000)(conf)) .addConfigTransforms( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardAllocationIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardAllocationIntegrationTest.scala index cdf613316d..7d6bd37017 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardAllocationIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardAllocationIntegrationTest.scala @@ -56,6 +56,7 @@ class TokenStandardAllocationIntegrationTest override def environmentDefinition: EnvironmentDefinition = { EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) + // Uses FeaturedAppMarkers: test asserts on AppRewardCoupon which TBAR replaces with RewardCouponV2 .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .withAdditionalSetup(implicit env => { Seq( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/UnsupportedPackageVettingIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/UnsupportedPackageVettingIntegrationTest.scala index dfecdfb32c..0aba6c81c1 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/UnsupportedPackageVettingIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/UnsupportedPackageVettingIntegrationTest.scala @@ -45,6 +45,7 @@ class UnsupportedPackageVettingIntegrationTest override def environmentDefinition: SpliceEnvironmentDefinition = EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) + // Uses FeaturedAppMarkers: test deliberately uses old packages that lack the rewardConfig field added by TBAR .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .withoutAliceValidatorConnectingToSplitwell // if other tests run before, packages that break this test might already be vetted diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorReonboardingIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorReonboardingIntegrationTest.scala index 2bc5d62aa4..8d32f87432 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorReonboardingIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorReonboardingIntegrationTest.scala @@ -88,6 +88,7 @@ trait ValidatorReonboardingIntegrationTestBase .simpleTopology1Sv(this.getClass.getSimpleName) .withPreSetup(_ => ()) .withAllocatedUsers(extraIgnoredValidatorPrefixes = Seq("aliceValidator")) + // Uses FeaturedAppMarkers: reonboarding encounters OpenMiningRound with rewardConfig before packages are fully vetted .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms((_, config) => { val defaultAliceValidatorConfig = diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorSequencerConnectionIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorSequencerConnectionIntegrationTest.scala index cd82858a40..089a98501a 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorSequencerConnectionIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorSequencerConnectionIntegrationTest.scala @@ -37,6 +37,7 @@ class ValidatorSequencerConnectionIntegrationTest override def environmentDefinition: SpliceEnvironmentDefinition = EnvironmentDefinition .simpleTopology4Svs(this.getClass.getSimpleName) + // Uses FeaturedAppMarkers: reconnection encounters OpenMiningRound with rewardConfig before packages are fully vetted .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms((_, config) => ConfigTransforms.updateAllValidatorConfigs { diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogIntegrationTest.scala index 3c58314912..a5e23efa3d 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogIntegrationTest.scala @@ -66,6 +66,7 @@ class WalletTxLogIntegrationTest // The wallet automation periodically merges amulets, which leads to non-deterministic balance changes. // We disable the automation for this suite. .withoutAutomaticRewardsCollectionAndAmuletMerging + // Uses FeaturedAppMarkers: test asserts on AppRewardCoupon which TBAR replaces with RewardCouponV2 .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) // Set a non-unit amulet price to better test CC-USD conversion. .addConfigTransform((_, config) => ConfigTransforms.setAmuletPrice(amuletPrice)(config)) diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogWithRewardsCollectionTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogWithRewardsCollectionTimeBasedIntegrationTest.scala index abe5ddeddd..0225cc1ba5 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogWithRewardsCollectionTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogWithRewardsCollectionTimeBasedIntegrationTest.scala @@ -31,6 +31,7 @@ class WalletTxLogWithRewardsCollectionTimeBasedIntegrationTest .simpleTopology1SvWithSimTime(this.getClass.getSimpleName) // Set a non-unit amulet price to better test CC-USD conversion. .addConfigTransform((_, config) => ConfigTransforms.setAmuletPrice(amuletPrice)(config)) + // Uses FeaturedAppMarkers: test asserts on AppRewardCoupon which TBAR replaces with RewardCouponV2 .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms( (_, config) => From a9dc6a89b6a66fdfee267969ee228039c6809877 Mon Sep 17 00:00:00 2001 From: Tim Emiola Date: Mon, 29 Jun 2026 12:59:47 +0900 Subject: [PATCH 06/11] [ci] recheck the re-onboarding failures, they passed locally Signed-off-by: Tim Emiola --- .../integration/tests/SvReonboardingIntegrationTest.scala | 2 -- .../tests/ValidatorReonboardingIntegrationTest.scala | 2 -- .../tests/ValidatorSequencerConnectionIntegrationTest.scala | 2 -- 3 files changed, 6 deletions(-) diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvReonboardingIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvReonboardingIntegrationTest.scala index 7788965e09..74838dfcb4 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvReonboardingIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvReonboardingIntegrationTest.scala @@ -95,8 +95,6 @@ class SvReonboardingIntegrationTest .simpleTopology4Svs(this.getClass.getSimpleName) // Disable user allocation .withPreSetup(_ => ()) - // Uses FeaturedAppMarkers: reonboarding encounters OpenMiningRound with rewardConfig before packages are fully vetted - .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransformsToFront((_, conf) => ConfigTransforms.bumpCantonPortsBy(22_000)(conf)) .addConfigTransforms( (_, config) => diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorReonboardingIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorReonboardingIntegrationTest.scala index 8d32f87432..7d5251a6d6 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorReonboardingIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorReonboardingIntegrationTest.scala @@ -88,8 +88,6 @@ trait ValidatorReonboardingIntegrationTestBase .simpleTopology1Sv(this.getClass.getSimpleName) .withPreSetup(_ => ()) .withAllocatedUsers(extraIgnoredValidatorPrefixes = Seq("aliceValidator")) - // Uses FeaturedAppMarkers: reonboarding encounters OpenMiningRound with rewardConfig before packages are fully vetted - .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms((_, config) => { val defaultAliceValidatorConfig = config.validatorApps(InstanceName.tryCreate("aliceValidator")) diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorSequencerConnectionIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorSequencerConnectionIntegrationTest.scala index 089a98501a..8828ea149b 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorSequencerConnectionIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ValidatorSequencerConnectionIntegrationTest.scala @@ -37,8 +37,6 @@ class ValidatorSequencerConnectionIntegrationTest override def environmentDefinition: SpliceEnvironmentDefinition = EnvironmentDefinition .simpleTopology4Svs(this.getClass.getSimpleName) - // Uses FeaturedAppMarkers: reconnection encounters OpenMiningRound with rewardConfig before packages are fully vetted - .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms((_, config) => ConfigTransforms.updateAllValidatorConfigs { case (name, c) if name == "aliceValidator" => From 1bad0364c923e8d95d73a8e693ef248292872bed Mon Sep 17 00:00:00 2001 From: Tim Emiola Date: Mon, 29 Jun 2026 14:30:29 +0900 Subject: [PATCH 07/11] [ci] bump splice-amulet minimumInitialization to 0.1.19 for TBAR compatibility Signed-off-by: Tim Emiola --- .../lfdecentralizedtrust/splice/environment/DarResources.scala | 2 +- .../splice/darutils/DarResourcesGenerator.scala | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/DarResources.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/DarResources.scala index 24a0054117..febe3005f4 100644 --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/DarResources.scala +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/DarResources.scala @@ -1683,7 +1683,7 @@ object DarResources { ) val amulet = PackageResource( amulet_current, - amulet_0_1_15, + amulet_0_1_19, Seq( amulet_0_1_0, amulet_0_1_1, diff --git a/apps/dar-resources-generator/src/main/scala/org/lfdecentralizedtrust/splice/darutils/DarResourcesGenerator.scala b/apps/dar-resources-generator/src/main/scala/org/lfdecentralizedtrust/splice/darutils/DarResourcesGenerator.scala index d3820cf5ad..88ab5c9693 100644 --- a/apps/dar-resources-generator/src/main/scala/org/lfdecentralizedtrust/splice/darutils/DarResourcesGenerator.scala +++ b/apps/dar-resources-generator/src/main/scala/org/lfdecentralizedtrust/splice/darutils/DarResourcesGenerator.scala @@ -18,7 +18,7 @@ object DarResourcesGenerator { // TODO(tech-debt): consider moving this to a dedicated config file if it bugs us here private val minimumInitializations: Map[String, String] = Map( - "splice-amulet" -> "0.1.15", + "splice-amulet" -> "0.1.19", "splice-amulet-name-service" -> "0.1.16", "splice-dso-governance" -> "0.1.21", "splice-wallet" -> "0.1.15", From 22b2edfd39b992d856367bea675866bd1fda9fc0 Mon Sep 17 00:00:00 2001 From: Tim Emiola Date: Mon, 29 Jun 2026 15:03:43 +0900 Subject: [PATCH 08/11] [ci] Suppress redundant version check warnings after minimumInitialization bump Signed-off-by: Tim Emiola --- .../splice/environment/PackageVersionSupport.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/PackageVersionSupport.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/PackageVersionSupport.scala index d349c5207a..fd8404bd13 100644 --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/PackageVersionSupport.scala +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/PackageVersionSupport.scala @@ -79,6 +79,7 @@ trait PackageVersionSupport extends NamedLogging { now, DarResources.amulet, DarResources.amulet_0_1_16, + ignoreRedundantCheck = true, ) def supports24hSubmissionDelay( @@ -96,7 +97,7 @@ trait PackageVersionSupport extends NamedLogging { now, DarResources.amulet, DarResources.amulet_0_1_17, - ignoreRedundantCheck = false, + ignoreRedundantCheck = true, ) } @@ -152,6 +153,7 @@ trait PackageVersionSupport extends NamedLogging { now, DarResources.amulet, DarResources.amulet_0_1_19, + ignoreRedundantCheck = true, ) def supportsMintingDelegation(parties: Seq[PartyId], now: CantonTimestamp)(implicit From 58ed82daee77298b10f16dc113431a3c10b0f107 Mon Sep 17 00:00:00 2001 From: Tim Emiola Date: Mon, 29 Jun 2026 15:58:29 +0900 Subject: [PATCH 09/11] [ci] Bump UnsupportedPackageVettingIntegrationTest downgrade targets above rewardConfig boundary Signed-off-by: Tim Emiola --- ...pportedPackageVettingIntegrationTest.scala | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/UnsupportedPackageVettingIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/UnsupportedPackageVettingIntegrationTest.scala index 0aba6c81c1..54aa8e3a8f 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/UnsupportedPackageVettingIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/UnsupportedPackageVettingIntegrationTest.scala @@ -9,7 +9,6 @@ import org.lfdecentralizedtrust.splice.codegen.java.splice.amuletconfig.{ AmuletConfig, PackageConfig, } -import org.lfdecentralizedtrust.splice.config.ConfigTransforms import org.lfdecentralizedtrust.splice.config.ConfigTransforms.{ ConfigurableApp, updateAutomationConfig, @@ -45,8 +44,6 @@ class UnsupportedPackageVettingIntegrationTest override def environmentDefinition: SpliceEnvironmentDefinition = EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) - // Uses FeaturedAppMarkers: test deliberately uses old packages that lack the rewardConfig field added by TBAR - .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .withoutAliceValidatorConnectingToSplitwell // if other tests run before, packages that break this test might already be vetted .withNoVettedPackages(implicit env => env.validators.local.map(_.participantClient)) @@ -137,13 +134,13 @@ class UnsupportedPackageVettingIntegrationTest sv1Backend.participantClient.synchronizers.list_connected().head.synchronizerId val validatorDarsAbovePackageConfigVersion = Seq( - DarResources.wallet_0_1_18, - DarResources.walletPayments_0_1_17, - DarResources.amuletNameService_0_1_18, - DarResources.amulet_0_1_17, + DarResources.wallet_0_1_21, + DarResources.walletPayments_0_1_20, + DarResources.amuletNameService_0_1_21, + DarResources.amulet_0_1_20, ) val svDarsAbovePackageConfigVersion = Seq( - DarResources.dsoGovernance_0_1_23 + DarResources.dsoGovernance_0_1_26 ) ++ validatorDarsAbovePackageConfigVersion clue("sv1 votes to downgrade to the previous package versions") { @@ -152,12 +149,12 @@ class UnsupportedPackageVettingIntegrationTest AmuletConfigSchedule(amuletRules).getConfigAsOf(env.environment.clock.now) val downgradedPackageConfig = new PackageConfig( - DarResources.amulet_0_1_16.metadata.version.toString(), - DarResources.amuletNameService_0_1_17.metadata.version.toString(), - DarResources.dsoGovernance_0_1_22.metadata.version.toString(), + DarResources.amulet_0_1_19.metadata.version.toString(), + DarResources.amuletNameService_0_1_20.metadata.version.toString(), + DarResources.dsoGovernance_0_1_25.metadata.version.toString(), currentConfig.packageConfig.validatorLifecycle, - DarResources.wallet_0_1_17.metadata.version.toString(), - DarResources.walletPayments_0_1_16.metadata.version.toString(), + DarResources.wallet_0_1_20.metadata.version.toString(), + DarResources.walletPayments_0_1_19.metadata.version.toString(), ) val newAmuletConfig = new AmuletConfig( currentConfig.transferConfig, @@ -201,7 +198,7 @@ class UnsupportedPackageVettingIntegrationTest ) should contain allElementsOf validatorDarsAbovePackageConfigVersion.map(_.packageId) } eventually(40.seconds) { - alicesTapsWithPackageId(DarResources.amulet_0_1_16.packageId) + alicesTapsWithPackageId(DarResources.amulet_0_1_19.packageId) } } } From 0dca24c7f0d1cec843864601b4c2353f08617f89 Mon Sep 17 00:00:00 2001 From: Tim Emiola Date: Mon, 29 Jun 2026 16:00:25 +0900 Subject: [PATCH 10/11] [ci] Remove exclusion now that minimum version is updated Signed-off-by: Tim Emiola --- .../tests/AmuletExpiryWithOldPackageIntegrationTest.scala | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AmuletExpiryWithOldPackageIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AmuletExpiryWithOldPackageIntegrationTest.scala index 5c1660bf9b..ceb4cfa41a 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AmuletExpiryWithOldPackageIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AmuletExpiryWithOldPackageIntegrationTest.scala @@ -69,8 +69,6 @@ abstract class AmuletExpiryWithOldPackageIntegrationTestBase .simpleTopology1Sv(this.getClass.getSimpleName) .withNoVettedPackages(implicit env => env.validators.local.map(_.participantClient)) .withTrafficTopupsDisabled - // Uses FeaturedAppMarkers: test deliberately uses old packages that lack the rewardConfig field added by TBAR - .addConfigTransform((_, config) => ConfigTransforms.withFeaturedAppMarkers(config)) .addConfigTransforms( (_, c) => ConfigTransforms.updateInitialTickDuration(NonNegativeFiniteDuration.ofMillis(500))(c), From 291dd4ec8706d7195fce115fd2f4a99aaaa57d3c Mon Sep 17 00:00:00 2001 From: Tim Emiola Date: Mon, 29 Jun 2026 17:42:28 +0900 Subject: [PATCH 11/11] [ci] experiment: Wait for amulet package availability before DSO bootstrap Signed-off-by: Tim Emiola --- .../splice/sv/onboarding/sv1/SV1Initializer.scala | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/sv1/SV1Initializer.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/sv1/SV1Initializer.scala index ffae525929..9e0b77b797 100644 --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/sv1/SV1Initializer.scala +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/sv1/SV1Initializer.scala @@ -246,6 +246,12 @@ class SV1Initializer( logger, ), ).tupled + // Wait for the current amulet package to be available for command + // preprocessing. The vetting topology transaction may not yet be + // effective on the participant even though vetCurrentPackages returned. + _ <- initConnection.waitForPackages( + Set(DarResources.amulet_current.packageId) + ) storeKey = SvStore.Key(svParty, dsoParty) domainMigrationId <- resolveDomainMigrationId(Future.successful(0L)) svStore = newSvStore(