atlas-cardano
Copyright(c) 2023 GYELD GMBH
LicenseApache 2.0
Maintainer[email protected]
Stabilitydevelop
Safe HaskellNone
LanguageGHC2021

GeniusYield.Test.FeeTracker

Description

 
Synopsis

Documentation

data FeeTrackerGame (m :: Type -> Type) a #

A wrapper around GYTxGameMonad that uses FeeTracker as its GYTxMonad to track extra lovelaces per transaction.

Instances

Instances details
MonadError GYTxMonadException m => MonadError GYTxMonadException (FeeTrackerGame m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

MonadRandom m => MonadRandom (FeeTrackerGame m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

Methods

getRandomR :: Random a => (a, a) -> FeeTrackerGame m a #

getRandom :: Random a => FeeTrackerGame m a #

getRandomRs :: Random a => (a, a) -> FeeTrackerGame m [a] #

getRandoms :: Random a => FeeTrackerGame m [a] #

GYTxGameMonad m => GYTxGameMonad (FeeTrackerGame m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

Associated Types

type TxMonadOf (FeeTrackerGame m) 
Instance details

Defined in GeniusYield.Test.FeeTracker

GYTxQueryMonad m => GYTxQueryMonad (FeeTrackerGame m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

Methods

networkId :: FeeTrackerGame m GYNetworkId #

lookupDatum :: GYDatumHash -> FeeTrackerGame m (Maybe GYDatum) #

utxoAtTxOutRef :: GYTxOutRef -> FeeTrackerGame m (Maybe GYUTxO) #

utxoAtTxOutRefWithDatum :: GYTxOutRef -> FeeTrackerGame m (Maybe (GYUTxO, Maybe GYDatum)) #

utxosAtTxOutRefs :: [GYTxOutRef] -> FeeTrackerGame m GYUTxOs #

utxosAtTxOutRefsWithDatums :: [GYTxOutRef] -> FeeTrackerGame m [(GYUTxO, Maybe GYDatum)] #

utxosAtAddress :: GYAddress -> Maybe GYAssetClass -> FeeTrackerGame m GYUTxOs #

utxosAtAddressWithDatums :: GYAddress -> Maybe GYAssetClass -> FeeTrackerGame m [(GYUTxO, Maybe GYDatum)] #

utxosAtAddresses :: [GYAddress] -> FeeTrackerGame m GYUTxOs #

utxosAtAddressesWithDatums :: [GYAddress] -> FeeTrackerGame m [(GYUTxO, Maybe GYDatum)] #

utxoRefsAtAddress :: GYAddress -> FeeTrackerGame m [GYTxOutRef] #

utxosAtPaymentCredential :: GYPaymentCredential -> Maybe GYAssetClass -> FeeTrackerGame m GYUTxOs #

utxosAtPaymentCredentialWithDatums :: GYPaymentCredential -> Maybe GYAssetClass -> FeeTrackerGame m [(GYUTxO, Maybe GYDatum)] #

utxosAtPaymentCredentials :: [GYPaymentCredential] -> FeeTrackerGame m GYUTxOs #

utxosAtPaymentCredentialsWithDatums :: [GYPaymentCredential] -> FeeTrackerGame m [(GYUTxO, Maybe GYDatum)] #

stakeAddressInfo :: GYStakeAddress -> FeeTrackerGame m (Maybe GYStakeAddressInfo) #

drepState :: GYCredential 'GYKeyRoleDRep -> FeeTrackerGame m (Maybe GYDRepState) #

drepsState :: Set (GYCredential 'GYKeyRoleDRep) -> FeeTrackerGame m (Map (GYCredential 'GYKeyRoleDRep) (Maybe GYDRepState)) #

slotConfig :: FeeTrackerGame m GYSlotConfig #

slotOfCurrentBlock :: FeeTrackerGame m GYSlot #

logMsg :: GYLogNamespace -> GYLogSeverity -> String -> FeeTrackerGame m () #

waitUntilSlot :: GYSlot -> FeeTrackerGame m GYSlot #

waitForNextBlock :: FeeTrackerGame m GYSlot #

constitution :: FeeTrackerGame m GYConstitution #

proposals :: Set GYGovActionId -> FeeTrackerGame m (Seq GYGovActionState) #

mempoolTxs :: FeeTrackerGame m [GYTx] #

GYTxSpecialQueryMonad m => GYTxSpecialQueryMonad (FeeTrackerGame m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

Monad m => Applicative (FeeTrackerGame m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

Methods

pure :: a -> FeeTrackerGame m a #

(<*>) :: FeeTrackerGame m (a -> b) -> FeeTrackerGame m a -> FeeTrackerGame m b #

liftA2 :: (a -> b -> c) -> FeeTrackerGame m a -> FeeTrackerGame m b -> FeeTrackerGame m c #

(*>) :: FeeTrackerGame m a -> FeeTrackerGame m b -> FeeTrackerGame m b #

(<*) :: FeeTrackerGame m a -> FeeTrackerGame m b -> FeeTrackerGame m a #

Functor m => Functor (FeeTrackerGame m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

Methods

fmap :: (a -> b) -> FeeTrackerGame m a -> FeeTrackerGame m b #

(<$) :: a -> FeeTrackerGame m b -> FeeTrackerGame m a #

Monad m => Monad (FeeTrackerGame m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

Methods

(>>=) :: FeeTrackerGame m a -> (a -> FeeTrackerGame m b) -> FeeTrackerGame m b #

(>>) :: FeeTrackerGame m a -> FeeTrackerGame m b -> FeeTrackerGame m b #

return :: a -> FeeTrackerGame m a #

type TxMonadOf (FeeTrackerGame m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

data FeeTracker (m :: Type -> Type) a #

A wrapper around GYTxMonad that "injects" code around transaction building and submitting to track fees.

Instances

Instances details
MonadError GYTxMonadException m => MonadError GYTxMonadException (FeeTracker m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

MonadRandom m => MonadRandom (FeeTracker m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

Methods

getRandomR :: Random a => (a, a) -> FeeTracker m a #

getRandom :: Random a => FeeTracker m a #

getRandomRs :: Random a => (a, a) -> FeeTracker m [a] #

getRandoms :: Random a => FeeTracker m [a] #

GYTxBuilderMonad m => GYTxBuilderMonad (FeeTracker m) #

Override transaction building code of the inner monad to track extra lovelace per transaction.

Instance details

Defined in GeniusYield.Test.FeeTracker

Associated Types

type TxBuilderStrategy (FeeTracker m) 
Instance details

Defined in GeniusYield.Test.FeeTracker

GYTxMonad m => GYTxMonad (FeeTracker m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

GYTxQueryMonad m => GYTxQueryMonad (FeeTracker m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

Methods

networkId :: FeeTracker m GYNetworkId #

lookupDatum :: GYDatumHash -> FeeTracker m (Maybe GYDatum) #

utxoAtTxOutRef :: GYTxOutRef -> FeeTracker m (Maybe GYUTxO) #

utxoAtTxOutRefWithDatum :: GYTxOutRef -> FeeTracker m (Maybe (GYUTxO, Maybe GYDatum)) #

utxosAtTxOutRefs :: [GYTxOutRef] -> FeeTracker m GYUTxOs #

utxosAtTxOutRefsWithDatums :: [GYTxOutRef] -> FeeTracker m [(GYUTxO, Maybe GYDatum)] #

utxosAtAddress :: GYAddress -> Maybe GYAssetClass -> FeeTracker m GYUTxOs #

utxosAtAddressWithDatums :: GYAddress -> Maybe GYAssetClass -> FeeTracker m [(GYUTxO, Maybe GYDatum)] #

utxosAtAddresses :: [GYAddress] -> FeeTracker m GYUTxOs #

utxosAtAddressesWithDatums :: [GYAddress] -> FeeTracker m [(GYUTxO, Maybe GYDatum)] #

utxoRefsAtAddress :: GYAddress -> FeeTracker m [GYTxOutRef] #

utxosAtPaymentCredential :: GYPaymentCredential -> Maybe GYAssetClass -> FeeTracker m GYUTxOs #

utxosAtPaymentCredentialWithDatums :: GYPaymentCredential -> Maybe GYAssetClass -> FeeTracker m [(GYUTxO, Maybe GYDatum)] #

utxosAtPaymentCredentials :: [GYPaymentCredential] -> FeeTracker m GYUTxOs #

utxosAtPaymentCredentialsWithDatums :: [GYPaymentCredential] -> FeeTracker m [(GYUTxO, Maybe GYDatum)] #

stakeAddressInfo :: GYStakeAddress -> FeeTracker m (Maybe GYStakeAddressInfo) #

drepState :: GYCredential 'GYKeyRoleDRep -> FeeTracker m (Maybe GYDRepState) #

drepsState :: Set (GYCredential 'GYKeyRoleDRep) -> FeeTracker m (Map (GYCredential 'GYKeyRoleDRep) (Maybe GYDRepState)) #

slotConfig :: FeeTracker m GYSlotConfig #

slotOfCurrentBlock :: FeeTracker m GYSlot #

logMsg :: GYLogNamespace -> GYLogSeverity -> String -> FeeTracker m () #

waitUntilSlot :: GYSlot -> FeeTracker m GYSlot #

waitForNextBlock :: FeeTracker m GYSlot #

constitution :: FeeTracker m GYConstitution #

proposals :: Set GYGovActionId -> FeeTracker m (Seq GYGovActionState) #

mempoolTxs :: FeeTracker m [GYTx] #

GYTxSpecialQueryMonad m => GYTxSpecialQueryMonad (FeeTracker m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

GYTxUserQueryMonad m => GYTxUserQueryMonad (FeeTracker m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

Monad m => Applicative (FeeTracker m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

Methods

pure :: a -> FeeTracker m a #

(<*>) :: FeeTracker m (a -> b) -> FeeTracker m a -> FeeTracker m b #

liftA2 :: (a -> b -> c) -> FeeTracker m a -> FeeTracker m b -> FeeTracker m c #

(*>) :: FeeTracker m a -> FeeTracker m b -> FeeTracker m b #

(<*) :: FeeTracker m a -> FeeTracker m b -> FeeTracker m a #

Functor m => Functor (FeeTracker m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

Methods

fmap :: (a -> b) -> FeeTracker m a -> FeeTracker m b #

(<$) :: a -> FeeTracker m b -> FeeTracker m a #

Monad m => Monad (FeeTracker m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

Methods

(>>=) :: FeeTracker m a -> (a -> FeeTracker m b) -> FeeTracker m b #

(>>) :: FeeTracker m a -> FeeTracker m b -> FeeTracker m b #

return :: a -> FeeTracker m a #

type TxBuilderStrategy (FeeTracker m) # 
Instance details

Defined in GeniusYield.Test.FeeTracker

ftgLift :: Functor m => m a -> FeeTrackerGame m a #

Perform a special action supported by the specific wrapped monad instance by lifting it to FeeTrackerGame.

ftLift :: Functor m => m a -> FeeTracker m a #

Perform a special action supported by the specific wrapped monad instance by lifting it to FeeTracker.

withWalletBalancesCheckSimple :: GYTxGameMonad m => [(User, GYValue)] -> FeeTrackerGame m a -> m a #

Computes a GYTxMonadClb action, checking that the Wallet balances change according to the input list. This is a simplified version of withWalletBalancesCheck where the input list need not consider lovelaces required for fees & to satisfy the min ada requirements as these are added automatically. It is therefore recommended to use this function over withWalletBalancesCheck to avoid hardcoding the lovelaces required for fees & min ada constraints. Notes: * An empty list means no checks are performed. * The GYValue should be negative to check if the Wallet lost those funds.

withWalletBalancesCheckSimpleIgnoreMinDepFor :: GYTxGameMonad m => [(User, GYValue)] -> Set User -> FeeTrackerGame m a -> m a #

Variant of withWalletBalancesCheckSimple that only accounts for transaction fees and not minimum ada deposits.

withoutFeeTracking :: forall (m :: Type -> Type) a. Monad m => FeeTracker m a -> FeeTracker m a #

Run an action and ignore any tracked fees. Useful for building a tx body without the intent to submit it later. Thereby ignoring all the tracked fees from that txbody that won't actually take effect in the wallet (since it won't be submitted).