Copyright | (c) 2023 GYELD GMBH |
---|---|
License | Apache 2.0 |
Maintainer | [email protected] |
Stability | develop |
Safe Haskell | None |
Language | GHC2021 |
GeniusYield.Test.FeeTracker
Description
Synopsis
- data FeeTrackerGame (m :: Type -> Type) a
- data FeeTracker (m :: Type -> Type) a
- ftgLift :: Functor m => m a -> FeeTrackerGame m a
- ftLift :: Functor m => m a -> FeeTracker m a
- withWalletBalancesCheckSimple :: GYTxGameMonad m => [(User, GYValue)] -> FeeTrackerGame m a -> m a
- withWalletBalancesCheckSimpleIgnoreMinDepFor :: GYTxGameMonad m => [(User, GYValue)] -> Set User -> FeeTrackerGame m a -> m a
- withoutFeeTracking :: forall (m :: Type -> Type) a. Monad m => FeeTracker m a -> FeeTracker m a
Documentation
data FeeTrackerGame (m :: Type -> Type) a #
A wrapper around GYTxGameMonad
that uses FeeTracker
as its GYTxMonad
to track extra lovelaces per transaction.
Instances
data FeeTracker (m :: Type -> Type) a #
A wrapper around GYTxMonad
that "injects" code around transaction building and submitting to track fees.
Instances
MonadError GYTxMonadException m => MonadError GYTxMonadException (FeeTracker m) # | |||||
Defined in GeniusYield.Test.FeeTracker Methods throwError :: GYTxMonadException -> FeeTracker m a # catchError :: FeeTracker m a -> (GYTxMonadException -> FeeTracker m a) -> FeeTracker m a # | |||||
MonadRandom m => MonadRandom (FeeTracker m) # | |||||
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. | ||||
Defined in GeniusYield.Test.FeeTracker Associated Types
Methods buildTxBodyWithStrategy :: forall (v :: PlutusVersion). TxBuilderStrategy (FeeTracker m) -> GYTxSkeleton v -> FeeTracker m GYTxBody # buildTxBodyWithStrategyAndExtraConfiguration :: forall (v :: PlutusVersion). TxBuilderStrategy (FeeTracker m) -> GYTxExtraConfiguration v -> GYTxSkeleton v -> FeeTracker m GYTxBody # buildTxBodyParallelWithStrategy :: forall (v :: PlutusVersion). TxBuilderStrategy (FeeTracker m) -> [GYTxSkeleton v] -> FeeTracker m GYTxBuildResult # buildTxBodyChainingWithStrategy :: forall (v :: PlutusVersion). TxBuilderStrategy (FeeTracker m) -> [GYTxSkeleton v] -> FeeTracker m GYTxBuildResult # | |||||
GYTxMonad m => GYTxMonad (FeeTracker m) # | |||||
Defined in GeniusYield.Test.FeeTracker Methods signTxBody :: GYTxBody -> FeeTracker m GYTx # signTxBodyWithStake :: GYTxBody -> FeeTracker m GYTx # submitTx :: GYTx -> FeeTracker m GYTxId # awaitTxConfirmed' :: GYAwaitTxParameters -> GYTxId -> FeeTracker m () # | |||||
GYTxQueryMonad m => GYTxQueryMonad (FeeTracker m) # | |||||
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) # | |||||
Defined in GeniusYield.Test.FeeTracker Methods systemStart :: FeeTracker m SystemStart # eraHistory :: FeeTracker m EraHistory # protocolParams :: FeeTracker m ApiProtocolParameters # stakePools :: FeeTracker m (Set PoolId) # | |||||
GYTxUserQueryMonad m => GYTxUserQueryMonad (FeeTracker m) # | |||||
Defined in GeniusYield.Test.FeeTracker Methods ownAddresses :: FeeTracker m [GYAddress] # ownChangeAddress :: FeeTracker m GYAddress # ownCollateral :: FeeTracker m (Maybe GYUTxO) # availableUTxOs :: FeeTracker m GYUTxOs # someUTxO :: PlutusVersion -> FeeTracker m GYTxOutRef # | |||||
Monad m => Applicative (FeeTracker m) # | |||||
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) # | |||||
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) # | |||||
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) # | |||||
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).