agora-0.1.0
Maintainerseungheon.ooh@gmail.com
Safe HaskellSafe-Inferred
LanguageHaskell2010

Agora.Effect.TreasuryWithdrawal

Description

An Effect that withdraws treasury deposit

Synopsis

Documentation

data TreasuryWithdrawalDatum Source #

Datum that encodes behavior of Treasury Withdrawal effect.

Note: This Datum acts like a "predefined redeemer". Which is to say that it encodes the properties a redeemer would, but is locked in-place until spend.

Since: 0.1.0

Constructors

TreasuryWithdrawalDatum 

Fields

Instances

Instances details
Generic TreasuryWithdrawalDatum Source # 
Instance details

Defined in Agora.Effect.TreasuryWithdrawal

Associated Types

type Rep TreasuryWithdrawalDatum :: Type -> Type Source #

Show TreasuryWithdrawalDatum Source #

Since: 0.1.0

Instance details

Defined in Agora.Effect.TreasuryWithdrawal

Generic TreasuryWithdrawalDatum Source # 
Instance details

Defined in Agora.Effect.TreasuryWithdrawal

Associated Types

type Code TreasuryWithdrawalDatum :: [[Type]] Source #

PConstantDecl TreasuryWithdrawalDatum Source # 
Instance details

Defined in Agora.Effect.TreasuryWithdrawal

FromData TreasuryWithdrawalDatum Source # 
Instance details

Defined in Agora.Effect.TreasuryWithdrawal

ToData TreasuryWithdrawalDatum Source # 
Instance details

Defined in Agora.Effect.TreasuryWithdrawal

UnsafeFromData TreasuryWithdrawalDatum Source #

Since: 0.1.0

Instance details

Defined in Agora.Effect.TreasuryWithdrawal

Lift DefaultUni TreasuryWithdrawalDatum Source #

Since: 0.1.0

Instance details

Defined in Agora.Effect.TreasuryWithdrawal

Typeable DefaultUni TreasuryWithdrawalDatum Source # 
Instance details

Defined in Agora.Effect.TreasuryWithdrawal

type Rep TreasuryWithdrawalDatum Source #

Since: 0.1.0

Instance details

Defined in Agora.Effect.TreasuryWithdrawal

type Rep TreasuryWithdrawalDatum = D1 ('MetaData "TreasuryWithdrawalDatum" "Agora.Effect.TreasuryWithdrawal" "agora-0.1.0-C1o5klqsCO77ggIWQdJiNp" 'False) (C1 ('MetaCons "TreasuryWithdrawalDatum" 'PrefixI 'True) (S1 ('MetaSel ('Just "receivers") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Credential, Value)]) :*: S1 ('MetaSel ('Just "treasuries") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Credential])))
type Code TreasuryWithdrawalDatum Source #

Since: 0.1.0

Instance details

Defined in Agora.Effect.TreasuryWithdrawal

type PConstantRepr TreasuryWithdrawalDatum Source #

Since: 0.1.0

Instance details

Defined in Agora.Effect.TreasuryWithdrawal

type PConstanted TreasuryWithdrawalDatum Source # 
Instance details

Defined in Agora.Effect.TreasuryWithdrawal

newtype PTreasuryWithdrawalDatum (s :: S) Source #

Haskell-level version of TreasuryWithdrawalDatum.

Since: 0.1.0

Instances

Instances details
PIsData PTreasuryWithdrawalDatum Source #

Since: 0.1.0

Instance details

Defined in Agora.Effect.TreasuryWithdrawal

PIsDataRepr PTreasuryWithdrawalDatum Source # 
Instance details

Defined in Agora.Effect.TreasuryWithdrawal

PDataFields PTreasuryWithdrawalDatum Source # 
Instance details

Defined in Agora.Effect.TreasuryWithdrawal

PlutusType PTreasuryWithdrawalDatum Source # 
Instance details

Defined in Agora.Effect.TreasuryWithdrawal

Associated Types

type PInner PTreasuryWithdrawalDatum b' :: PType Source #

Methods

pcon' :: forall (s :: S) (b :: PType). PTreasuryWithdrawalDatum s -> Term s (PInner PTreasuryWithdrawalDatum b) Source #

pmatch' :: forall (s :: S) (b :: PType). Term s (PInner PTreasuryWithdrawalDatum b) -> (PTreasuryWithdrawalDatum s -> Term s b) -> Term s b Source #

PUnsafeLiftDecl PTreasuryWithdrawalDatum Source #

Since: 0.1.0

Instance details

Defined in Agora.Effect.TreasuryWithdrawal

Associated Types

type PLifted PTreasuryWithdrawalDatum = (r :: Type) Source #

PTryFrom PData (PAsData PTreasuryWithdrawalDatum) Source # 
Instance details

Defined in Agora.Effect.TreasuryWithdrawal

Generic (PTreasuryWithdrawalDatum s) Source # 
Instance details

Defined in Agora.Effect.TreasuryWithdrawal

Associated Types

type Rep (PTreasuryWithdrawalDatum s) :: Type -> Type Source #

Generic (PTreasuryWithdrawalDatum s) Source # 
Instance details

Defined in Agora.Effect.TreasuryWithdrawal

Associated Types

type Code (PTreasuryWithdrawalDatum s) :: [[Type]] Source #

type PIsDataReprRepr PTreasuryWithdrawalDatum Source #

Since: 0.1.0

Instance details

Defined in Agora.Effect.TreasuryWithdrawal

type PFields PTreasuryWithdrawalDatum Source #

Since: 0.1.0

Instance details

Defined in Agora.Effect.TreasuryWithdrawal

type PLifted PTreasuryWithdrawalDatum Source # 
Instance details

Defined in Agora.Effect.TreasuryWithdrawal

type PInner PTreasuryWithdrawalDatum b' Source #

Since: 0.1.0

Instance details

Defined in Agora.Effect.TreasuryWithdrawal

type PTryFromExcess PData (PAsData PTreasuryWithdrawalDatum) Source #

Since: 0.1.0

Instance details

Defined in Agora.Effect.TreasuryWithdrawal

type Rep (PTreasuryWithdrawalDatum s) Source #

Since: 0.1.0

Instance details

Defined in Agora.Effect.TreasuryWithdrawal

type Rep (PTreasuryWithdrawalDatum s) = D1 ('MetaData "PTreasuryWithdrawalDatum" "Agora.Effect.TreasuryWithdrawal" "agora-0.1.0-C1o5klqsCO77ggIWQdJiNp" 'True) (C1 ('MetaCons "PTreasuryWithdrawalDatum" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term s (PDataRecord '["receivers" := PBuiltinList (PAsData (PTuple PCredential (PValue 'Sorted 'Positive))), "treasuries" := PBuiltinList (PAsData PCredential)])))))
type Code (PTreasuryWithdrawalDatum s) Source #

Since: 0.1.0

Instance details

Defined in Agora.Effect.TreasuryWithdrawal

treasuryWithdrawalValidator :: forall {s :: S}. CurrencySymbol -> Term s PValidator Source #

Withdraws given list of values to specific target addresses. It can be evoked by burning GAT. The transaction should have correct outputs to the users and any left overs should be paid back to the treasury.

The validator does not accept any Redeemer as all "parameters" are provided via encoded Datum.

NOTE: It should check...

  1. Transaction outputs should contain all of what Datum specified
  2. Left over assets should be redirected back to Treasury

It can be more flexiable over...

  • The number of outputs themselves

Since: 0.1.0