Splice.AmuletConfig
Splice.AmuletConfig
Data Types
data Amulet
data AmuletConfig unit
Configuration includes TransferConfig, issuance curve and tickDuration
See Splice.Scripts.Parameters for concrete values.
Field
Type
Description
transferConfig
TransferConfig unit
Configuration determining the fees and limits for Amulet transfers
issuanceCurve
Issuance curve to use.
decentralizedSynchronizer
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
Duration of a tick, which is the duration of half a round.
packageConfig
Configuration determining the version of each package that should be used for command submissions.
transferPreapprovalFee
Fee for keeping a transfer pre-approval around.
featuredAppActivityMarkerAmount
$-amount used for the conversion from FeaturedAppActivityMarker -> AppRewardCoupon
optDevelopmentFundManager
Party authorized to manage and allocate minting rights from the Development Fund.
externalPartyConfigStateTickDuration
Half the lifetime of an
ExternalPartyConfigStatecontract and the overlap between two successive contracts. Default: 24h.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.
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.
Field
Type
Description
mintingVersion
What scheme to use for minting rewards.
dryRunVersion
What scheme to use for dry-running reward minting. If None, dry-runs are disabled.
batchSize
Batch size to use for building the Merkle-tree over minting allowances.
rewardCouponTimeToLive
Time to live for reward coupons, default 36h to support batching of collection across 12h with a 24h prepare-submission delay.
appRewardCouponThreshold
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.
Field
Type
Description
createFee
Fee to create a new amulet.
holdingFee
Fee for keeping an amulet around.
transferFee
Fee for transferring some amount of amulet to a new owner.
lockHolderFee
Fee per lock holder of a locked amulet.
extraFeaturedAppRewardAmount
Extra $-amount of reward for featured apps.
maxNumInputs
Maximum number of batch inputs for a transfer.
maxNumOutputs
Maximum number of batch outputs for a transfer.
maxNumLockHolders
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.
Field
Type
Description
holdingFee
maxNumInputs
maxNumOutputs
maxNumLockHolders
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
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