Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ object InitialPackageVersions {

def initialPackageVersion(pkg: PackageResource): String =
initialPackageVersionMap.getOrElse(
pkg.bootstrap.metadata.name,
pkg.bootstrap.metadata.version.toString,
pkg.latest.metadata.name,
pkg.latest.metadata.version.toString,
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ class AppUpgradeIntegrationTest
// SV1 does not vet DAR before the vote goes through
val sv1Packages = vettedPackages(sv1Backend.participantClientWithAdminToken)
forAll(sv1Packages) { pkg =>
pkg.packageId should not be DarResources.amulet.bootstrap.packageId
pkg.packageId should not be DarResources.amulet.latest.packageId
}

val amuletRules = sv2ScanBackend.getAmuletRules()
Expand All @@ -249,12 +249,12 @@ class AppUpgradeIntegrationTest
amuletConfig.decentralizedSynchronizer,
amuletConfig.tickDuration,
new splice.amuletconfig.PackageConfig(
DarResources.amulet.bootstrap.metadata.version.toString(),
DarResources.amuletNameService.bootstrap.metadata.version.toString(),
DarResources.dsoGovernance.bootstrap.metadata.version.toString(),
DarResources.validatorLifecycle.bootstrap.metadata.version.toString(),
DarResources.wallet.bootstrap.metadata.version.toString(),
DarResources.walletPayments.bootstrap.metadata.version.toString(),
DarResources.amulet.latest.metadata.version.toString(),
DarResources.amuletNameService.latest.metadata.version.toString(),
DarResources.dsoGovernance.latest.metadata.version.toString(),
DarResources.validatorLifecycle.latest.metadata.version.toString(),
DarResources.wallet.latest.metadata.version.toString(),
DarResources.walletPayments.latest.metadata.version.toString(),
),
java.util.Optional.empty(),
java.util.Optional.empty(),
Expand Down Expand Up @@ -365,7 +365,7 @@ class AppUpgradeIntegrationTest
vettedPackages(sv1Backend.participantClientWithAdminToken)
forExactly(1, sv1PackagesAfterUpgrade) { pkg =>
withClue(s"Package ${pkg.packageId}") {
pkg.packageId shouldBe DarResources.amulet.bootstrap.packageId
pkg.packageId shouldBe DarResources.amulet.latest.packageId
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ class BootstrapPackageConfigDarUploadIntegrationTest
.futureValue
.map(dar => dar.name -> PackageVersion.assertFromString(dar.version))
.filter { case (name, _) =>
DarResources.packageResources.map(_.bootstrap.metadata.name).contains(name)
DarResources.packageResources.map(_.latest.metadata.name).contains(name)
}
val vettedDarNameAndVersions: Seq[(PackageName, PackageVersion)] = {
vettedPackages
Expand All @@ -145,11 +145,11 @@ class BootstrapPackageConfigDarUploadIntegrationTest
requiredVersion: String,
): Unit = {
withClue(
s"dars for package ${packageResource.bootstrap.metadata.name} should be up to $requiredVersion"
s"dars for package ${packageResource.latest.metadata.name} should be up to $requiredVersion"
) {
val dars =
uploadedDars.filter { case (name, _) =>
name == packageResource.bootstrap.metadata.name
name == packageResource.latest.metadata.name
}
dars should not be empty
dars.map(_._2).max shouldBe PackageVersion.assertFromString(requiredVersion)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -220,12 +220,12 @@ class BootstrapPackageConfigIntegrationTest extends IntegrationTest with Splitwe
amuletConfig.decentralizedSynchronizer,
amuletConfig.tickDuration,
new PackageConfig(
DarResources.amulet.bootstrap.metadata.version.toString(),
DarResources.amuletNameService.bootstrap.metadata.version.toString(),
DarResources.dsoGovernance.bootstrap.metadata.version.toString(),
DarResources.validatorLifecycle.bootstrap.metadata.version.toString(),
DarResources.wallet.bootstrap.metadata.version.toString(),
DarResources.walletPayments.bootstrap.metadata.version.toString(),
DarResources.amulet.latest.metadata.version.toString(),
DarResources.amuletNameService.latest.metadata.version.toString(),
DarResources.dsoGovernance.latest.metadata.version.toString(),
DarResources.validatorLifecycle.latest.metadata.version.toString(),
DarResources.wallet.latest.metadata.version.toString(),
DarResources.walletPayments.latest.metadata.version.toString(),
),
java.util.Optional.empty(),
java.util.Optional.empty(),
Expand Down Expand Up @@ -272,7 +272,7 @@ class BootstrapPackageConfigIntegrationTest extends IntegrationTest with Splitwe
_ => {
val newAmuletRules = sv1Backend.getDsoInfo().amuletRules

newAmuletRules.payload.configSchedule.initialValue.packageConfig.amulet shouldBe DarResources.amulet.bootstrap.metadata.version
newAmuletRules.payload.configSchedule.initialValue.packageConfig.amulet shouldBe DarResources.amulet.latest.metadata.version
.toString()
},
)
Expand Down Expand Up @@ -340,7 +340,7 @@ class BootstrapPackageConfigIntegrationTest extends IntegrationTest with Splitwe
}

clue("alice taps amulet with new package after all the svs vet the new packages") {
alicesTapsWithPackageId(DarResources.amulet.bootstrap.packageId)
alicesTapsWithPackageId(DarResources.amulet.latest.packageId)
}

clue("ExternalPartyAmuletRules gets created") {
Expand Down Expand Up @@ -464,9 +464,9 @@ class BootstrapPackageConfigIntegrationTest extends IntegrationTest with Splitwe
)
}
}
packagesAreVetted(DarResources.amulet.bootstrap, PackageIdResolver.Package.SpliceAmulet)
packagesAreVetted(DarResources.amulet.latest, PackageIdResolver.Package.SpliceAmulet)
// also check wallet because for the sv we have 2 vetting triggers, and the wallet is used in the tap call but it's vetted by the validator trigger (amulet rules can be vetted by any of the triggers)
packagesAreVetted(DarResources.wallet.bootstrap, PackageIdResolver.Package.SpliceWallet)
packagesAreVetted(DarResources.wallet.latest, PackageIdResolver.Package.SpliceWallet)
}

private def alicesTapsWithPackageId(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ class RewardExpiryIntegrationTest extends IntegrationTest with TriggerTestUtil {
actAndCheck(
"SV1 uploads the latest dso governance",
sv1Backend.participantClient.dars.upload(
s"daml/dars/splice-dso-governance-${DarResources.dsoGovernance.bootstrap.metadata.version}.dar"
s"daml/dars/splice-dso-governance-${DarResources.dsoGovernance.latest.metadata.version}.dar"
),
)(
"SV1 has vetted the latest dso governance",
Expand All @@ -103,7 +103,7 @@ class RewardExpiryIntegrationTest extends IntegrationTest with TriggerTestUtil {
.loneElement
.item
.packages
.map(_.packageId) should contain(DarResources.dsoGovernance.bootstrap.packageId),
.map(_.packageId) should contain(DarResources.dsoGovernance.latest.packageId),
)
actAndCheck("Advance by one tick", advanceRoundsByOneTickViaAutomation())(
"Round 0 is closed",
Expand All @@ -121,7 +121,7 @@ class RewardExpiryIntegrationTest extends IntegrationTest with TriggerTestUtil {
.data
.round
.number shouldBe 0
closedRound.getTemplateId.packageId shouldBe DarResources.amulet.bootstrap.packageId
closedRound.getTemplateId.packageId shouldBe DarResources.amulet.latest.packageId
},
)
// Recreate AmuletRules in new package id.
Expand All @@ -140,8 +140,8 @@ class RewardExpiryIntegrationTest extends IntegrationTest with TriggerTestUtil {
_ => {
val amuletRules = sv1ScanBackend
.getAmuletRules()
amuletRules.contract.identifier.getPackageId shouldBe DarResources.amulet.bootstrap.packageId
DarResources.amulet.bootstrap.packageId should not be initialAmuletPackage.packageId
amuletRules.contract.identifier.getPackageId shouldBe DarResources.amulet.latest.packageId
DarResources.amulet.latest.packageId should not be initialAmuletPackage.packageId
},
)
aliceValidatorBackend.participantClient.ledger_api_extensions.acs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ object DarResources {
/** All DARs for a given package
*/
final case class PackageResource(
bootstrap: DarResource, // Used during bootstrapping or testing where we can assume a fixed package id.
latest: DarResource, // latest package version
minimumInitialization: DarResource, // The minimum version that can be used for initialization of a fresh network
others: Seq[DarResource], // Other DARs for the same package
) {
Expand All @@ -392,7 +392,7 @@ final case class PackageResource(
all.find(_.metadata.version.toString() == version)
}

def all = bootstrap +: others
def all = latest +: others
}

final case class DarResource(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,21 @@ object PackageIdResolver {
case SpliceWallet => packageConfig.wallet
case SpliceWalletPayments => packageConfig.walletPayments
case TokenStandard.SpliceApiTokenMetadataV1 =>
DarResources.TokenStandard.tokenMetadata.bootstrap.metadata.version.toString()
DarResources.TokenStandard.tokenMetadata.latest.metadata.version.toString()
case TokenStandard.SpliceApiTokenHoldingV1 =>
DarResources.TokenStandard.tokenHolding.bootstrap.metadata.version.toString()
DarResources.TokenStandard.tokenHolding.latest.metadata.version.toString()
case TokenStandard.SpliceApiTokenTransferInstructionV1 =>
DarResources.TokenStandard.tokenTransferInstruction.bootstrap.metadata.version.toString()
DarResources.TokenStandard.tokenTransferInstruction.latest.metadata.version.toString()
case TokenStandard.SpliceApiTokenAllocationV1 =>
DarResources.TokenStandard.tokenAllocation.bootstrap.metadata.version.toString()
DarResources.TokenStandard.tokenAllocation.latest.metadata.version.toString()
case TokenStandard.SpliceApiTokenAllocationRequestV1 =>
DarResources.TokenStandard.tokenAllocationRequest.bootstrap.metadata.version.toString()
DarResources.TokenStandard.tokenAllocationRequest.latest.metadata.version.toString()
case TokenStandard.SpliceApiTokenAllocationInstructionV1 =>
DarResources.TokenStandard.tokenAllocationInstruction.bootstrap.metadata.version.toString()
DarResources.TokenStandard.tokenAllocationInstruction.latest.metadata.version.toString()
case TokenStandard.SpliceTokenTestTradingApp =>
DarResources.TokenStandard.tokenTestTradingApp.bootstrap.metadata.version.toString()
DarResources.TokenStandard.tokenTestTradingApp.latest.metadata.version.toString()
case FeaturedApp =>
DarResources.featuredApp.bootstrap.metadata.version.toString()
DarResources.featuredApp.latest.metadata.version.toString()
}
PackageVersion.assertFromString(version)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,12 @@ object SpliceUtil {

def readPackageConfig(): splice.amuletconfig.PackageConfig = {
new splice.amuletconfig.PackageConfig(
readDarVersion(DarResources.amulet.bootstrap).toString,
readDarVersion(DarResources.amuletNameService.bootstrap).toString,
readDarVersion(DarResources.dsoGovernance.bootstrap).toString,
readDarVersion(DarResources.validatorLifecycle.bootstrap).toString,
readDarVersion(DarResources.wallet.bootstrap).toString,
readDarVersion(DarResources.walletPayments.bootstrap).toString,
readDarVersion(DarResources.amulet.latest).toString,
readDarVersion(DarResources.amuletNameService.latest).toString,
readDarVersion(DarResources.dsoGovernance.latest).toString,
readDarVersion(DarResources.validatorLifecycle.latest).toString,
readDarVersion(DarResources.wallet.latest).toString,
readDarVersion(DarResources.walletPayments.latest).toString,
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ case class SplitwellAppBackendConfig(
domainMigrationId: Long = 0L,
domains: SplitwellSynchronizerConfig,
parameters: SpliceParametersConfig = SpliceParametersConfig(batching = BatchingConfig()),
requiredDarVersion: PackageVersion = DarResources.splitwell.bootstrap.metadata.version,
requiredDarVersion: PackageVersion = DarResources.splitwell.latest.metadata.version,
) extends SpliceBackendConfig // TODO(DACH-NY/canton-network-node#736): fork or generalize this trait.
{
override val nodeTypeName: String = "splitwell"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,11 @@ import org.lfdecentralizedtrust.splice.sv.automation.singlesv.offboarding.{
import org.lfdecentralizedtrust.splice.sv.automation.singlesv.onboarding.*
import org.lfdecentralizedtrust.splice.sv.automation.singlesv.scan.AggregatingScanConnection
import org.lfdecentralizedtrust.splice.sv.cometbft.CometBftNode
import org.lfdecentralizedtrust.splice.sv.config.SvOnboardingConfig.InitialPackageConfig
import org.lfdecentralizedtrust.splice.sv.config.{SequencerPruningConfig, SvAppBackendConfig}
import org.lfdecentralizedtrust.splice.sv.migration.DecentralizedSynchronizerMigrationTrigger
import org.lfdecentralizedtrust.splice.sv.store.{SvDsoStore, SvSvStore}
import org.lfdecentralizedtrust.splice.sv.{BftSequencerConfig, LocalSynchronizerNode}
import org.lfdecentralizedtrust.splice.util.{QualifiedName, TemplateJsonDecoder}
import org.lfdecentralizedtrust.splice.util.TemplateJsonDecoder

import java.nio.file.Path
import scala.concurrent.ExecutionContextExecutor
Expand Down Expand Up @@ -476,23 +475,6 @@ object SvDsoAutomationService extends AutomationServiceCompanion {
decentralizedSynchronizerAlias: SynchronizerAlias,
)

private[automation] def bootstrapPackageIdResolver(
initialPackageConfig: Option[InitialPackageConfig]
)(template: QualifiedName): Option[String] =
template.moduleName match {
// DsoBootstrap is how we create AmuletRules in the first place so we cannot infer the package id for that from AmuletRules.
// We could infer it from initialPackageConfig
case "Splice.DsoBootstrap" =>
initialPackageConfig
.flatMap(config =>
DarResources.dsoGovernance.getPackageIdWithVersion(config.dsoGovernanceVersion)
)
.orElse(
Some(DarResources.dsoGovernance.bootstrap.packageId)
)
case _ => None
}

// defined because some triggers are registered later by
// registerPostOnboardingTriggers
override protected[this] def expectedTriggerClasses: Seq[TriggerClass] =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import org.lfdecentralizedtrust.splice.store.{
DomainUnpausedSynchronization,
UpdateHistory,
}
import org.lfdecentralizedtrust.splice.util.QualifiedName
import org.lfdecentralizedtrust.splice.validator.domain.DomainConnector
import org.lfdecentralizedtrust.splice.validator.migration.DecentralizedSynchronizerMigrationTrigger
import org.lfdecentralizedtrust.splice.validator.store.ValidatorStore
Expand Down Expand Up @@ -294,7 +293,5 @@ class ValidatorAutomationService(
}

object ValidatorAutomationService extends AutomationServiceCompanion {
private[automation] def bootstrapPackageIdResolver(template: QualifiedName): Option[String] = None

override protected[this] def expectedTriggerClasses: Seq[Nothing] = Seq.empty
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import org.lfdecentralizedtrust.splice.store.{
DomainUnpausedSynchronization,
UpdateHistory,
}
import org.lfdecentralizedtrust.splice.util.QualifiedName
import org.lfdecentralizedtrust.splice.wallet.config.{AutoAcceptTransfersConfig, WalletSweepConfig}
import org.lfdecentralizedtrust.splice.wallet.store.{TxLogEntry, UserWalletStore}
import org.lfdecentralizedtrust.splice.wallet.treasury.TreasuryService
Expand Down Expand Up @@ -197,8 +196,6 @@ class UserWalletAutomationService(
}

object UserWalletAutomationService extends AutomationServiceCompanion {
private[automation] def bootstrapPackageIdResolver(template: QualifiedName): Option[String] = None

// defined because instances are created by UserWalletService, not immediately
// available in the app state
override protected[this] def expectedTriggerClasses: Seq[TriggerClass] =
Expand Down
Loading