Skip to content
Documentation/Canton SDK/Splice Daml Models splice-amulet docs Splice.AmuletConfigView on Canton SDK
Canton SDK/Splice Daml Models splice-amulet docs Splice.AmuletConfig

Splice.AmuletConfig

Deprecated

This Splice documentation site is deprecated. Use the current Canton Network docs.

Open current docs

Splice.AmuletConfig

Data Types

data Amulet

Deprecated type for specifying amounts and fees in units of Amulet. Use Splice.Amulet.Amulet directly instead.

Amulet

instance Eq Amulet

instance Show Amulet

data AmuletConfig unit

Configuration includes TransferConfig, issuance curve and tickDuration

See Splice.Scripts.Parameters for concrete values.

AmuletConfig

Field

Type

Description

transferConfig

TransferConfig unit

Configuration determining the fees and limits for Amulet transfers

issuanceCurve

Schedule RelTime IssuanceConfig

Issuance curve to use.

decentralizedSynchronizer

AmuletDecentralizedSynchronizerConfig

Configuration for the decentralized synchronizer and its fees. TODO(M4-85): the values in here are likely quite large (several URls and long synchronizerIds) and not required for executing transfers. Split this part of the config out into a separate contract as a performance optimization.

tickDuration

RelTime

Duration of a tick, which is the duration of half a round.

packageConfig

PackageConfig

Configuration determining the version of each package that should be used for command submissions.

transferPreapprovalFee

Optional Decimal

Fee for keeping a transfer pre-approval around.

featuredAppActivityMarkerAmount

Optional Decimal

$-amount used for the conversion from FeaturedAppActivityMarker -> AppRewardCoupon

optDevelopmentFundManager

Optional Party

Party authorized to manage and allocate minting rights from the Development Fund.

externalPartyConfigStateTickDuration

Optional RelTime

Half the lifetime of an ExternalPartyConfigState contract and the overlap between two successive contracts. Default: 24h.

rewardConfig

Optional RewardConfig

Configuration for the reward accounting and calculation. If None, then on-ledger reward tracking is used.

instance Eq (AmuletConfig unit)

instance Show (AmuletConfig unit)

instance GetField "baseConfig" AmuletRules_SetConfig (AmuletConfig USD)

instance GetField "configSchedule" AmuletRules (Schedule Time (AmuletConfig USD))

instance GetField "decentralizedSynchronizer" (AmuletConfig unit) AmuletDecentralizedSynchronizerConfig

instance GetField "externalPartyConfigStateTickDuration" (AmuletConfig unit) (Optional RelTime)

instance GetField "featuredAppActivityMarkerAmount" (AmuletConfig unit) (Optional Decimal)

instance GetField "issuanceCurve" (AmuletConfig unit) (Schedule RelTime IssuanceConfig)

instance GetField "newConfig" AmuletRules_SetConfig (AmuletConfig USD)

instance GetField "newScheduleItem" AmuletRules_AddFutureAmuletConfigSchedule (Time, AmuletConfig USD)

instance GetField "optDevelopmentFundManager" (AmuletConfig unit) (Optional Party)

instance GetField "packageConfig" (AmuletConfig unit) PackageConfig

instance GetField "rewardConfig" (AmuletConfig unit) (Optional RewardConfig)

instance GetField "scheduleItem" AmuletRules_UpdateFutureAmuletConfigSchedule (Time, AmuletConfig USD)

instance GetField "tickDuration" (AmuletConfig unit) RelTime

instance GetField "transferConfig" (AmuletConfig unit) (TransferConfig unit)

instance GetField "transferPreapprovalFee" (AmuletConfig unit) (Optional Decimal)

instance SetField "baseConfig" AmuletRules_SetConfig (AmuletConfig USD)

instance SetField "configSchedule" AmuletRules (Schedule Time (AmuletConfig USD))

instance SetField "decentralizedSynchronizer" (AmuletConfig unit) AmuletDecentralizedSynchronizerConfig

