diff --git a/.gitignore b/.gitignore index fae017aaa8..266d64fe72 100644 --- a/.gitignore +++ b/.gitignore @@ -82,3 +82,6 @@ docs/src/deployment/observability/metrics_reference.rst /.vagrant/ /vagrant-nix-cache/ lnav*work + +# VS Code +.vscode/ diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AppUpgradeIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AppUpgradeIntegrationTest.scala index 0b7435e117..707f8867aa 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AppUpgradeIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AppUpgradeIntegrationTest.scala @@ -261,6 +261,7 @@ class AppUpgradeIntegrationTest amuletConfig.transferPreapprovalBaseDuration, amuletConfig.developmentFundManagerBlacklist, amuletConfig.minDevelopmentFundMintingDelay, + amuletConfig.amuletSwitchOverTimes, ) val upgradeAction = new ARC_AmuletRules( new CRARC_SetConfig( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/BootstrapPackageConfigIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/BootstrapPackageConfigIntegrationTest.scala index cd76c33b1d..5495102a18 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/BootstrapPackageConfigIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/BootstrapPackageConfigIntegrationTest.scala @@ -243,6 +243,7 @@ class BootstrapPackageConfigIntegrationTest amuletConfig.transferPreapprovalBaseDuration, amuletConfig.developmentFundManagerBlacklist, amuletConfig.minDevelopmentFundMintingDelay, + amuletConfig.amuletSwitchOverTimes, ) val upgradeAction = new ARC_AmuletRules( @@ -395,6 +396,7 @@ class BootstrapPackageConfigIntegrationTest amuletConfig.transferPreapprovalBaseDuration, amuletConfig.developmentFundManagerBlacklist, amuletConfig.minDevelopmentFundMintingDelay, + amuletConfig.amuletSwitchOverTimes, ) val upgradeAction = new ARC_AmuletRules( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/DevelopmentFundFrontendTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/DevelopmentFundFrontendTimeBasedIntegrationTest.scala index 9f70ca79f4..cfe3a7584a 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/DevelopmentFundFrontendTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/DevelopmentFundFrontendTimeBasedIntegrationTest.scala @@ -448,6 +448,7 @@ class DevelopmentFundFrontendTimeBasedIntegrationTest existingConfig.transferPreapprovalBaseDuration, existingConfig.developmentFundManagerBlacklist, existingConfig.minDevelopmentFundMintingDelay, + existingConfig.amuletSwitchOverTimes, ) val action = new ARC_AmuletRules( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvReconcileSynchronizerConfigIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvReconcileSynchronizerConfigIntegrationTest.scala index 3abc3cacad..aef8a27e22 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvReconcileSynchronizerConfigIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvReconcileSynchronizerConfigIntegrationTest.scala @@ -147,6 +147,7 @@ class SvReconcileSynchronizerConfigIntegrationTest extends SvIntegrationTestBase amuletConfig.transferPreapprovalBaseDuration, amuletConfig.developmentFundManagerBlacklist, amuletConfig.minDevelopmentFundMintingDelay, + amuletConfig.amuletSwitchOverTimes, ) } diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvStateManagementIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvStateManagementIntegrationTest.scala index f13543355f..85b60dbeb6 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvStateManagementIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvStateManagementIntegrationTest.scala @@ -397,6 +397,7 @@ class SvStateManagementIntegrationTest extends SvIntegrationTestBase with Trigge sv1Backend.getDsoInfo().dsoRules.payload.config.nextScheduledSynchronizerUpgrade, sv1Backend.getDsoInfo().dsoRules.payload.config.voteCooldownTime, sv1Backend.getDsoInfo().dsoRules.payload.config.nextScheduledLogicalSynchronizerUpgrade, + sv1Backend.getDsoInfo().dsoRules.payload.config.svOperationsSwitchOverTimes, ) val action: ActionRequiringConfirmation = @@ -508,6 +509,7 @@ class SvStateManagementIntegrationTest extends SvIntegrationTestBase with Trigge initialConfig.transferPreapprovalBaseDuration, initialConfig.developmentFundManagerBlacklist, initialConfig.minDevelopmentFundMintingDelay, + initialConfig.amuletSwitchOverTimes, ) val (_, voteRequestCid) = actAndCheck( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvTimeBasedOnboardingIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvTimeBasedOnboardingIntegrationTest.scala index 28dc924e85..a74e8c6169 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvTimeBasedOnboardingIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvTimeBasedOnboardingIntegrationTest.scala @@ -205,6 +205,12 @@ class SvTimeBasedOnboardingIntegrationTest .payload .config .nextScheduledLogicalSynchronizerUpgrade, + sv1Backend + .getDsoInfo() + .dsoRules + .payload + .config + .svOperationsSwitchOverTimes, ) val action: ActionRequiringConfirmation = diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TrafficBasedRewardsSvAppTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TrafficBasedRewardsSvAppTimeBasedIntegrationTest.scala index b85dce2ada..8a1f502274 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TrafficBasedRewardsSvAppTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TrafficBasedRewardsSvAppTimeBasedIntegrationTest.scala @@ -758,6 +758,7 @@ class TrafficBasedRewardsSvAppTimeBasedIntegrationTest existing.transferPreapprovalBaseDuration, existing.developmentFundManagerBlacklist, existing.minDevelopmentFundMintingDelay, + existing.amuletSwitchOverTimes, ) setAmuletConfig(Seq((None, newConfig, existing))) eventually() { 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 2a320311e6..9497bd394c 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 @@ -192,6 +192,7 @@ class UnsupportedPackageVettingIntegrationTest currentConfig.transferPreapprovalBaseDuration, currentConfig.developmentFundManagerBlacklist, currentConfig.minDevelopmentFundMintingDelay, + currentConfig.amuletSwitchOverTimes, ) setAmuletConfig(Seq((None, newAmuletConfig, currentConfig))) } diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/AmuletConfigUtil.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/AmuletConfigUtil.scala index df53420fa6..3f11b93d07 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/AmuletConfigUtil.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/AmuletConfigUtil.scala @@ -68,6 +68,7 @@ trait AmuletConfigUtil extends TestCommon { existingAmuletConfig.transferPreapprovalBaseDuration, existingAmuletConfig.developmentFundManagerBlacklist, existingAmuletConfig.minDevelopmentFundMintingDelay, + existingAmuletConfig.amuletSwitchOverTimes, ) } diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/SvTestUtil.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/SvTestUtil.scala index 7f7bcb1cfb..11b6e94666 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/SvTestUtil.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/SvTestUtil.scala @@ -328,6 +328,7 @@ trait SvTestUtil extends TestCommon { domainUpgradeSchedule.toJava, dsoRulesConfig.voteCooldownTime, dsoRulesConfig.nextScheduledLogicalSynchronizerUpgrade, + dsoRulesConfig.svOperationsSwitchOverTimes, ) private def updateNextScheduledLogicalSynchronizerUpgrade( @@ -347,6 +348,7 @@ trait SvTestUtil extends TestCommon { dsoRulesConfig.nextScheduledSynchronizerUpgrade, dsoRulesConfig.voteCooldownTime, schedule.toJava, + dsoRulesConfig.svOperationsSwitchOverTimes, ) def computeAmuletsToIssueToSvs( diff --git a/apps/common/frontend-test-handlers/src/mocks/helpers/amulet-config-helper.ts b/apps/common/frontend-test-handlers/src/mocks/helpers/amulet-config-helper.ts index 4b11747a88..aeb0b36405 100644 --- a/apps/common/frontend-test-handlers/src/mocks/helpers/amulet-config-helper.ts +++ b/apps/common/frontend-test-handlers/src/mocks/helpers/amulet-config-helper.ts @@ -82,6 +82,7 @@ export function getAmuletRulesConfig( baseRateTrafficLimitsBurstWindow: string = '1200000000' ): AmuletConfig { return { + amuletSwitchOverTimes: null, packageConfig: { amuletNameService: '0.1.8', walletPayments: '0.1.8', @@ -460,7 +461,10 @@ export function getExpectedAmuletRulesConfigDiffsHTML( class="jsondiffpatch-unchanged" data-key="minDevelopmentFundMintingDelay">
minDevelopmentFundMintingDelay
null
+ class="jsondiffpatch-value">
null
  • amuletSwitchOverTimes
    null
  • `; return mock; } diff --git a/apps/common/frontend-test-handlers/src/mocks/helpers/dso-config-helper.ts b/apps/common/frontend-test-handlers/src/mocks/helpers/dso-config-helper.ts index a02e2fe3a7..fed4275d77 100644 --- a/apps/common/frontend-test-handlers/src/mocks/helpers/dso-config-helper.ts +++ b/apps/common/frontend-test-handlers/src/mocks/helpers/dso-config-helper.ts @@ -21,6 +21,7 @@ export function getDsoRulesConfig( ? nextScheduledSynchronizerUpgrade : null, nextScheduledLogicalSynchronizerUpgrade: null, + svOperationsSwitchOverTimes: null, actionConfirmationTimeout: { microseconds: '3600000000', }, @@ -224,6 +225,9 @@ export function getExpectedDsoRulesConfigDiffsHTML( }
  • nextScheduledLogicalSynchronizerUpgrade
    null
  • svOperationsSwitchOverTimes
    null
  • `; @@ -325,6 +329,9 @@ export function getExpectedDsoRulesConfigDiffsHTML( }
  • nextScheduledLogicalSynchronizerUpgrade
    null
  • svOperationsSwitchOverTimes
    null
  • `; diff --git a/apps/common/frontend/src/__tests__/mocks/constants.ts b/apps/common/frontend/src/__tests__/mocks/constants.ts index a06c98d8ed..56b6abc951 100644 --- a/apps/common/frontend/src/__tests__/mocks/constants.ts +++ b/apps/common/frontend/src/__tests__/mocks/constants.ts @@ -198,6 +198,7 @@ export const plannedVoteResult: DsoRules_CloseVoteRequestResult = { transferPreapprovalBaseDuration: null, developmentFundManagerBlacklist: null, minDevelopmentFundMintingDelay: null, + amuletSwitchOverTimes: null, }, }, }, 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 0f4b3e7ed0..d8930c2bf0 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 @@ -2971,7 +2971,7 @@ object DarResources { ) val amulet_0_1_23 = DarResource( "splice-amulet-0.1.23.dar", - "3334d45e6b67163a6a55abab87b15d4527cf7267d5495b538f0e4a469b24bb10", + "8fe7573f5535dc5b910a1f24d7d980da0e10ab38f8d29cb397146119bbfb7b3a", PackageMetadata( PackageName.assertFromString("splice-amulet"), PackageVersion.assertFromString("0.1.23"), @@ -2981,6 +2981,7 @@ object DarResources { "9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69", "7adc4c2d07fa3a51173c843cba36e610c1168b2dbbf53076e20c0092eae8763d", "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", + "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", "29317e3b7b165d2bbf16721bcca0ec4869e53eddb2738bddf790d61af28e0099", "4039f60273388c5701e27950ab3e8c3044433b0876535a3b48fb042cc77bf02a", "7cff38e34bd192d498d5a7606aa3b893e35b0f632d582b273f66dab90f2f14ef", @@ -2990,6 +2991,7 @@ object DarResources { "c3bb0c5d04799b3f11bad7c3c102963e115cf53da3e4afcbcfd9f06ebd82b4ff", "0e4a572ab1fb94744abb02243a6bbed6c78fc6e3c8d3f60c655f057692a62816", "ab068e2f920d0e06347975c2a342b71f8b8e3b4be0f02ead9442caac51aa8877", + "411fec054a5cadb4291604facc75e1b51c1a13515e18664d696699f822e49124", "e7e0adfa881e7dbbb07da065ae54444da7c4bccebcb8872ab0cb5dcf9f3761ce", "7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda", "b70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946", @@ -3000,8 +3002,6 @@ object DarResources { "52854220dc199884704958df38befd5492d78384a032fd7558c38f00e3d778a2", "d095a2ccf6dd36b2415adc4fa676f9191ba63cd39828dc5207b36892ec350cbc", "6fe848530b2404017c4a12874c956ad7d5c8a419ee9b040f96b5c13172d2e193", - "b5be6316177384677c024316c0bfaf7d3d494e7c3ad6c540d2032e6112b004bc", - "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", "f181cd661f7af3a60bdaae4b0285a2a67beb55d6910fc8431dbae21a5825ec0f", "60c61c542207080e97e378ab447cc355ecc47534b3a3ebbff307c4fb8339bc4d", "6f7b72361bc2039369651b4195315a2a5849babafec67b3c96e66ea6e560ec35", @@ -3032,7 +3032,7 @@ object DarResources { ) val amulet_current = DarResource( "splice-amulet-current.dar", - "3334d45e6b67163a6a55abab87b15d4527cf7267d5495b538f0e4a469b24bb10", + "8fe7573f5535dc5b910a1f24d7d980da0e10ab38f8d29cb397146119bbfb7b3a", PackageMetadata( PackageName.assertFromString("splice-amulet"), PackageVersion.assertFromString("0.1.23"), @@ -3042,6 +3042,7 @@ object DarResources { "9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69", "7adc4c2d07fa3a51173c843cba36e610c1168b2dbbf53076e20c0092eae8763d", "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", + "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", "29317e3b7b165d2bbf16721bcca0ec4869e53eddb2738bddf790d61af28e0099", "4039f60273388c5701e27950ab3e8c3044433b0876535a3b48fb042cc77bf02a", "7cff38e34bd192d498d5a7606aa3b893e35b0f632d582b273f66dab90f2f14ef", @@ -3051,6 +3052,7 @@ object DarResources { "c3bb0c5d04799b3f11bad7c3c102963e115cf53da3e4afcbcfd9f06ebd82b4ff", "0e4a572ab1fb94744abb02243a6bbed6c78fc6e3c8d3f60c655f057692a62816", "ab068e2f920d0e06347975c2a342b71f8b8e3b4be0f02ead9442caac51aa8877", + "411fec054a5cadb4291604facc75e1b51c1a13515e18664d696699f822e49124", "e7e0adfa881e7dbbb07da065ae54444da7c4bccebcb8872ab0cb5dcf9f3761ce", "7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda", "b70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946", @@ -3061,8 +3063,6 @@ object DarResources { "52854220dc199884704958df38befd5492d78384a032fd7558c38f00e3d778a2", "d095a2ccf6dd36b2415adc4fa676f9191ba63cd39828dc5207b36892ec350cbc", "6fe848530b2404017c4a12874c956ad7d5c8a419ee9b040f96b5c13172d2e193", - "b5be6316177384677c024316c0bfaf7d3d494e7c3ad6c540d2032e6112b004bc", - "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", "f181cd661f7af3a60bdaae4b0285a2a67beb55d6910fc8431dbae21a5825ec0f", "60c61c542207080e97e378ab447cc355ecc47534b3a3ebbff307c4fb8339bc4d", "6f7b72361bc2039369651b4195315a2a5849babafec67b3c96e66ea6e560ec35", @@ -4530,7 +4530,7 @@ object DarResources { ) val dsoGovernance_0_1_29 = DarResource( "splice-dso-governance-0.1.29.dar", - "e152974a7c3742ce67f41f6a53370c78a315059b83a3da54016b9bbecb3e2049", + "2b680f34f11be43d65a2dde723f4c9595a0983f63a0bb3455f03bb16c5d9b814", PackageMetadata( PackageName.assertFromString("splice-dso-governance"), PackageVersion.assertFromString("0.1.29"), @@ -4539,6 +4539,8 @@ object DarResources { Set( "9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69", "7adc4c2d07fa3a51173c843cba36e610c1168b2dbbf53076e20c0092eae8763d", + "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", + "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", "29317e3b7b165d2bbf16721bcca0ec4869e53eddb2738bddf790d61af28e0099", "4039f60273388c5701e27950ab3e8c3044433b0876535a3b48fb042cc77bf02a", "7cff38e34bd192d498d5a7606aa3b893e35b0f632d582b273f66dab90f2f14ef", @@ -4548,8 +4550,10 @@ object DarResources { "c3bb0c5d04799b3f11bad7c3c102963e115cf53da3e4afcbcfd9f06ebd82b4ff", "0e4a572ab1fb94744abb02243a6bbed6c78fc6e3c8d3f60c655f057692a62816", "ab068e2f920d0e06347975c2a342b71f8b8e3b4be0f02ead9442caac51aa8877", + "411fec054a5cadb4291604facc75e1b51c1a13515e18664d696699f822e49124", "e7e0adfa881e7dbbb07da065ae54444da7c4bccebcb8872ab0cb5dcf9f3761ce", "7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda", + "cc7d11e790174d2b18ad3e148d8762340e58de35616b399f9397a1b1d5b752f1", "b70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946", "93c942ae2b4c2ba674fb152fe38473c507bda4e82b4e4c5da55a552a9d8cce1d", "3b25c9b08ac6d895417c604fc0ee4b7e47ef974ff8fa43f139daa43bb431fefc", @@ -4558,21 +4562,17 @@ object DarResources { "52854220dc199884704958df38befd5492d78384a032fd7558c38f00e3d778a2", "d095a2ccf6dd36b2415adc4fa676f9191ba63cd39828dc5207b36892ec350cbc", "6fe848530b2404017c4a12874c956ad7d5c8a419ee9b040f96b5c13172d2e193", - "9ec71f7f26381ebf5bbf5cf17e5f9eea4479995d0756472aefb6ca267077aeb6", - "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", - "b5be6316177384677c024316c0bfaf7d3d494e7c3ad6c540d2032e6112b004bc", - "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", - "3334d45e6b67163a6a55abab87b15d4527cf7267d5495b538f0e4a469b24bb10", "f181cd661f7af3a60bdaae4b0285a2a67beb55d6910fc8431dbae21a5825ec0f", "60c61c542207080e97e378ab447cc355ecc47534b3a3ebbff307c4fb8339bc4d", "6f7b72361bc2039369651b4195315a2a5849babafec67b3c96e66ea6e560ec35", + "8fe7573f5535dc5b910a1f24d7d980da0e10ab38f8d29cb397146119bbfb7b3a", "fcee8dfc1b81c449b421410edd5041c16ab59c45bbea85bcb094d1b17c3e9df7", "6f8e6085f5769861ae7a40dccd618d6f747297d59b37cab89b93e2fa80b0c024", + "d7297024d6a3dc7a81509556af0e686dd5a3ff21f8db1febcfbf49cf3dab195a", "fa79192fe1cce03d7d8db36471dde4cf6c96e6d0f07e1c391dd49e355af9b38c", "19f0df5fdaf5a96e137b6ea885fdb378f37bd3166bd9a47ee11518e33fa09a20", "a1fa18133ae48cbb616c4c148e78e661666778c3087d099067c7fe1868cbb3a1", "4b7ecfc366d79ccc5ed07c80f26fe489cf2dfd43ce2856c06a78e6a048db7032", - "9a863331005db4afa6375b4892462994c2e392ed36c895a62c946d2cab53685d", "86d888f34152dae8729900966b44abcb466b9c111699678de58032de601d2b04", "6da1f43a10a179524e840e7288b47bda213339b0552d92e87ae811e52f59fc0e", "051a3b0563a6fa4df4cb34448081e48b061e555aa1a265abf6ae8f3f4cafe439", @@ -4594,7 +4594,7 @@ object DarResources { ) val dsoGovernance_current = DarResource( "splice-dso-governance-current.dar", - "e152974a7c3742ce67f41f6a53370c78a315059b83a3da54016b9bbecb3e2049", + "2b680f34f11be43d65a2dde723f4c9595a0983f63a0bb3455f03bb16c5d9b814", PackageMetadata( PackageName.assertFromString("splice-dso-governance"), PackageVersion.assertFromString("0.1.29"), @@ -4603,6 +4603,8 @@ object DarResources { Set( "9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69", "7adc4c2d07fa3a51173c843cba36e610c1168b2dbbf53076e20c0092eae8763d", + "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", + "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", "29317e3b7b165d2bbf16721bcca0ec4869e53eddb2738bddf790d61af28e0099", "4039f60273388c5701e27950ab3e8c3044433b0876535a3b48fb042cc77bf02a", "7cff38e34bd192d498d5a7606aa3b893e35b0f632d582b273f66dab90f2f14ef", @@ -4612,8 +4614,10 @@ object DarResources { "c3bb0c5d04799b3f11bad7c3c102963e115cf53da3e4afcbcfd9f06ebd82b4ff", "0e4a572ab1fb94744abb02243a6bbed6c78fc6e3c8d3f60c655f057692a62816", "ab068e2f920d0e06347975c2a342b71f8b8e3b4be0f02ead9442caac51aa8877", + "411fec054a5cadb4291604facc75e1b51c1a13515e18664d696699f822e49124", "e7e0adfa881e7dbbb07da065ae54444da7c4bccebcb8872ab0cb5dcf9f3761ce", "7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda", + "cc7d11e790174d2b18ad3e148d8762340e58de35616b399f9397a1b1d5b752f1", "b70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946", "93c942ae2b4c2ba674fb152fe38473c507bda4e82b4e4c5da55a552a9d8cce1d", "3b25c9b08ac6d895417c604fc0ee4b7e47ef974ff8fa43f139daa43bb431fefc", @@ -4622,21 +4626,17 @@ object DarResources { "52854220dc199884704958df38befd5492d78384a032fd7558c38f00e3d778a2", "d095a2ccf6dd36b2415adc4fa676f9191ba63cd39828dc5207b36892ec350cbc", "6fe848530b2404017c4a12874c956ad7d5c8a419ee9b040f96b5c13172d2e193", - "9ec71f7f26381ebf5bbf5cf17e5f9eea4479995d0756472aefb6ca267077aeb6", - "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", - "b5be6316177384677c024316c0bfaf7d3d494e7c3ad6c540d2032e6112b004bc", - "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", - "3334d45e6b67163a6a55abab87b15d4527cf7267d5495b538f0e4a469b24bb10", "f181cd661f7af3a60bdaae4b0285a2a67beb55d6910fc8431dbae21a5825ec0f", "60c61c542207080e97e378ab447cc355ecc47534b3a3ebbff307c4fb8339bc4d", "6f7b72361bc2039369651b4195315a2a5849babafec67b3c96e66ea6e560ec35", + "8fe7573f5535dc5b910a1f24d7d980da0e10ab38f8d29cb397146119bbfb7b3a", "fcee8dfc1b81c449b421410edd5041c16ab59c45bbea85bcb094d1b17c3e9df7", "6f8e6085f5769861ae7a40dccd618d6f747297d59b37cab89b93e2fa80b0c024", + "d7297024d6a3dc7a81509556af0e686dd5a3ff21f8db1febcfbf49cf3dab195a", "fa79192fe1cce03d7d8db36471dde4cf6c96e6d0f07e1c391dd49e355af9b38c", "19f0df5fdaf5a96e137b6ea885fdb378f37bd3166bd9a47ee11518e33fa09a20", "a1fa18133ae48cbb616c4c148e78e661666778c3087d099067c7fe1868cbb3a1", "4b7ecfc366d79ccc5ed07c80f26fe489cf2dfd43ce2856c06a78e6a048db7032", - "9a863331005db4afa6375b4892462994c2e392ed36c895a62c946d2cab53685d", "86d888f34152dae8729900966b44abcb466b9c111699678de58032de601d2b04", "6da1f43a10a179524e840e7288b47bda213339b0552d92e87ae811e52f59fc0e", "051a3b0563a6fa4df4cb34448081e48b061e555aa1a265abf6ae8f3f4cafe439", @@ -6118,7 +6118,7 @@ object DarResources { ) val wallet_0_1_24 = DarResource( "splice-wallet-0.1.24.dar", - "9706b999f856794a0f16bb551b7787beb13cfa652814b86f83ea7b6cca84ce26", + "d42261314d98cc04bf50bcc58930af98b9f33aeed11339465925de697d3ba66e", PackageMetadata( PackageName.assertFromString("splice-wallet"), PackageVersion.assertFromString("0.1.24"), @@ -6127,6 +6127,8 @@ object DarResources { Set( "9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69", "7adc4c2d07fa3a51173c843cba36e610c1168b2dbbf53076e20c0092eae8763d", + "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", + "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", "29317e3b7b165d2bbf16721bcca0ec4869e53eddb2738bddf790d61af28e0099", "4039f60273388c5701e27950ab3e8c3044433b0876535a3b48fb042cc77bf02a", "7cff38e34bd192d498d5a7606aa3b893e35b0f632d582b273f66dab90f2f14ef", @@ -6136,6 +6138,7 @@ object DarResources { "c3bb0c5d04799b3f11bad7c3c102963e115cf53da3e4afcbcfd9f06ebd82b4ff", "0e4a572ab1fb94744abb02243a6bbed6c78fc6e3c8d3f60c655f057692a62816", "ab068e2f920d0e06347975c2a342b71f8b8e3b4be0f02ead9442caac51aa8877", + "411fec054a5cadb4291604facc75e1b51c1a13515e18664d696699f822e49124", "e7e0adfa881e7dbbb07da065ae54444da7c4bccebcb8872ab0cb5dcf9f3761ce", "7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda", "b70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946", @@ -6146,16 +6149,13 @@ object DarResources { "52854220dc199884704958df38befd5492d78384a032fd7558c38f00e3d778a2", "d095a2ccf6dd36b2415adc4fa676f9191ba63cd39828dc5207b36892ec350cbc", "6fe848530b2404017c4a12874c956ad7d5c8a419ee9b040f96b5c13172d2e193", - "9ec71f7f26381ebf5bbf5cf17e5f9eea4479995d0756472aefb6ca267077aeb6", - "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", - "b5be6316177384677c024316c0bfaf7d3d494e7c3ad6c540d2032e6112b004bc", - "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", - "3334d45e6b67163a6a55abab87b15d4527cf7267d5495b538f0e4a469b24bb10", "f181cd661f7af3a60bdaae4b0285a2a67beb55d6910fc8431dbae21a5825ec0f", "60c61c542207080e97e378ab447cc355ecc47534b3a3ebbff307c4fb8339bc4d", "6f7b72361bc2039369651b4195315a2a5849babafec67b3c96e66ea6e560ec35", + "8fe7573f5535dc5b910a1f24d7d980da0e10ab38f8d29cb397146119bbfb7b3a", "fcee8dfc1b81c449b421410edd5041c16ab59c45bbea85bcb094d1b17c3e9df7", "6f8e6085f5769861ae7a40dccd618d6f747297d59b37cab89b93e2fa80b0c024", + "d7297024d6a3dc7a81509556af0e686dd5a3ff21f8db1febcfbf49cf3dab195a", "fa79192fe1cce03d7d8db36471dde4cf6c96e6d0f07e1c391dd49e355af9b38c", "19f0df5fdaf5a96e137b6ea885fdb378f37bd3166bd9a47ee11518e33fa09a20", "a1fa18133ae48cbb616c4c148e78e661666778c3087d099067c7fe1868cbb3a1", @@ -6181,7 +6181,7 @@ object DarResources { ) val wallet_current = DarResource( "splice-wallet-current.dar", - "9706b999f856794a0f16bb551b7787beb13cfa652814b86f83ea7b6cca84ce26", + "d42261314d98cc04bf50bcc58930af98b9f33aeed11339465925de697d3ba66e", PackageMetadata( PackageName.assertFromString("splice-wallet"), PackageVersion.assertFromString("0.1.24"), @@ -6190,6 +6190,8 @@ object DarResources { Set( "9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69", "7adc4c2d07fa3a51173c843cba36e610c1168b2dbbf53076e20c0092eae8763d", + "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", + "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", "29317e3b7b165d2bbf16721bcca0ec4869e53eddb2738bddf790d61af28e0099", "4039f60273388c5701e27950ab3e8c3044433b0876535a3b48fb042cc77bf02a", "7cff38e34bd192d498d5a7606aa3b893e35b0f632d582b273f66dab90f2f14ef", @@ -6199,6 +6201,7 @@ object DarResources { "c3bb0c5d04799b3f11bad7c3c102963e115cf53da3e4afcbcfd9f06ebd82b4ff", "0e4a572ab1fb94744abb02243a6bbed6c78fc6e3c8d3f60c655f057692a62816", "ab068e2f920d0e06347975c2a342b71f8b8e3b4be0f02ead9442caac51aa8877", + "411fec054a5cadb4291604facc75e1b51c1a13515e18664d696699f822e49124", "e7e0adfa881e7dbbb07da065ae54444da7c4bccebcb8872ab0cb5dcf9f3761ce", "7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda", "b70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946", @@ -6209,16 +6212,13 @@ object DarResources { "52854220dc199884704958df38befd5492d78384a032fd7558c38f00e3d778a2", "d095a2ccf6dd36b2415adc4fa676f9191ba63cd39828dc5207b36892ec350cbc", "6fe848530b2404017c4a12874c956ad7d5c8a419ee9b040f96b5c13172d2e193", - "9ec71f7f26381ebf5bbf5cf17e5f9eea4479995d0756472aefb6ca267077aeb6", - "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", - "b5be6316177384677c024316c0bfaf7d3d494e7c3ad6c540d2032e6112b004bc", - "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", - "3334d45e6b67163a6a55abab87b15d4527cf7267d5495b538f0e4a469b24bb10", "f181cd661f7af3a60bdaae4b0285a2a67beb55d6910fc8431dbae21a5825ec0f", "60c61c542207080e97e378ab447cc355ecc47534b3a3ebbff307c4fb8339bc4d", "6f7b72361bc2039369651b4195315a2a5849babafec67b3c96e66ea6e560ec35", + "8fe7573f5535dc5b910a1f24d7d980da0e10ab38f8d29cb397146119bbfb7b3a", "fcee8dfc1b81c449b421410edd5041c16ab59c45bbea85bcb094d1b17c3e9df7", "6f8e6085f5769861ae7a40dccd618d6f747297d59b37cab89b93e2fa80b0c024", + "d7297024d6a3dc7a81509556af0e686dd5a3ff21f8db1febcfbf49cf3dab195a", "fa79192fe1cce03d7d8db36471dde4cf6c96e6d0f07e1c391dd49e355af9b38c", "19f0df5fdaf5a96e137b6ea885fdb378f37bd3166bd9a47ee11518e33fa09a20", "a1fa18133ae48cbb616c4c148e78e661666778c3087d099067c7fe1868cbb3a1", @@ -7429,7 +7429,7 @@ object DarResources { ) val amuletNameService_0_1_24 = DarResource( "splice-amulet-name-service-0.1.24.dar", - "9a863331005db4afa6375b4892462994c2e392ed36c895a62c946d2cab53685d", + "cc7d11e790174d2b18ad3e148d8762340e58de35616b399f9397a1b1d5b752f1", PackageMetadata( PackageName.assertFromString("splice-amulet-name-service"), PackageVersion.assertFromString("0.1.24"), @@ -7438,6 +7438,8 @@ object DarResources { Set( "9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69", "7adc4c2d07fa3a51173c843cba36e610c1168b2dbbf53076e20c0092eae8763d", + "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", + "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", "29317e3b7b165d2bbf16721bcca0ec4869e53eddb2738bddf790d61af28e0099", "4039f60273388c5701e27950ab3e8c3044433b0876535a3b48fb042cc77bf02a", "7cff38e34bd192d498d5a7606aa3b893e35b0f632d582b273f66dab90f2f14ef", @@ -7447,6 +7449,7 @@ object DarResources { "c3bb0c5d04799b3f11bad7c3c102963e115cf53da3e4afcbcfd9f06ebd82b4ff", "0e4a572ab1fb94744abb02243a6bbed6c78fc6e3c8d3f60c655f057692a62816", "ab068e2f920d0e06347975c2a342b71f8b8e3b4be0f02ead9442caac51aa8877", + "411fec054a5cadb4291604facc75e1b51c1a13515e18664d696699f822e49124", "e7e0adfa881e7dbbb07da065ae54444da7c4bccebcb8872ab0cb5dcf9f3761ce", "7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda", "b70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946", @@ -7457,16 +7460,13 @@ object DarResources { "52854220dc199884704958df38befd5492d78384a032fd7558c38f00e3d778a2", "d095a2ccf6dd36b2415adc4fa676f9191ba63cd39828dc5207b36892ec350cbc", "6fe848530b2404017c4a12874c956ad7d5c8a419ee9b040f96b5c13172d2e193", - "9ec71f7f26381ebf5bbf5cf17e5f9eea4479995d0756472aefb6ca267077aeb6", - "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", - "b5be6316177384677c024316c0bfaf7d3d494e7c3ad6c540d2032e6112b004bc", - "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", - "3334d45e6b67163a6a55abab87b15d4527cf7267d5495b538f0e4a469b24bb10", "f181cd661f7af3a60bdaae4b0285a2a67beb55d6910fc8431dbae21a5825ec0f", "60c61c542207080e97e378ab447cc355ecc47534b3a3ebbff307c4fb8339bc4d", "6f7b72361bc2039369651b4195315a2a5849babafec67b3c96e66ea6e560ec35", + "8fe7573f5535dc5b910a1f24d7d980da0e10ab38f8d29cb397146119bbfb7b3a", "fcee8dfc1b81c449b421410edd5041c16ab59c45bbea85bcb094d1b17c3e9df7", "6f8e6085f5769861ae7a40dccd618d6f747297d59b37cab89b93e2fa80b0c024", + "d7297024d6a3dc7a81509556af0e686dd5a3ff21f8db1febcfbf49cf3dab195a", "fa79192fe1cce03d7d8db36471dde4cf6c96e6d0f07e1c391dd49e355af9b38c", "19f0df5fdaf5a96e137b6ea885fdb378f37bd3166bd9a47ee11518e33fa09a20", "a1fa18133ae48cbb616c4c148e78e661666778c3087d099067c7fe1868cbb3a1", @@ -7492,7 +7492,7 @@ object DarResources { ) val amuletNameService_current = DarResource( "splice-amulet-name-service-current.dar", - "9a863331005db4afa6375b4892462994c2e392ed36c895a62c946d2cab53685d", + "cc7d11e790174d2b18ad3e148d8762340e58de35616b399f9397a1b1d5b752f1", PackageMetadata( PackageName.assertFromString("splice-amulet-name-service"), PackageVersion.assertFromString("0.1.24"), @@ -7501,6 +7501,8 @@ object DarResources { Set( "9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69", "7adc4c2d07fa3a51173c843cba36e610c1168b2dbbf53076e20c0092eae8763d", + "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", + "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", "29317e3b7b165d2bbf16721bcca0ec4869e53eddb2738bddf790d61af28e0099", "4039f60273388c5701e27950ab3e8c3044433b0876535a3b48fb042cc77bf02a", "7cff38e34bd192d498d5a7606aa3b893e35b0f632d582b273f66dab90f2f14ef", @@ -7510,6 +7512,7 @@ object DarResources { "c3bb0c5d04799b3f11bad7c3c102963e115cf53da3e4afcbcfd9f06ebd82b4ff", "0e4a572ab1fb94744abb02243a6bbed6c78fc6e3c8d3f60c655f057692a62816", "ab068e2f920d0e06347975c2a342b71f8b8e3b4be0f02ead9442caac51aa8877", + "411fec054a5cadb4291604facc75e1b51c1a13515e18664d696699f822e49124", "e7e0adfa881e7dbbb07da065ae54444da7c4bccebcb8872ab0cb5dcf9f3761ce", "7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda", "b70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946", @@ -7520,16 +7523,13 @@ object DarResources { "52854220dc199884704958df38befd5492d78384a032fd7558c38f00e3d778a2", "d095a2ccf6dd36b2415adc4fa676f9191ba63cd39828dc5207b36892ec350cbc", "6fe848530b2404017c4a12874c956ad7d5c8a419ee9b040f96b5c13172d2e193", - "9ec71f7f26381ebf5bbf5cf17e5f9eea4479995d0756472aefb6ca267077aeb6", - "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", - "b5be6316177384677c024316c0bfaf7d3d494e7c3ad6c540d2032e6112b004bc", - "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", - "3334d45e6b67163a6a55abab87b15d4527cf7267d5495b538f0e4a469b24bb10", "f181cd661f7af3a60bdaae4b0285a2a67beb55d6910fc8431dbae21a5825ec0f", "60c61c542207080e97e378ab447cc355ecc47534b3a3ebbff307c4fb8339bc4d", "6f7b72361bc2039369651b4195315a2a5849babafec67b3c96e66ea6e560ec35", + "8fe7573f5535dc5b910a1f24d7d980da0e10ab38f8d29cb397146119bbfb7b3a", "fcee8dfc1b81c449b421410edd5041c16ab59c45bbea85bcb094d1b17c3e9df7", "6f8e6085f5769861ae7a40dccd618d6f747297d59b37cab89b93e2fa80b0c024", + "d7297024d6a3dc7a81509556af0e686dd5a3ff21f8db1febcfbf49cf3dab195a", "fa79192fe1cce03d7d8db36471dde4cf6c96e6d0f07e1c391dd49e355af9b38c", "19f0df5fdaf5a96e137b6ea885fdb378f37bd3166bd9a47ee11518e33fa09a20", "a1fa18133ae48cbb616c4c148e78e661666778c3087d099067c7fe1868cbb3a1", @@ -8668,7 +8668,7 @@ object DarResources { ) val walletPayments_0_1_23 = DarResource( "splice-wallet-payments-0.1.23.dar", - "9ec71f7f26381ebf5bbf5cf17e5f9eea4479995d0756472aefb6ca267077aeb6", + "d7297024d6a3dc7a81509556af0e686dd5a3ff21f8db1febcfbf49cf3dab195a", PackageMetadata( PackageName.assertFromString("splice-wallet-payments"), PackageVersion.assertFromString("0.1.23"), @@ -8678,6 +8678,7 @@ object DarResources { "9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69", "7adc4c2d07fa3a51173c843cba36e610c1168b2dbbf53076e20c0092eae8763d", "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", + "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", "29317e3b7b165d2bbf16721bcca0ec4869e53eddb2738bddf790d61af28e0099", "4039f60273388c5701e27950ab3e8c3044433b0876535a3b48fb042cc77bf02a", "7cff38e34bd192d498d5a7606aa3b893e35b0f632d582b273f66dab90f2f14ef", @@ -8687,6 +8688,7 @@ object DarResources { "c3bb0c5d04799b3f11bad7c3c102963e115cf53da3e4afcbcfd9f06ebd82b4ff", "0e4a572ab1fb94744abb02243a6bbed6c78fc6e3c8d3f60c655f057692a62816", "ab068e2f920d0e06347975c2a342b71f8b8e3b4be0f02ead9442caac51aa8877", + "411fec054a5cadb4291604facc75e1b51c1a13515e18664d696699f822e49124", "e7e0adfa881e7dbbb07da065ae54444da7c4bccebcb8872ab0cb5dcf9f3761ce", "7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda", "b70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946", @@ -8697,12 +8699,10 @@ object DarResources { "52854220dc199884704958df38befd5492d78384a032fd7558c38f00e3d778a2", "d095a2ccf6dd36b2415adc4fa676f9191ba63cd39828dc5207b36892ec350cbc", "6fe848530b2404017c4a12874c956ad7d5c8a419ee9b040f96b5c13172d2e193", - "b5be6316177384677c024316c0bfaf7d3d494e7c3ad6c540d2032e6112b004bc", - "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", - "3334d45e6b67163a6a55abab87b15d4527cf7267d5495b538f0e4a469b24bb10", "f181cd661f7af3a60bdaae4b0285a2a67beb55d6910fc8431dbae21a5825ec0f", "60c61c542207080e97e378ab447cc355ecc47534b3a3ebbff307c4fb8339bc4d", "6f7b72361bc2039369651b4195315a2a5849babafec67b3c96e66ea6e560ec35", + "8fe7573f5535dc5b910a1f24d7d980da0e10ab38f8d29cb397146119bbfb7b3a", "fcee8dfc1b81c449b421410edd5041c16ab59c45bbea85bcb094d1b17c3e9df7", "6f8e6085f5769861ae7a40dccd618d6f747297d59b37cab89b93e2fa80b0c024", "fa79192fe1cce03d7d8db36471dde4cf6c96e6d0f07e1c391dd49e355af9b38c", @@ -8730,7 +8730,7 @@ object DarResources { ) val walletPayments_current = DarResource( "splice-wallet-payments-current.dar", - "9ec71f7f26381ebf5bbf5cf17e5f9eea4479995d0756472aefb6ca267077aeb6", + "d7297024d6a3dc7a81509556af0e686dd5a3ff21f8db1febcfbf49cf3dab195a", PackageMetadata( PackageName.assertFromString("splice-wallet-payments"), PackageVersion.assertFromString("0.1.23"), @@ -8740,6 +8740,7 @@ object DarResources { "9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69", "7adc4c2d07fa3a51173c843cba36e610c1168b2dbbf53076e20c0092eae8763d", "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", + "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", "29317e3b7b165d2bbf16721bcca0ec4869e53eddb2738bddf790d61af28e0099", "4039f60273388c5701e27950ab3e8c3044433b0876535a3b48fb042cc77bf02a", "7cff38e34bd192d498d5a7606aa3b893e35b0f632d582b273f66dab90f2f14ef", @@ -8749,6 +8750,7 @@ object DarResources { "c3bb0c5d04799b3f11bad7c3c102963e115cf53da3e4afcbcfd9f06ebd82b4ff", "0e4a572ab1fb94744abb02243a6bbed6c78fc6e3c8d3f60c655f057692a62816", "ab068e2f920d0e06347975c2a342b71f8b8e3b4be0f02ead9442caac51aa8877", + "411fec054a5cadb4291604facc75e1b51c1a13515e18664d696699f822e49124", "e7e0adfa881e7dbbb07da065ae54444da7c4bccebcb8872ab0cb5dcf9f3761ce", "7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda", "b70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946", @@ -8759,12 +8761,10 @@ object DarResources { "52854220dc199884704958df38befd5492d78384a032fd7558c38f00e3d778a2", "d095a2ccf6dd36b2415adc4fa676f9191ba63cd39828dc5207b36892ec350cbc", "6fe848530b2404017c4a12874c956ad7d5c8a419ee9b040f96b5c13172d2e193", - "b5be6316177384677c024316c0bfaf7d3d494e7c3ad6c540d2032e6112b004bc", - "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", - "3334d45e6b67163a6a55abab87b15d4527cf7267d5495b538f0e4a469b24bb10", "f181cd661f7af3a60bdaae4b0285a2a67beb55d6910fc8431dbae21a5825ec0f", "60c61c542207080e97e378ab447cc355ecc47534b3a3ebbff307c4fb8339bc4d", "6f7b72361bc2039369651b4195315a2a5849babafec67b3c96e66ea6e560ec35", + "8fe7573f5535dc5b910a1f24d7d980da0e10ab38f8d29cb397146119bbfb7b3a", "fcee8dfc1b81c449b421410edd5041c16ab59c45bbea85bcb094d1b17c3e9df7", "6f8e6085f5769861ae7a40dccd618d6f747297d59b37cab89b93e2fa80b0c024", "fa79192fe1cce03d7d8db36471dde4cf6c96e6d0f07e1c391dd49e355af9b38c", @@ -9976,7 +9976,7 @@ object DarResources { ) val splitwell_0_1_24 = DarResource( "splitwell-0.1.24.dar", - "9e9708670d7eea00e768c4b7866fbb7879929d17f64b7bd63e0efc9703e510f9", + "f2ff9522cd65a8ed15c62c709a37e027fcd879ec5eab9e1476bde67b33deaec8", PackageMetadata( PackageName.assertFromString("splitwell"), PackageVersion.assertFromString("0.1.24"), @@ -9985,6 +9985,8 @@ object DarResources { Set( "9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69", "7adc4c2d07fa3a51173c843cba36e610c1168b2dbbf53076e20c0092eae8763d", + "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", + "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", "29317e3b7b165d2bbf16721bcca0ec4869e53eddb2738bddf790d61af28e0099", "4039f60273388c5701e27950ab3e8c3044433b0876535a3b48fb042cc77bf02a", "7cff38e34bd192d498d5a7606aa3b893e35b0f632d582b273f66dab90f2f14ef", @@ -9994,6 +9996,7 @@ object DarResources { "c3bb0c5d04799b3f11bad7c3c102963e115cf53da3e4afcbcfd9f06ebd82b4ff", "0e4a572ab1fb94744abb02243a6bbed6c78fc6e3c8d3f60c655f057692a62816", "ab068e2f920d0e06347975c2a342b71f8b8e3b4be0f02ead9442caac51aa8877", + "411fec054a5cadb4291604facc75e1b51c1a13515e18664d696699f822e49124", "e7e0adfa881e7dbbb07da065ae54444da7c4bccebcb8872ab0cb5dcf9f3761ce", "7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda", "b70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946", @@ -10004,16 +10007,13 @@ object DarResources { "52854220dc199884704958df38befd5492d78384a032fd7558c38f00e3d778a2", "d095a2ccf6dd36b2415adc4fa676f9191ba63cd39828dc5207b36892ec350cbc", "6fe848530b2404017c4a12874c956ad7d5c8a419ee9b040f96b5c13172d2e193", - "9ec71f7f26381ebf5bbf5cf17e5f9eea4479995d0756472aefb6ca267077aeb6", - "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", - "b5be6316177384677c024316c0bfaf7d3d494e7c3ad6c540d2032e6112b004bc", - "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", - "3334d45e6b67163a6a55abab87b15d4527cf7267d5495b538f0e4a469b24bb10", "f181cd661f7af3a60bdaae4b0285a2a67beb55d6910fc8431dbae21a5825ec0f", "60c61c542207080e97e378ab447cc355ecc47534b3a3ebbff307c4fb8339bc4d", "6f7b72361bc2039369651b4195315a2a5849babafec67b3c96e66ea6e560ec35", + "8fe7573f5535dc5b910a1f24d7d980da0e10ab38f8d29cb397146119bbfb7b3a", "fcee8dfc1b81c449b421410edd5041c16ab59c45bbea85bcb094d1b17c3e9df7", "6f8e6085f5769861ae7a40dccd618d6f747297d59b37cab89b93e2fa80b0c024", + "d7297024d6a3dc7a81509556af0e686dd5a3ff21f8db1febcfbf49cf3dab195a", "fa79192fe1cce03d7d8db36471dde4cf6c96e6d0f07e1c391dd49e355af9b38c", "19f0df5fdaf5a96e137b6ea885fdb378f37bd3166bd9a47ee11518e33fa09a20", "a1fa18133ae48cbb616c4c148e78e661666778c3087d099067c7fe1868cbb3a1", @@ -10039,7 +10039,7 @@ object DarResources { ) val splitwell_current = DarResource( "splitwell-current.dar", - "9e9708670d7eea00e768c4b7866fbb7879929d17f64b7bd63e0efc9703e510f9", + "f2ff9522cd65a8ed15c62c709a37e027fcd879ec5eab9e1476bde67b33deaec8", PackageMetadata( PackageName.assertFromString("splitwell"), PackageVersion.assertFromString("0.1.24"), @@ -10048,6 +10048,8 @@ object DarResources { Set( "9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69", "7adc4c2d07fa3a51173c843cba36e610c1168b2dbbf53076e20c0092eae8763d", + "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", + "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", "29317e3b7b165d2bbf16721bcca0ec4869e53eddb2738bddf790d61af28e0099", "4039f60273388c5701e27950ab3e8c3044433b0876535a3b48fb042cc77bf02a", "7cff38e34bd192d498d5a7606aa3b893e35b0f632d582b273f66dab90f2f14ef", @@ -10057,6 +10059,7 @@ object DarResources { "c3bb0c5d04799b3f11bad7c3c102963e115cf53da3e4afcbcfd9f06ebd82b4ff", "0e4a572ab1fb94744abb02243a6bbed6c78fc6e3c8d3f60c655f057692a62816", "ab068e2f920d0e06347975c2a342b71f8b8e3b4be0f02ead9442caac51aa8877", + "411fec054a5cadb4291604facc75e1b51c1a13515e18664d696699f822e49124", "e7e0adfa881e7dbbb07da065ae54444da7c4bccebcb8872ab0cb5dcf9f3761ce", "7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda", "b70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946", @@ -10067,16 +10070,13 @@ object DarResources { "52854220dc199884704958df38befd5492d78384a032fd7558c38f00e3d778a2", "d095a2ccf6dd36b2415adc4fa676f9191ba63cd39828dc5207b36892ec350cbc", "6fe848530b2404017c4a12874c956ad7d5c8a419ee9b040f96b5c13172d2e193", - "9ec71f7f26381ebf5bbf5cf17e5f9eea4479995d0756472aefb6ca267077aeb6", - "4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f", - "b5be6316177384677c024316c0bfaf7d3d494e7c3ad6c540d2032e6112b004bc", - "54f85ebfc7dfae18f7d70370015dcc6c6792f60135ab369c44ae52c6fc17c274", - "3334d45e6b67163a6a55abab87b15d4527cf7267d5495b538f0e4a469b24bb10", "f181cd661f7af3a60bdaae4b0285a2a67beb55d6910fc8431dbae21a5825ec0f", "60c61c542207080e97e378ab447cc355ecc47534b3a3ebbff307c4fb8339bc4d", "6f7b72361bc2039369651b4195315a2a5849babafec67b3c96e66ea6e560ec35", + "8fe7573f5535dc5b910a1f24d7d980da0e10ab38f8d29cb397146119bbfb7b3a", "fcee8dfc1b81c449b421410edd5041c16ab59c45bbea85bcb094d1b17c3e9df7", "6f8e6085f5769861ae7a40dccd618d6f747297d59b37cab89b93e2fa80b0c024", + "d7297024d6a3dc7a81509556af0e686dd5a3ff21f8db1febcfbf49cf3dab195a", "fa79192fe1cce03d7d8db36471dde4cf6c96e6d0f07e1c391dd49e355af9b38c", "19f0df5fdaf5a96e137b6ea885fdb378f37bd3166bd9a47ee11518e33fa09a20", "a1fa18133ae48cbb616c4c148e78e661666778c3087d099067c7fe1868cbb3a1", @@ -10499,7 +10499,7 @@ object DarResources { ) val validatorLifecycle_0_1_9 = DarResource( "splice-validator-lifecycle-0.1.9.dar", - "8889d05d39cd0abafcbfe4274ddeab8db670d373df48d02038dbdb8add88ed9d", + "639d2fd54431a2432bc9394917b1a6f664e79cfb898cd5487462b6ef8a282798", PackageMetadata( PackageName.assertFromString("splice-validator-lifecycle"), PackageVersion.assertFromString("0.1.9"), @@ -10511,13 +10511,13 @@ object DarResources { "9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69", "d095a2ccf6dd36b2415adc4fa676f9191ba63cd39828dc5207b36892ec350cbc", "7adc4c2d07fa3a51173c843cba36e610c1168b2dbbf53076e20c0092eae8763d", - "b5be6316177384677c024316c0bfaf7d3d494e7c3ad6c540d2032e6112b004bc", "4039f60273388c5701e27950ab3e8c3044433b0876535a3b48fb042cc77bf02a", "bde4bd30749e99603e5afa354706608601029e225d4983324d617825b634253a", "c280cc3ef501d237efa7b1120ca3ad2d196e089ad596b666bed59a85f3c9a074", "c3bb0c5d04799b3f11bad7c3c102963e115cf53da3e4afcbcfd9f06ebd82b4ff", "0e4a572ab1fb94744abb02243a6bbed6c78fc6e3c8d3f60c655f057692a62816", "ab068e2f920d0e06347975c2a342b71f8b8e3b4be0f02ead9442caac51aa8877", + "411fec054a5cadb4291604facc75e1b51c1a13515e18664d696699f822e49124", "e7e0adfa881e7dbbb07da065ae54444da7c4bccebcb8872ab0cb5dcf9f3761ce", "f181cd661f7af3a60bdaae4b0285a2a67beb55d6910fc8431dbae21a5825ec0f", "60c61c542207080e97e378ab447cc355ecc47534b3a3ebbff307c4fb8339bc4d", @@ -10540,7 +10540,7 @@ object DarResources { ) val validatorLifecycle_current = DarResource( "splice-validator-lifecycle-current.dar", - "8889d05d39cd0abafcbfe4274ddeab8db670d373df48d02038dbdb8add88ed9d", + "639d2fd54431a2432bc9394917b1a6f664e79cfb898cd5487462b6ef8a282798", PackageMetadata( PackageName.assertFromString("splice-validator-lifecycle"), PackageVersion.assertFromString("0.1.9"), @@ -10552,13 +10552,13 @@ object DarResources { "9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69", "d095a2ccf6dd36b2415adc4fa676f9191ba63cd39828dc5207b36892ec350cbc", "7adc4c2d07fa3a51173c843cba36e610c1168b2dbbf53076e20c0092eae8763d", - "b5be6316177384677c024316c0bfaf7d3d494e7c3ad6c540d2032e6112b004bc", "4039f60273388c5701e27950ab3e8c3044433b0876535a3b48fb042cc77bf02a", "bde4bd30749e99603e5afa354706608601029e225d4983324d617825b634253a", "c280cc3ef501d237efa7b1120ca3ad2d196e089ad596b666bed59a85f3c9a074", "c3bb0c5d04799b3f11bad7c3c102963e115cf53da3e4afcbcfd9f06ebd82b4ff", "0e4a572ab1fb94744abb02243a6bbed6c78fc6e3c8d3f60c655f057692a62816", "ab068e2f920d0e06347975c2a342b71f8b8e3b4be0f02ead9442caac51aa8877", + "411fec054a5cadb4291604facc75e1b51c1a13515e18664d696699f822e49124", "e7e0adfa881e7dbbb07da065ae54444da7c4bccebcb8872ab0cb5dcf9f3761ce", "f181cd661f7af3a60bdaae4b0285a2a67beb55d6910fc8431dbae21a5825ec0f", "60c61c542207080e97e378ab447cc355ecc47534b3a3ebbff307c4fb8339bc4d", diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/SpliceUtil.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/SpliceUtil.scala index 8f4f0e01e1..f40d90f8f6 100644 --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/SpliceUtil.scala +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/SpliceUtil.scala @@ -347,6 +347,7 @@ object SpliceUtil { Optional.empty(), // nextScheduledSynchronizerUpgrade Optional.empty(), // voteCooldownTime Optional.empty(), // nextScheduledLogicalSynchronizerUpgrade + Optional.empty(), // svOperationsSwitchOverTimes ) def defaultAmuletConfig( @@ -403,6 +404,8 @@ object SpliceUtil { Optional.empty(), // minDevelopmentFundMintingDelay Optional.empty(), + // amuletSwitchOverTimes + Optional.empty(), ) def defaultAnsConfig( diff --git a/apps/scan/frontend/src/__tests__/mocks/data.ts b/apps/scan/frontend/src/__tests__/mocks/data.ts index 3bd3fc6a09..f63780c1e1 100644 --- a/apps/scan/frontend/src/__tests__/mocks/data.ts +++ b/apps/scan/frontend/src/__tests__/mocks/data.ts @@ -182,6 +182,7 @@ export function amuletRules(zeroTransferFees: boolean): any { transferPreapprovalBaseDuration: null, developmentFundManagerBlacklist: null, minDevelopmentFundMintingDelay: null, + amuletSwitchOverTimes: null, }, futureValues: [], }, diff --git a/apps/scan/src/test/scala/org/lfdecentralizedtrust/splice/store/db/DbScanRewardsReferenceStoreTest.scala b/apps/scan/src/test/scala/org/lfdecentralizedtrust/splice/store/db/DbScanRewardsReferenceStoreTest.scala index 686f647f03..6540f4d915 100644 --- a/apps/scan/src/test/scala/org/lfdecentralizedtrust/splice/store/db/DbScanRewardsReferenceStoreTest.scala +++ b/apps/scan/src/test/scala/org/lfdecentralizedtrust/splice/store/db/DbScanRewardsReferenceStoreTest.scala @@ -529,6 +529,7 @@ class DbScanRewardsReferenceStoreTest Optional.empty(), Optional.empty(), Optional.empty(), + Optional.empty(), ), Collections.emptyMap(), true, diff --git a/apps/scan/src/test/scala/org/lfdecentralizedtrust/splice/store/db/ScanStoreTest.scala b/apps/scan/src/test/scala/org/lfdecentralizedtrust/splice/store/db/ScanStoreTest.scala index 3d2271e786..8c25297b67 100644 --- a/apps/scan/src/test/scala/org/lfdecentralizedtrust/splice/store/db/ScanStoreTest.scala +++ b/apps/scan/src/test/scala/org/lfdecentralizedtrust/splice/store/db/ScanStoreTest.scala @@ -1606,6 +1606,7 @@ trait AmuletTransferUtil { self: StoreTestBase => Optional.empty(), Optional.empty(), // voteCooldownTime Optional.empty(), // nextScheduledLogicalSynchronizerUpgrade + Optional.empty(), // svOperationsSwitchOverTimes ), Collections.emptyMap(), true, diff --git a/apps/sv/frontend/src/utils/buildAmuletRulesConfigFromChanges.ts b/apps/sv/frontend/src/utils/buildAmuletRulesConfigFromChanges.ts index aead26894f..194d6346a0 100644 --- a/apps/sv/frontend/src/utils/buildAmuletRulesConfigFromChanges.ts +++ b/apps/sv/frontend/src/utils/buildAmuletRulesConfigFromChanges.ts @@ -106,6 +106,7 @@ export function buildAmuletRulesConfigFromChanges( transferPreapprovalBaseDuration: null, developmentFundManagerBlacklist: null, minDevelopmentFundMintingDelay: null, + amuletSwitchOverTimes: null, transferConfig: { createFee: { fee: getValue('transferConfigCreateFee', false) }, holdingFee: { rate: getValue('transferConfigHoldingFeeRate', false) }, diff --git a/apps/sv/frontend/src/utils/buildDsoRulesConfigFromChanges.ts b/apps/sv/frontend/src/utils/buildDsoRulesConfigFromChanges.ts index 6ede075292..2a229de1fb 100644 --- a/apps/sv/frontend/src/utils/buildDsoRulesConfigFromChanges.ts +++ b/apps/sv/frontend/src/utils/buildDsoRulesConfigFromChanges.ts @@ -120,6 +120,7 @@ export function buildDsoRulesConfigFromChanges(dsoConfigChanges: ConfigChange[]) ), }, voteCooldownTime: voteCooldownTime === null ? null : { microseconds: voteCooldownTime }, + svOperationsSwitchOverTimes: null, }; return dsoConfig; diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala index 42ed608cf6..ced4de2466 100644 --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala @@ -258,6 +258,7 @@ object SvUtil { Optional.empty(), // nextScheduledSynchronizerUpgrade voteCooldownTime.map(t => new RelTime(t.duration.toMicros)).toJava, Optional.empty(), // nextScheduledLogicalSynchronizerUpgrade + Optional.empty(), // svOperationsSwitchOverTimes ) def keyPairMatches( diff --git a/apps/sv/src/test/scala/org/lfdecentralizedtrust/splice/store/db/SvDsoStoreTest.scala b/apps/sv/src/test/scala/org/lfdecentralizedtrust/splice/store/db/SvDsoStoreTest.scala index aeb5808050..07d2f850c7 100644 --- a/apps/sv/src/test/scala/org/lfdecentralizedtrust/splice/store/db/SvDsoStoreTest.scala +++ b/apps/sv/src/test/scala/org/lfdecentralizedtrust/splice/store/db/SvDsoStoreTest.scala @@ -2164,6 +2164,7 @@ abstract class SvDsoStoreTest extends StoreTestBase with HasExecutionContext { Optional.empty(), Optional.empty(), // voteCooldownTime` Optional.empty(), // nextScheduledLogicalSynchronizerUpgrade` + Optional.empty(), // svOperationsSwitchOverTimes ), Collections.emptyMap(), true, diff --git a/daml/dars.lock b/daml/dars.lock index 6b423c70f4..458aee0bfe 100644 --- a/daml/dars.lock +++ b/daml/dars.lock @@ -14,7 +14,7 @@ splice-amulet 0.1.2 1446ffdf23326cef2de97923df96618eb615792bea36cf1431f03639448f splice-amulet 0.1.20 23f47481dab6b1ec01339d6e14494d85bb2844c25f45b26fc5c9ef4cd4942d1f splice-amulet 0.1.21 73e9ffdb6b0bc19a5f67372b118103926da11547ab9109eccae47e4e4cc35d6f splice-amulet 0.1.22 fb10433a48c24f30076a7aee03a3e314b7ab02fe9a22e2069e3af92d2b6ac88a -splice-amulet 0.1.23 3334d45e6b67163a6a55abab87b15d4527cf7267d5495b538f0e4a469b24bb10 +splice-amulet 0.1.23 8fe7573f5535dc5b910a1f24d7d980da0e10ab38f8d29cb397146119bbfb7b3a splice-amulet 0.1.3 0d89016d5a90eb8bced48bbac99e81c57781b3a36094b8d48b8e4389851e19af splice-amulet 0.1.4 a36ef8888fb44caae13d96341ce1fabd84fc9e2e7b209bbc3caabb48b6be1668 splice-amulet 0.1.5 b4867a47abbfa2d15482f22c9c50516f0af14036287f299342f5d336391e4997 @@ -39,7 +39,7 @@ splice-amulet-name-service 0.1.20 0b6748de2e613f5bc9a108b2496b85d2d661b7344c6c55 splice-amulet-name-service 0.1.21 b342bbbd425902283c20eb5011eeab90cc9f69b4c534b8b757fd51b8ca7be589 splice-amulet-name-service 0.1.22 3921e7bd20670dce7530a84ad04b5f83860c21660bf1553908f76e95767c1950 splice-amulet-name-service 0.1.23 9cffe65feb664c9550937433067e9f969e3795c6fb38715e06a5e04fc1ae1f83 -splice-amulet-name-service 0.1.24 9a863331005db4afa6375b4892462994c2e392ed36c895a62c946d2cab53685d +splice-amulet-name-service 0.1.24 cc7d11e790174d2b18ad3e148d8762340e58de35616b399f9397a1b1d5b752f1 splice-amulet-name-service 0.1.3 beb4b85f3f0cf36dfb93fc917d3ac218ee5d41b6e70604720cb228d85e168ee0 splice-amulet-name-service 0.1.4 053c7f4c2a77312e7d465a4fa7dc8cb298754ad12c0c987a7c401bd724e65efc splice-amulet-name-service 0.1.5 6188c8b5f612278f988fc95c11e9742993ad3ac6ad0809f9af06ee9d366dc4a8 @@ -47,8 +47,8 @@ splice-amulet-name-service 0.1.6 a208aab2c4a248ab2eff352bd382f8b3bbadc92464123db splice-amulet-name-service 0.1.7 ba7806d9b2d593eac74a050161c54ae1325d170bf175cb66a9c1e5e5ffb88c3d splice-amulet-name-service 0.1.8 efeb3f9b2b92e55fac4ec2d6164f95407a01477240c7465e576df4e310f54bd3 splice-amulet-name-service 0.1.9 f1b5915ad45ded616f43f83c735b7ee158b5eb58abe758a721e50eee19b3e531 -splice-amulet-name-service-test 0.1.28 eff25a46ccf360b75873e9a1f83aa5b8d7ca8ecd47180797ae623ce637e55ea5 -splice-amulet-test 0.1.27 6adb7c285ba655120de3ec9337d61b011f88e59622bce6a43f8b7e594db9f5b0 +splice-amulet-name-service-test 0.1.28 f985db437d124f01644be5801409d6e8cebfd60b66797f03f61f7aaa6a51010c +splice-amulet-test 0.1.27 009437315ddd604c8400a663c9d2c92c10823537bdab90f41d703b93cdb931bc splice-api-featured-app-v1 1.0.0 7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda splice-api-featured-app-v2 1.0.0 dd22e3e168a8c7fd0313171922dabf1f7a3b131bd9bfc9ff98e606f8c57707ea splice-api-reward-assignment-v1 1.0.0 6f7b72361bc2039369651b4195315a2a5849babafec67b3c96e66ea6e560ec35 @@ -89,7 +89,7 @@ splice-dso-governance 0.1.25 dfe102514acd41f79945b8363ca84d8243be97b2b235522ce77 splice-dso-governance 0.1.26 45099e955ce443f7895125097a62c509b9ad297091c91d6377ffe94f183c0e3e splice-dso-governance 0.1.27 014473d35514cb36583bdeca269386e46ae4e2283fe9b04beb2f53cdb408e1a2 splice-dso-governance 0.1.28 eeb461e9e430d8aaaa232f23058a28c9858d559abd083c391d7ab7e73efb4e13 -splice-dso-governance 0.1.29 e152974a7c3742ce67f41f6a53370c78a315059b83a3da54016b9bbecb3e2049 +splice-dso-governance 0.1.29 2b680f34f11be43d65a2dde723f4c9595a0983f63a0bb3455f03bb16c5d9b814 splice-dso-governance 0.1.3 b0ae3cc03e418790305a3c15f761fe495572de5827f8d322fb8b96996b783c13 splice-dso-governance 0.1.4 dc24fd18b4d151cd1e0ff6bfb7438bafb2f50fe076d0f16f50565e60b153a0be splice-dso-governance 0.1.5 9e3ca1d22ad495dfabf3d61acae3dc1a7718f527f02092280b58cf69edfdc84c @@ -97,17 +97,17 @@ splice-dso-governance 0.1.6 4e7653cfbf7ca249de4507aca9cd3b91060e5489042a522c589d splice-dso-governance 0.1.7 d406eba1132d464605f4dae3edf8cf5ecbbb34bd8edef0e047e7e526d328718c splice-dso-governance 0.1.8 1790a114f83d5f290261fae1e7e46fba75a861a3dd603c6b4ef6b67b49053948 splice-dso-governance 0.1.9 9ee83bfd872f91e659b8a8439c5b4eaf240bcf6f19698f884d7d7993ab48c401 -splice-dso-governance-test 0.1.35 ecee822a28025c99ded8305f843aa3ff78e11b239fe64fc10a3746e83f06ea74 +splice-dso-governance-test 0.1.35 06ac1dab858f612a840f8258d8ee8d419099b1d5c3bf6cdf1e0fef6787a54a89 splice-test-token-v1 1.0.0 aaa0b576b5a3db49b3a4f7a4710fe6f8ae462aabbde4da89f639eb87fd62e90c splice-test-token-v1 1.0.1 da294b5651ed00af8565fd31351d0c1d8778f10393d250e32c9844311f681436 -splice-test-token-v1-test 1.0.2 205f9937b2792e04054eb31352d11a793683fcaad6be6d997f8511fd49ee3447 +splice-test-token-v1-test 1.0.2 881e08d322a8b2426f4def049b452e3061125f50c17e0219eba613d13a6bb397 splice-test-token-v2 1.0.0 a38a96b6f46c14c599b2763bc4fc68911a9cada90f89c599a1401e8e3df685e1 splice-test-token-v2 1.0.1 6f2bddc934eb700ee00afa209eb1d49f861af6401037618f6aa7e6ac02c8e201 -splice-test-token-v2-test 1.0.2 45007513387e0eec314c1c636ab43a4dc5eb85c4510e11af1204f79c14cb10d3 +splice-test-token-v2-test 1.0.2 db4074ebfd9ca3b233925c4592a63cbfa7b2d47cceb2a6cab8a40d58ba2fd569 splice-token-standard-utils 2.0.0 9a8f41a2b1456d357dee5677565c21b9a5aa45b80f0ed6be469694445dd4f6e1 -splice-token-standard-utils-test 1.0.2 d307a079ae5c9c797badd80d64dc7655374e53304ab23544a13bae66027f36af -splice-token-standard-v1-test 1.0.17 0e34cae2753a2a18c5d2bbe67f096bf87e552c9d665fca846acf7bd8801b745d -splice-token-standard-v2-test 1.0.2 299a64415e4cbf3d41f7188c3ee756ee3f4b0fba6918bb14fd3f3f7484e43e8d +splice-token-standard-utils-test 1.0.2 f8e88711605c176a14fa105dff3bbbc5168dddc5d5598a444b198fac1179ca14 +splice-token-standard-v1-test 1.0.17 47cc1484a349b2602fdc5c32224710a79b4748f29f6d6050777ee42134bca040 +splice-token-standard-v2-test 1.0.2 531dcbfe039a3e8259535e873c9ecd6fbe6fd6f3871c1d0bfd0fc32f85be53b8 splice-token-test-dummy-holding 0.0.1 1cd171c6c42ab46dc9cf12d80c6111369e00cea5cdf054924b4f26ce94b1ef5b splice-token-test-dummy-holding 0.0.2 4f40fb033ef3db89623642c1b494e846097fa32af138b3864a63aa15937a323d splice-token-test-dummy-holding 0.0.3 26c72abb5a4b485e58f201021de6f9e525c85863fa115536f768d6ee138ef13e @@ -127,12 +127,13 @@ splice-util 0.1.4 b7356fbb2cf8a3b22194d8c743c3c216d9c7527b257c8c38b257eb22942be3 splice-util 0.1.5 5a58024e2cc488ca9e0c952ec7ef41da3a1ed0a78ba23bacd819e5b30afb5546 splice-util 0.1.6 62a6fc80fc8ca84dd5f6b33c71f53dd35a02bc01784b8cbc7cbd283eb23863c0 splice-util 0.1.7 b5be6316177384677c024316c0bfaf7d3d494e7c3ad6c540d2032e6112b004bc +splice-util 0.1.8 411fec054a5cadb4291604facc75e1b51c1a13515e18664d696699f822e49124 splice-util-batched-markers 1.0.0 727c5e97457d3ff841680816eb70d55834827ef756bac8551cace5b961c9c1d2 splice-util-batched-markers 1.0.1 4d91a9b044e0e996e91ee9aac3442591ffc78f16da4ff5c6f55218ba667f6192 splice-util-batched-markers 1.0.2 ec84eb67802403d91892aad61aee2e4eb34fb4e05e9158b3f677537569bcbc09 splice-util-batched-markers 1.0.3 74ee4c91b80c80b6860005ce627bdaed8f7fe6bdf3e60c9dbf3f48402d55126a splice-util-batched-markers 1.0.4 c442a23fc47319108d6408ca0386b6087c255f79bf180a6aa77a807a985085c2 -splice-util-batched-markers-test 1.0.10 3f0c02a5eab0e13fe43e7d0957342294bc3355da22a1091d822241d72b740ab9 +splice-util-batched-markers-test 1.0.10 c51de5269c9faeb5be85451b2dce28b0244be28bdb932305a81ef7ac9f36254d splice-util-featured-app-proxies 1.0.0 48e0c4fe4ea05e3b740404ebe37004ddd741efbdcd665c1c3199a5d6d9d944d7 splice-util-featured-app-proxies 1.1.0 81dd5a9e5c02d0de03208522a895fb85eeb12fbea4aca7c4ad0ad106f3b0bfce splice-util-featured-app-proxies 1.2.0 653c48879064332d34af5008bdfd8e349493460e67e62b85e8e7e3392831c842 @@ -140,12 +141,12 @@ splice-util-featured-app-proxies 1.2.1 06bab917848ef275317c2539b75c23b94e03ceb55 splice-util-featured-app-proxies 1.2.2 2889c094cf9678b2b666221934ea56ab169a31b257450845bd53217a8cdfe44f splice-util-featured-app-proxies 1.2.3 677ed3473e7d412c06520843790ff27e21aaa7c292208909579592351c8eb55d splice-util-featured-app-proxies 1.2.4 88bcea6e9990bb2edb5301c042caa25c0594742665866f049f7bd67342d0865d -splice-util-featured-app-proxies-test 1.0.16 db601ef2b068b3ae973ed65cf36cabc4e33874ace9d4e43341f17261036c9c78 +splice-util-featured-app-proxies-test 1.0.16 2b4ea32ea894b0f66f5c12655fe8fb3eeaa9345f49c7b7097e55627440017ba6 splice-util-token-standard-wallet 1.0.0 1da198cb7968fa478cfa12aba9fdf128a63a8af6ab284ea6be238cf92a3733ac splice-util-token-standard-wallet 1.0.1 182892381e4245c39d3126082ec0b41a089edb61e63af518f61eae1f5c9e135a splice-util-token-standard-wallet 1.1.0 1215d3ee8f3cb428d062d8708c2deca33c91ff99f5edefa70616646e57f93012 splice-util-token-standard-wallet 1.1.1 5acc49b7a6a41f6a3edbf9d7f9efae83cb2d97fb0ad67de52b2052922fa1d32d -splice-util-token-standard-wallet-test 1.0.11 819bd8f45b63ba5e573f1bb0f2130192327598376767203e9f363be5221ad5e9 +splice-util-token-standard-wallet-test 1.0.11 dccf90ab650e87183667848700b14a7e0b87ef5ea75da20ed35f2de832b5b8c4 splice-validator-lifecycle 0.1.0 cef96fac957362f1fc097120bd13686cac7f84fbc8053afa994a1f9214d9570c splice-validator-lifecycle 0.1.1 1ddf05c96002914593c929848b786f34c753fb0be07717d1786be177a564aada splice-validator-lifecycle 0.1.2 57e2f15f9755db1f00e51c52c319294264a21ad71c6bc1e7cd70db4b164c0aaa @@ -155,8 +156,8 @@ splice-validator-lifecycle 0.1.5 455dd4533c2dd0131fb349c93d9d35f3670901d13efadb0 splice-validator-lifecycle 0.1.6 a717b2b9c23f630eb1ac907445fa5f5c9cce87fca28374b6165bc510724e07e7 splice-validator-lifecycle 0.1.7 9018d59e7759bfe37f242241b332930d32a57dc3e029525a441dde3d1e7720b0 splice-validator-lifecycle 0.1.8 217edf88c015ee080de2132a208cf23c14e9a2773198c0d4078985ab25ad4be1 -splice-validator-lifecycle 0.1.9 8889d05d39cd0abafcbfe4274ddeab8db670d373df48d02038dbdb8add88ed9d -splice-validator-lifecycle-test 0.1.9 d5b8575cda7926837d99d942341350e351139ec4798382477761b84336490bff +splice-validator-lifecycle 0.1.9 639d2fd54431a2432bc9394917b1a6f664e79cfb898cd5487462b6ef8a282798 +splice-validator-lifecycle-test 0.1.9 d13d01f221152ec7697904febbe5367a7fa38eb5641f916d9f2a5aee84d187dc splice-wallet 0.1.0 5f384fba007e8b93c8ff1ac151cdc2d035ae1e0506f5e5770de469048713024c splice-wallet 0.1.1 e276113de450c2bb4bf8cf2d2991dd0b397fe7fe8103fe1b5377b8ab6622edec splice-wallet 0.1.10 9824ffa414d5803d17efafd75c69c1dd53591ac5197d07048b24dbac1720a462 @@ -174,7 +175,7 @@ splice-wallet 0.1.20 e485c2eb59cca556e0e2ecfaaef45346dd0ba64f9976a3957938d814f84 splice-wallet 0.1.21 f799a58fa53dfe48bae52bd5dbcc2b578a7d4dfee3ae3f4eb7635fe9a8cc67d3 splice-wallet 0.1.22 a78daeeb1a4a2405828b29f8c04814725dbd97ee5a60bd02e839f32518640afa splice-wallet 0.1.23 727c0fb9711d59b506fbb3cff2342e55eb583bb88682a946220525c304feca4a -splice-wallet 0.1.24 9706b999f856794a0f16bb551b7787beb13cfa652814b86f83ea7b6cca84ce26 +splice-wallet 0.1.24 d42261314d98cc04bf50bcc58930af98b9f33aeed11339465925de697d3ba66e splice-wallet 0.1.3 2c35bb4f5084ea66db59717d21750bfd64c43147ef5fd5166615092d592a6917 splice-wallet 0.1.4 141dad2d33b6410b8e1c35a0c4f8f76cb691e4d9a4410ce89f33f373855317e1 splice-wallet 0.1.5 614b525a50c624062d851ce7df5bdb90ddfa0d6871c486cb6e2c7b694bfbce59 @@ -198,7 +199,7 @@ splice-wallet-payments 0.1.2 775f5eb9c0249509adda5eb3ea4ee31bb953601168c18880df6 splice-wallet-payments 0.1.20 340afccb702179069fc81044890c435c5c8565df061b2efbfccf618c33a04e37 splice-wallet-payments 0.1.21 dc1a2f4ff4774e00c388f1bfce48a23c3539b8ea0d0ebf99b8df840a058ef873 splice-wallet-payments 0.1.22 866ea53bea2afc099c560ad4c386a1736859841b17c422836f133d605ee51616 -splice-wallet-payments 0.1.23 9ec71f7f26381ebf5bbf5cf17e5f9eea4479995d0756472aefb6ca267077aeb6 +splice-wallet-payments 0.1.23 d7297024d6a3dc7a81509556af0e686dd5a3ff21f8db1febcfbf49cf3dab195a splice-wallet-payments 0.1.3 b953b3729c81a55e598a364be7d0c0574750df3de12a7a1b53a300f217cb5c5c splice-wallet-payments 0.1.4 12177f54873c1094ea169874ad0d7838383fd137f302d16356e93f28dfbc0fcc splice-wallet-payments 0.1.5 2177b7a579fe6d3d510c7bcda99d39ece104ae24cfd1b78ac5616990d2d6c675 @@ -206,7 +207,7 @@ splice-wallet-payments 0.1.6 6124379528eeb6fa17ecdab15577c29abb33d0c0d34dc5f2680 splice-wallet-payments 0.1.7 4e3e0d9cdadf80f4bf8f3cd3660d5287c084c9a29f23c901aabce597d72fd467 splice-wallet-payments 0.1.8 e48ea337ee3335c8bb3206a2501ce947ac1a7bdb1825cee8f28bad64f5a7bc4b splice-wallet-payments 0.1.9 7f4e081ad96f2ccded0c053b0cf5ddddae1139dfc3bb89cefcf77ea70f2cecb7 -splice-wallet-test 0.1.28 eec8163915f52f3bb7d99c6b967e90822e4e4adfee88c03bb1324aee4d6fd576 +splice-wallet-test 0.1.28 f5d3095e36834fb948f21f7d04e38c92eb61395ced670de8b09f85284c842815 splitwell 0.1.0 075c76de553ab88383a7c69de134afa82aacfdf8ea8fcfe8852c4b199c3b2669 splitwell 0.1.1 ccb1a0215053062202052e1a052f9214da3fdae5253a6d43e2e155ff4f57fe75 splitwell 0.1.10 d42676a366f7ca7a2409974dd3054aa4d83ab29baa3b2086ad021407b0a1a295 @@ -224,7 +225,7 @@ splitwell 0.1.20 af686139dda12540ab05a292987f5fa2edd0c05af62d9651384d005e9a91043 splitwell 0.1.21 f646cf275b4c5139711469c92fbe702c498614edf200d8085305b2e43e28936a splitwell 0.1.22 b97352bf1b70f6be481d7cd2b4ce22396008bbf611b488243a694f30437ed3a9 splitwell 0.1.23 68d3911f72347dc787c336f73af3c036004c982f591cb55e7b4f2fb45f5e50e6 -splitwell 0.1.24 9e9708670d7eea00e768c4b7866fbb7879929d17f64b7bd63e0efc9703e510f9 +splitwell 0.1.24 f2ff9522cd65a8ed15c62c709a37e027fcd879ec5eab9e1476bde67b33deaec8 splitwell 0.1.3 7cde068cde689584f86a2499689d5cb165264d96496721e24ac6fb909f770a58 splitwell 0.1.4 85557b86cd4f330f093915db1ea26eac5092de6b5ddae0690146f6059c89419b splitwell 0.1.5 a68e78774a7be655f5744c8ae0ac8b46d55ef6d1e7661bc27b9296154d56ac74 @@ -232,4 +233,4 @@ splitwell 0.1.6 872da0dd7986fd768930f85d6a7310a94a0ef924e7fbb7bb7a4e149f2b5feb74 splitwell 0.1.7 841d1c9c86b5c8f3a39059459ecd8febedf7703e18f117300bb0ebf4423db096 splitwell 0.1.8 63b8153a08ceb4bf40d807acc5712372c3eac548c266be4d5e92470b4f655515 splitwell 0.1.9 b6267905698d2798b9ef171e27d49fb88e052ec0ec0e0675a3a1b275c7d037d4 -splitwell-test 0.1.28 c3513398be71768e8fd28650974bc6ea9a1d6aca2141b0e1965e4e6a724d75d4 \ No newline at end of file +splitwell-test 0.1.28 13748cd83d441727eee436b86776393020dc7f9fde33cbc1eaf7289b029428f1 \ No newline at end of file diff --git a/daml/dars/splice-amulet-0.1.23.dar b/daml/dars/splice-amulet-0.1.23.dar index 54da5d066c..75693eac6a 100644 Binary files a/daml/dars/splice-amulet-0.1.23.dar and b/daml/dars/splice-amulet-0.1.23.dar differ diff --git a/daml/dars/splice-amulet-name-service-0.1.24.dar b/daml/dars/splice-amulet-name-service-0.1.24.dar index 04cf77b1ad..8dc0497c53 100644 Binary files a/daml/dars/splice-amulet-name-service-0.1.24.dar and b/daml/dars/splice-amulet-name-service-0.1.24.dar differ diff --git a/daml/dars/splice-dso-governance-0.1.29.dar b/daml/dars/splice-dso-governance-0.1.29.dar index a16de6223a..b15b6086d6 100644 Binary files a/daml/dars/splice-dso-governance-0.1.29.dar and b/daml/dars/splice-dso-governance-0.1.29.dar differ diff --git a/daml/dars/splice-util-0.1.8.dar b/daml/dars/splice-util-0.1.8.dar new file mode 100644 index 0000000000..3db99d4dc1 Binary files /dev/null and b/daml/dars/splice-util-0.1.8.dar differ diff --git a/daml/dars/splice-validator-lifecycle-0.1.9.dar b/daml/dars/splice-validator-lifecycle-0.1.9.dar index 23cf942b01..2b21ba6346 100644 Binary files a/daml/dars/splice-validator-lifecycle-0.1.9.dar and b/daml/dars/splice-validator-lifecycle-0.1.9.dar differ diff --git a/daml/dars/splice-wallet-0.1.24.dar b/daml/dars/splice-wallet-0.1.24.dar index 70063952f2..8e79fe2d2d 100644 Binary files a/daml/dars/splice-wallet-0.1.24.dar and b/daml/dars/splice-wallet-0.1.24.dar differ diff --git a/daml/dars/splice-wallet-payments-0.1.23.dar b/daml/dars/splice-wallet-payments-0.1.23.dar index 274bba32e2..26b755ad5c 100644 Binary files a/daml/dars/splice-wallet-payments-0.1.23.dar and b/daml/dars/splice-wallet-payments-0.1.23.dar differ diff --git a/daml/dars/splitwell-0.1.24.dar b/daml/dars/splitwell-0.1.24.dar index 6c2279a418..4f6b8ca971 100644 Binary files a/daml/dars/splitwell-0.1.24.dar and b/daml/dars/splitwell-0.1.24.dar differ diff --git a/daml/splice-amulet-test/daml/Splice/Scripts/TestLockAndAmuletExpiry.daml b/daml/splice-amulet-test/daml/Splice/Scripts/TestLockAndAmuletExpiry.daml index 1a6d2d6644..e4fcb660e3 100644 --- a/daml/splice-amulet-test/daml/Splice/Scripts/TestLockAndAmuletExpiry.daml +++ b/daml/splice-amulet-test/daml/Splice/Scripts/TestLockAndAmuletExpiry.daml @@ -38,6 +38,7 @@ scaleAmuletConfig amuletPrice config = AmuletConfig with rewardConfig = config.rewardConfig transferPreapprovalBaseDuration = config.transferPreapprovalBaseDuration minDevelopmentFundMintingDelay = config.minDevelopmentFundMintingDelay + amuletSwitchOverTimes = config.amuletSwitchOverTimes test : Script () test = script do diff --git a/daml/splice-amulet/daml/Splice/AmuletConfig.daml b/daml/splice-amulet/daml/Splice/AmuletConfig.daml index f305ce5312..cfce5b144c 100644 --- a/daml/splice-amulet/daml/Splice/AmuletConfig.daml +++ b/daml/splice-amulet/daml/Splice/AmuletConfig.daml @@ -5,6 +5,7 @@ module Splice.AmuletConfig where import DA.Optional import DA.Time +import DA.TextMap import Splice.Fees import Splice.DecentralizedSynchronizer @@ -116,6 +117,8 @@ data AmuletConfig unit = AmuletConfig with -- ^ List of blocked parties. They cannot allocate new coupons, and the coupons they allocated cannot be minted either. minDevelopmentFundMintingDelay : Optional RelTime -- ^ Minimum delay between allocation and minting. Default: 0 days. + amuletSwitchOverTimes : Optional (TextMap Time) + -- ^ Timepoints for synchronized switch-overs of amulet functionality both on and off-ledger. deriving (Eq, Show, Serializable) getExternalPartyConfigStateTickDuration : AmuletConfig a -> RelTime @@ -234,6 +237,7 @@ instance Patchable (AmuletConfig USD) where rewardConfig = patch new.rewardConfig base.rewardConfig current.rewardConfig transferPreapprovalBaseDuration = patch new.transferPreapprovalBaseDuration base.transferPreapprovalBaseDuration current.transferPreapprovalBaseDuration minDevelopmentFundMintingDelay = patch new.minDevelopmentFundMintingDelay base.minDevelopmentFundMintingDelay current.minDevelopmentFundMintingDelay + amuletSwitchOverTimes = patch new.amuletSwitchOverTimes base.amuletSwitchOverTimes current.amuletSwitchOverTimes instance Patchable RewardConfig where patch new base current = RewardConfig with diff --git a/daml/splice-amulet/daml/Splice/AmuletRules.daml b/daml/splice-amulet/daml/Splice/AmuletRules.daml index d1d4591a95..e31cd95b50 100644 --- a/daml/splice-amulet/daml/Splice/AmuletRules.daml +++ b/daml/splice-amulet/daml/Splice/AmuletRules.daml @@ -1030,6 +1030,7 @@ template AmuletRules amuletPrice = validatedRounds.latestUsableRound.amuletPrice transferConfig = transferConfigToTransferConfigV2 validatedRounds.latestUsableRound.transferConfigUsd rewardCalculationVersion = (.mintingVersion) <$> validatedRounds.latestUsableRound.rewardConfig + amuletSwitchOverTimes = config.amuletSwitchOverTimes pure AmuletRules_UpdateExternalPartyConfigStatesResult with .. @@ -2398,6 +2399,7 @@ bootstrapExternalPartyConfigState AmuletRules{..} openMiningRoundTriple = do amuletPrice = validatedRounds.latestUsableRound.amuletPrice transferConfig = transferConfig rewardCalculationVersion = (.mintingVersion) <$> validatedRounds.latestUsableRound.rewardConfig + amuletSwitchOverTimes = config.amuletSwitchOverTimes configState1 = configState0 with targetArchiveAfter = configState0.targetArchiveAfter `addRelTime` getExternalPartyConfigStateTickDuration config create configState0 diff --git a/daml/splice-amulet/daml/Splice/ExternalPartyConfigState.daml b/daml/splice-amulet/daml/Splice/ExternalPartyConfigState.daml index 9adee1ea9a..c9115e9f3a 100644 --- a/daml/splice-amulet/daml/Splice/ExternalPartyConfigState.daml +++ b/daml/splice-amulet/daml/Splice/ExternalPartyConfigState.daml @@ -3,6 +3,8 @@ module Splice.ExternalPartyConfigState where +import DA.TextMap + import Splice.Api.Token.MetadataV1 import Splice.Api.Token.TransferEventsV2 as TransferEventsV2 @@ -27,6 +29,7 @@ template ExternalPartyConfigState transferConfig : TransferConfigV2 Unit.USD -- ^ Transfer config at the time the config state was created. targetArchiveAfter : Time -- ^ Lower bound on the time the contract gets archived, not enforced as a strict upper bound. rewardCalculationVersion : Optional RewardVersion -- ^ The reward calculation version to use for transactions relying on this config state. + amuletSwitchOverTimes : Optional (TextMap Time) -- ^ Timepoints for synchronized switch-overs of amulet functionality both on and off-ledger. where signatory dso diff --git a/daml/splice-dso-governance-test/daml/Splice/Scripts/DsoTestUtils.daml b/daml/splice-dso-governance-test/daml/Splice/Scripts/DsoTestUtils.daml index fefc74eef1..96c24111be 100644 --- a/daml/splice-dso-governance-test/daml/Splice/Scripts/DsoTestUtils.daml +++ b/daml/splice-dso-governance-test/daml/Splice/Scripts/DsoTestUtils.daml @@ -88,6 +88,7 @@ initDecentralizedSynchronizerWithAmuletPrice isDevNet initialRound amuletPrice o nextScheduledSynchronizerUpgrade = None voteCooldownTime = None -- use default value of 1 minute nextScheduledLogicalSynchronizerUpgrade = None + svOperationsSwitchOverTimes = None let amuletConfig = fromOptional defaultAmuletConfig optAmuletConfig let ansRulesConfig = defaultAnsRulesConfig diff --git a/daml/splice-dso-governance-test/daml/Splice/Scripts/TestDecentralizedAutomation.daml b/daml/splice-dso-governance-test/daml/Splice/Scripts/TestDecentralizedAutomation.daml index 636c76e34d..90a3dca02d 100644 --- a/daml/splice-dso-governance-test/daml/Splice/Scripts/TestDecentralizedAutomation.daml +++ b/daml/splice-dso-governance-test/daml/Splice/Scripts/TestDecentralizedAutomation.daml @@ -8,6 +8,7 @@ import DA.Assert import DA.Foldable (forA_) import DA.List (dedupSort) import qualified DA.Map as Map +import DA.TextMap qualified as TextMap import DA.Optional (fromSomeNote) import Daml.Script import DA.Time @@ -530,7 +531,11 @@ testTransferPreapprovalExpiry = do testBootstrapExternalPartyConfigState : Script () testBootstrapExternalPartyConfigState = do - (_, dso, (sv1, sv2, sv3, _)) <- initDevNet + (app, dso, (sv1, sv2, sv3, _)) <- initDevNet + -- set switch-over times so we can check they propagate into the bootstrapped config state + now <- getTime + let switchOverTimes = TextMap.fromList [("a", now), ("b", addRelTime now (days 1))] + updateAmuletConfig app (\c -> c with amuletSwitchOverTimes = Some switchOverTimes) -- archive to simulate bootstrapping with an older version configStates <- query @ExternalPartyConfigState dso submit dso $ forA configStates $ \(cid, _) -> archiveCmd cid @@ -566,6 +571,7 @@ testBootstrapExternalPartyConfigState = do configStates <- query @ExternalPartyConfigState dso length configStates === 2 + forA_ configStates $ \(_, cs) -> cs.amuletSwitchOverTimes === Some switchOverTimes pure () diff --git a/daml/splice-dso-governance-test/daml/Splice/Scripts/TestGovernance.daml b/daml/splice-dso-governance-test/daml/Splice/Scripts/TestGovernance.daml index ca17a103b9..aec758b39b 100644 --- a/daml/splice-dso-governance-test/daml/Splice/Scripts/TestGovernance.daml +++ b/daml/splice-dso-governance-test/daml/Splice/Scripts/TestGovernance.daml @@ -10,6 +10,7 @@ import qualified DA.Map as Map import qualified DA.Set as Set import Daml.Script import DA.Time +import DA.TextMap qualified as TextMap import Splice.Amulet import Splice.AmuletRules @@ -613,6 +614,7 @@ testDsoRulesConfigChange = do nextScheduledSynchronizerUpgrade = Some (SynchronizerUpgradeSchedule with time = addRelTime now (days 4) migrationId = 1) + svOperationsSwitchOverTimes = Some (TextMap.fromList [("a", now), ("b", addRelTime now (days 1))]) let initialSynchronizerConfig2 = SynchronizerConfig with @@ -803,19 +805,20 @@ testAmuletRulesConfigChange = do [ ] + now <- getTime + -- first config that changes half of the parameters let newConfig1 = amuletRules.configSchedule.initialValue with transferConfig = defaultTransferConfig2 issuanceCurve = defaultIssuanceCurve2 tickDuration = seconds 200 optDevelopmentFundManager = Some fundManager + amuletSwitchOverTimes = Some (TextMap.fromList [("a", now), ("b", addRelTime now (days 1))]) -- second config that changes the other half of the parameters let newConfig2 = amuletRules.configSchedule.initialValue with decentralizedSynchronizer = defaultAmuletDecentralizedSynchronizerConfig2 - now <- getTime - -- creation of two concurrent independent vote requests [(amuletRulesCid, amuletRules)] <- query @AmuletRules dso result1 <- submit (actAs sv1 <> readAs dso) $ exerciseCmd dsoRulesCid DsoRules_RequestVote with diff --git a/daml/splice-dso-governance-test/daml/Splice/Scripts/TestPatching.daml b/daml/splice-dso-governance-test/daml/Splice/Scripts/TestPatching.daml index 4a73d52318..7a8ffa66b0 100644 --- a/daml/splice-dso-governance-test/daml/Splice/Scripts/TestPatching.daml +++ b/daml/splice-dso-governance-test/daml/Splice/Scripts/TestPatching.daml @@ -12,6 +12,7 @@ import DA.Set() import DA.Set qualified as Set import DA.Map() import qualified DA.Map as Map +import DA.TextMap qualified as TextMap import Splice.Util @@ -82,6 +83,23 @@ testPatchMap = script do test new base current = do patch (Map.fromList [("a", new)]) (Map.fromList [("a", base)]) (Map.fromList [("a", current), ("b", base)]) === (Map.fromList [("a", patch new base current), ("b", base)]) +testPatchTextMap : Script () +testPatchTextMap = script do + -- no change applied + patch (TextMap.fromList [("a", 1)]) (TextMap.fromList [("a", 1)]) (TextMap.fromList [("a", 1), ("b", 2)]) === (TextMap.fromList [("a", 1), ("b", 2)]) + -- addition of new (key, value) + patch (TextMap.fromList [("a", 1), ("c", 3)]) (TextMap.fromList [("a", 1)]) (TextMap.fromList [("a", 1), ("b", 2)]) === (TextMap.fromList [("a", 1), ("b", 2), ("c", 3)]) + -- removal of existing (key, value) + patch (TextMap.fromList []) (TextMap.fromList [("a", 1)]) (TextMap.fromList [("a", 1), ("b", 2)]) === (TextMap.fromList [("b", 2)]) + -- change of value for existing key + test 1 10 2 + test "a" "b" "c" + test (TextMap.fromList [("a", 1), ("b", 2)]) (TextMap.fromList [("b", 2), ("c", 3)]) (TextMap.fromList [("b", 2), ("d", 4)]) + test (RecordValue 2 2) (RecordValue 2 3) (RecordValue 5 4) + where + test new base current = do + patch (TextMap.fromList [("a", new)]) (TextMap.fromList [("a", base)]) (TextMap.fromList [("a", current), ("b", base)]) === (TextMap.fromList [("a", patch new base current), ("b", base)]) + testPatchOptional : Script () testPatchOptional = script do test 1 2 3 diff --git a/daml/splice-dso-governance/daml/Splice/DsoRules.daml b/daml/splice-dso-governance/daml/Splice/DsoRules.daml index fbf97ff083..0a88f5d390 100644 --- a/daml/splice-dso-governance/daml/Splice/DsoRules.daml +++ b/daml/splice-dso-governance/daml/Splice/DsoRules.daml @@ -12,6 +12,7 @@ import DA.Foldable (forA_, all) import DA.List as List hiding (all) import DA.Optional (isNone, fromSome, fromOptional, isSome) import qualified DA.Map as Map +import DA.TextMap (TextMap) import qualified DA.Set as Set import qualified DA.Text as T import DA.Time @@ -543,6 +544,7 @@ data DsoRulesConfig = DsoRulesConfig with nextScheduledSynchronizerUpgrade: Optional SynchronizerUpgradeSchedule voteCooldownTime : Optional RelTime -- ^ The minimum time between two votes by the same SV. nextScheduledLogicalSynchronizerUpgrade: Optional LogicalSynchronizerUpgradeSchedule + svOperationsSwitchOverTimes : Optional (TextMap Time) -- ^ Timepoints for synchronized switch-overs of amulet functionality both on and off-ledger. deriving (Eq, Show, Serializable) -- | Read the `voteCooldownTime` from the `DsoRulesConfig` with a default value of 1 minute. @@ -2109,6 +2111,7 @@ instance Patchable DsoRulesConfig where nextScheduledSynchronizerUpgrade = patch new.nextScheduledSynchronizerUpgrade base.nextScheduledSynchronizerUpgrade current.nextScheduledSynchronizerUpgrade nextScheduledLogicalSynchronizerUpgrade = patch new.nextScheduledLogicalSynchronizerUpgrade base.nextScheduledLogicalSynchronizerUpgrade current.nextScheduledLogicalSynchronizerUpgrade voteCooldownTime = patch new.voteCooldownTime base.voteCooldownTime current.voteCooldownTime + svOperationsSwitchOverTimes = patch new.svOperationsSwitchOverTimes base.svOperationsSwitchOverTimes current.svOperationsSwitchOverTimes instance Patchable SynchronizerUpgradeSchedule where patch new base current = SynchronizerUpgradeSchedule with diff --git a/daml/splice-util/daml.yaml b/daml/splice-util/daml.yaml index ae3c91a4dd..7e80618265 100644 --- a/daml/splice-util/daml.yaml +++ b/daml/splice-util/daml.yaml @@ -1,7 +1,7 @@ sdk-version: 3.5.2 name: splice-util source: daml -version: 0.1.7 +version: 0.1.8 dependencies: - daml-prim - daml-stdlib diff --git a/daml/splice-util/daml/Splice/Util.daml b/daml/splice-util/daml/Splice/Util.daml index aa9a17a0cd..4039af2834 100644 --- a/daml/splice-util/daml/Splice/Util.daml +++ b/daml/splice-util/daml/Splice/Util.daml @@ -39,6 +39,8 @@ import qualified DA.Set as Set import DA.Map (Map) import qualified DA.Map as Map import DA.List() +import DA.TextMap (TextMap) +import DA.TextMap qualified as TextMap -- | Require that a contract-id refers to a specific contract. requireMatchingContract : (Eq t, Show t, HasFetch t) => ContractId t -> t -> Update () @@ -231,6 +233,28 @@ instance (Ord k, Patchable v) => Patchable (Map k v) where base keysToRemove = mapDifference new base +textMapDifference : TextMap a -> TextMap a -> TextMap Text +textMapDifference = TextMap.merge (\_ _ -> None) (\k _ -> Some k) (\_ _ _ -> None) + +instance (Patchable a) => Patchable (TextMap a) where + patch new base current = + TextMap.union toAdd (TextMap.filterWithKey (\key _ -> not (TextMap.member key keysToRemove)) current) + where + toAdd = TextMap.merge + -- Keys only in `new`: Add them to the result + (\_ value -> Some value) + -- Keys only in `base`: Remove them from the result (i.e., return `None`) + (\_key _ -> None) + -- Keys in both `new` and `base`: Use `patch` to merge with `base` + (\key newValue baseValue -> + case TextMap.lookup key current of + None -> None -- Value got removed by concurrent request + Some currentValue -> Some (patch newValue baseValue currentValue) + ) + new + base + keysToRemove = textMapDifference new base + instance Patchable a => Patchable (Optional a) where patch new base current = case (base, new) of diff --git a/token-standard/splice-token-standard-v1-test/daml/Splice/Testing/Registries/AmuletRegistry/Parameters.daml b/token-standard/splice-token-standard-v1-test/daml/Splice/Testing/Registries/AmuletRegistry/Parameters.daml index b951e7c07c..27b09c8179 100644 --- a/token-standard/splice-token-standard-v1-test/daml/Splice/Testing/Registries/AmuletRegistry/Parameters.daml +++ b/token-standard/splice-token-standard-v1-test/daml/Splice/Testing/Registries/AmuletRegistry/Parameters.daml @@ -103,6 +103,8 @@ defaultAmuletConfig = AmuletConfig with minDevelopmentFundMintingDelay = None + amuletSwitchOverTimes = None + -- | Default configuration schedule with single current amulet config defaultAmuletConfigSchedule : Schedule Time (AmuletConfig USD) defaultAmuletConfigSchedule = Schedule with