Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
TrustlessSidechain.IlliquidCirculationSupply
Description
Synopsis
- mkIlliquidCirculationSupplyValidator :: VersionOracleConfig -> BuiltinData -> IlliquidCirculationSupplyRedeemer -> ScriptContext -> Bool
- mkIlliquidCirculationSupplyValidatorUntyped :: BuiltinData -> BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit
- compiledValidator :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit)
- serialisableIlliquidCirculationSupplyValidator :: SerialisedScript
- mkIlliquidCirculationSupplyAuthorityTokenPolicy :: BuiltinData -> VersionOracleConfig -> BuiltinData -> ScriptContext -> Bool
- mkIlliquidCirculationSupplyAuthorityTokenPolicyUntyped :: BuiltinData -> BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit
- compiledAuthorityTokenPolicy :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit)
- serialisableIlliquidCirculationSupplyAuthorityTokenPolicy :: SerialisedScript
Illiquid Circulation Supply (ICS) validator
There can be multiple ICS UTXOs at the validator address; they are identified by having the ICS Auth token.
Redeemers:
DepositMoreToSupply
allows depositing native tokens into a single continuing ICS UTXO.- Amount of native tokens in the ICS UTXO must not decrease.
- Outputs exactly one ICS UTXO, with a single ICS Auth token.
- Only outputs at the ICS validator address may receive an ICS Auth token.
Required reference inputs:
WithdrawFromSupply
allows withdrawing native tokens from the ICS.- May spend and output one or more ICS UTXOs.
- Only outputs at the ICS validator address may receive an ICS Auth token.
- Conditions of withdrawing tokens are encoded in the ICS supply withdrawal policy, which must exist in the versioning system; one withdrawal token must be minted to prove the conditions are fulfilled.
Required reference inputs:
Error codes:
- ERROR-ILLIQUID-CIRCULATION-SUPPLY-01: Output UTxO doesn't have exactly one ICS Authority Token or ICS auth tokens leak from the ICS validator
- ERROR-ILLIQUID-CIRCULATION-SUPPLY-02: Assets of the supply UTxO decreased
- ERROR-ILLIQUID-CIRCULATION-SUPPLY-03: Single illiquid circulation supply token is not minted
- ERROR-ILLIQUID-CIRCULATION-SUPPLY-04: No unique output UTxO at the supply address
- ERROR-ILLIQUID-CIRCULATION-SUPPLY-05: No own input UTxO at the supply address
mkIlliquidCirculationSupplyValidator :: VersionOracleConfig -> BuiltinData -> IlliquidCirculationSupplyRedeemer -> ScriptContext -> Bool #
mkIlliquidCirculationSupplyValidatorUntyped :: BuiltinData -> BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit #
compiledValidator :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit) #
ICS Auth token minting policy
Tokens minted with this policy are used for identifying authorized ICS UTXOs at the ICS validator address.
Error codes:
- ERROR-ICS-AUTH-TOKEN-01: No authority signature.
mkIlliquidCirculationSupplyAuthorityTokenPolicy :: BuiltinData -> VersionOracleConfig -> BuiltinData -> ScriptContext -> Bool #
mkIlliquidCirculationSupplyAuthorityTokenPolicyUntyped :: BuiltinData -> BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit #
compiledAuthorityTokenPolicy :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit) #