instance SetField "externalPartyConfigStateTickDuration" (AmuletConfig unit) (Optional RelTime)

instance SetField "featuredAppActivityMarkerAmount" (AmuletConfig unit) (Optional Decimal)

instance SetField "issuanceCurve" (AmuletConfig unit) (Schedule RelTime IssuanceConfig)

instance SetField "newConfig" AmuletRules_SetConfig (AmuletConfig USD)

instance SetField "newScheduleItem" AmuletRules_AddFutureAmuletConfigSchedule (Time, AmuletConfig USD)

instance SetField "optDevelopmentFundManager" (AmuletConfig unit) (Optional Party)

instance SetField "packageConfig" (AmuletConfig unit) PackageConfig

instance SetField "rewardConfig" (AmuletConfig unit) (Optional RewardConfig)

instance SetField "scheduleItem" AmuletRules_UpdateFutureAmuletConfigSchedule (Time, AmuletConfig USD)

instance SetField "tickDuration" (AmuletConfig unit) RelTime

instance SetField "transferConfig" (AmuletConfig unit) (TransferConfig unit)

instance SetField "transferPreapprovalFee" (AmuletConfig unit) (Optional Decimal)

instance Patchable (AmuletConfig USD)

data PackageConfig

The package config defines for each daml package (identified by name) the package version that should be used for command submissions at that point.

PackageConfig

Field

Type

Description

amulet

Text

amuletNameService

Text

dsoGovernance

Text

validatorLifecycle

Text

wallet

Text

walletPayments

Text

instance Eq PackageConfig

instance Show PackageConfig

instance GetField "amulet" PackageConfig Text

instance GetField "amuletNameService" PackageConfig Text

instance GetField "dsoGovernance" PackageConfig Text

instance GetField "packageConfig" (AmuletConfig unit) PackageConfig

instance GetField "validatorLifecycle" PackageConfig Text

instance GetField "wallet" PackageConfig Text

instance GetField "walletPayments" PackageConfig Text

instance SetField "amulet" PackageConfig Text

instance SetField "amuletNameService" PackageConfig Text

instance SetField "dsoGovernance" PackageConfig Text

instance SetField "packageConfig" (AmuletConfig unit) PackageConfig

instance SetField "validatorLifecycle" PackageConfig Text

instance SetField "wallet" PackageConfig Text

instance SetField "walletPayments" PackageConfig Text

instance Patchable PackageConfig

data RewardConfig

Configuration for how reward accounting and calculation should be performed.

RewardConfig

Field

Type

Description

mintingVersion

RewardVersion

What scheme to use for minting rewards.

dryRunVersion

Optional RewardVersion

What scheme to use for dry-running reward minting. If None, dry-runs are disabled.

batchSize

Int

Batch size to use for building the Merkle-tree over minting allowances.

rewardCouponTimeToLive

RelTime

Time to live for reward coupons, default 36h to support batching of collection across 12h with a 24h prepare-submission delay.

appRewardCouponThreshold

Decimal

Threshold for minting reward coupons, in USD. This threshold is not enforced in daml, but it must be used while building the Merkle-tree to ignore minting allowances lower than this value.

instance Eq RewardConfig

instance Show RewardConfig

instance GetField "appRewardCouponThreshold" RewardConfig Decimal

instance GetField "batchSize" RewardConfig Int

instance GetField "dryRunVersion" RewardConfig (Optional RewardVersion)

instance GetField "mintingVersion" RewardConfig RewardVersion

instance GetField "rewardConfig" (AmuletConfig unit) (Optional RewardConfig)

instance GetField "rewardConfig" OpenMiningRound (Optional RewardConfig)

instance GetField "rewardConfig" SummarizingMiningRound (Optional RewardConfig)

instance GetField "rewardCouponTimeToLive" RewardConfig RelTime

instance SetField "appRewardCouponThreshold" RewardConfig Decimal

instance SetField "batchSize" RewardConfig Int

instance SetField "dryRunVersion" RewardConfig (Optional RewardVersion)

instance SetField "mintingVersion" RewardConfig RewardVersion

instance SetField "rewardConfig" (AmuletConfig unit) (Optional RewardConfig)

instance SetField "rewardConfig" OpenMiningRound (Optional RewardConfig)

instance SetField "rewardConfig" SummarizingMiningRound (Optional RewardConfig)

instance SetField "rewardCouponTimeToLive" RewardConfig RelTime

instance Patchable RewardConfig

data RewardVersion

How rewards and their minting allowances are tracked and computed.

RewardVersion_FeaturedAppMarkers

Version of app rewards pre CIP-0104

RewardVersion_TrafficBasedAppRewards

Traffic-based app rewards as introduced in CIP-0104

instance Eq RewardVersion

instance Show RewardVersion

instance GetField "dryRunVersion" RewardConfig (Optional RewardVersion)

instance GetField "mintingVersion" RewardConfig RewardVersion

instance GetField "rewardCalculationVersion" TransferContextSummaryV2 (Optional RewardVersion)

instance GetField "rewardCalculationVersion" ExternalPartyConfigState (Optional RewardVersion)

instance SetField "dryRunVersion" RewardConfig (Optional RewardVersion)

instance SetField "mintingVersion" RewardConfig RewardVersion

instance SetField "rewardCalculationVersion" TransferContextSummaryV2 (Optional RewardVersion)

instance SetField "rewardCalculationVersion" ExternalPartyConfigState (Optional RewardVersion)

instance Patchable RewardVersion

data TransferConfig unit

Configuration determining the fees and limits for Amulet transfers granted by the AmuletRules.

See Splice.Scripts.Parameters for concrete values.

TransferConfig

Field

Type

Description

createFee

FixedFee

Fee to create a new amulet.

holdingFee

RatePerRound

Fee for keeping an amulet around.

transferFee

SteppedRate

Fee for transferring some amount of amulet to a new owner.

lockHolderFee

FixedFee

Fee per lock holder of a locked amulet.

extraFeaturedAppRewardAmount

Decimal

Extra $-amount of reward for featured apps.

maxNumInputs

Int

Maximum number of batch inputs for a transfer.

maxNumOutputs

Int

Maximum number of batch outputs for a transfer.

maxNumLockHolders

Int

Maximum number of lock holders allowed for a locked amulet.

instance Eq (TransferConfig unit)

instance Show (TransferConfig unit)

instance GetField "config" TransferContextSummary (TransferConfig Amulet)

instance GetField "createFee" (TransferConfig unit) FixedFee

instance GetField "extraFeaturedAppRewardAmount" (TransferConfig unit) Decimal

instance GetField "holdingFee" (TransferConfig unit) RatePerRound

instance GetField "lockHolderFee" (TransferConfig unit) FixedFee

instance GetField "maxNumInputs" (TransferConfig unit) Int

instance GetField "maxNumLockHolders" (TransferConfig unit) Int

instance GetField "maxNumOutputs" (TransferConfig unit) Int

instance GetField "transferConfig" (AmuletConfig unit) (TransferConfig unit)

instance GetField "transferConfigUsd" OpenMiningRound (TransferConfig USD)

instance GetField "transferFee" (TransferConfig unit) SteppedRate

instance SetField "config" TransferContextSummary (TransferConfig Amulet)

instance SetField "createFee" (TransferConfig unit) FixedFee

instance SetField "extraFeaturedAppRewardAmount" (TransferConfig unit) Decimal

instance SetField "holdingFee" (TransferConfig unit) RatePerRound

instance SetField "lockHolderFee" (TransferConfig unit) FixedFee

instance SetField "maxNumInputs" (TransferConfig unit) Int

instance SetField "maxNumLockHolders" (TransferConfig unit) Int

instance SetField "maxNumOutputs" (TransferConfig unit) Int

instance SetField "transferConfig" (AmuletConfig unit) (TransferConfig unit)

instance SetField "transferConfigUsd" OpenMiningRound (TransferConfig USD)

instance SetField "transferFee" (TransferConfig unit) SteppedRate

instance Patchable (TransferConfig USD)

data TransferConfigV2 unit

Stripped down TransferConfig after CIP-0078 removed fees.

TransferConfigV2

Field

Type

Description

holdingFee

RatePerRound

maxNumInputs

Int

maxNumOutputs

Int

maxNumLockHolders

Int

instance Eq (TransferConfigV2 unit)

instance Show (TransferConfigV2 unit)

instance GetField "config" TransferContextSummaryV2 (TransferConfigV2 Amulet)

instance GetField "holdingFee" (TransferConfigV2 unit) RatePerRound

instance GetField "maxNumInputs" (TransferConfigV2 unit) Int

instance GetField "maxNumLockHolders" (TransferConfigV2 unit) Int

instance GetField "maxNumOutputs" (TransferConfigV2 unit) Int

instance GetField "transferConfig" ExternalPartyConfigState (TransferConfigV2 USD)

instance SetField "config" TransferContextSummaryV2 (TransferConfigV2 Amulet)

instance SetField "holdingFee" (TransferConfigV2 unit) RatePerRound

instance SetField "maxNumInputs" (TransferConfigV2 unit) Int

instance SetField "maxNumLockHolders" (TransferConfigV2 unit) Int

instance SetField "maxNumOutputs" (TransferConfigV2 unit) Int

instance SetField "transferConfig" ExternalPartyConfigState (TransferConfigV2 USD)

data USD

USD

instance Eq USD

instance Show USD

instance GetField "baseConfig" AmuletRules_SetConfig (AmuletConfig USD)

instance GetField "configSchedule" AmuletRules (Schedule Time (AmuletConfig USD))

instance GetField "newConfig" AmuletRules_SetConfig (AmuletConfig USD)

instance GetField "newScheduleItem" AmuletRules_AddFutureAmuletConfigSchedule (Time, AmuletConfig USD)

instance GetField "scheduleItem" AmuletRules_UpdateFutureAmuletConfigSchedule (Time, AmuletConfig USD)

instance GetField "transferConfig" ExternalPartyConfigState (TransferConfigV2 USD)

instance GetField "transferConfigUsd" OpenMiningRound (TransferConfig USD)

instance SetField "baseConfig" AmuletRules_SetConfig (AmuletConfig USD)

instance SetField "configSchedule" AmuletRules (Schedule Time (AmuletConfig USD))

instance SetField "newConfig" AmuletRules_SetConfig (AmuletConfig USD)

instance SetField "newScheduleItem" AmuletRules_AddFutureAmuletConfigSchedule (Time, AmuletConfig USD)

instance SetField "scheduleItem" AmuletRules_UpdateFutureAmuletConfigSchedule (Time, AmuletConfig USD)

instance SetField "transferConfig" ExternalPartyConfigState (TransferConfigV2 USD)

instance SetField "transferConfigUsd" OpenMiningRound (TransferConfig USD)

instance Patchable (AmuletConfig USD)

instance Patchable (TransferConfig USD)

Functions

transferConfigToTransferConfigV2

: TransferConfig unit -> TransferConfigV2 unit

useTrafficBasedAppRewards

: Optional RewardVersion -> Bool

useFeaturedAppMarkers

: Optional RewardVersion -> Bool

getExternalPartyConfigStateTickDuration

: AmuletConfig a -> RelTime

defaultTransferPreapprovalFee

: Decimal

validAmuletConfig

: AmuletConfig unit -> Bool

validTransferConfig

: TransferConfig unit -> Bool

validPackageConfig

: PackageConfig -> Bool

Package configs are not constrained at the Daml level to maximize flexibility. In particular, empty packages versions might be used in the future to indicate that no version of that package should be vetted.

Comments