From b787446546cf77dfc7765f267e3e569199fc7d56 Mon Sep 17 00:00:00 2001 From: Yuriy Lazaryev Date: Fri, 10 Jul 2026 13:22:58 +0200 Subject: [PATCH 1/4] Re-export the full Value API from V2/V3 and the Data.* modules PlutusLedgerApi.V2, V3, and Data.V1/V2/V3 now re-export the same Value API that PlutusLedgerApi.V1 already exposed: the read accessors (valueOf, lovelaceValueOf, unsafeLovelaceValueOf, currencySymbolValueOf, assetClassValueOf), the AssetClass type and its constructors, and the helpers flattenValue, symbols, isZero, split, scale, lovelaceValue, currencySymbol, tokenName. Previously these umbrella modules exposed only the Value type and a few constructors, so reading a value from a V2/V3 or Data.* context needed a separate import from V1.Value or V1.Data.Value. There is no per-version Value type (V2 re-exports V1.Value, V3 re-exports V2.Value, and the Data.* chain mirrors that), so the accessors apply unchanged. Widening the re-exports made three explicit imports redundant under -Werror=unused-imports; removed them: import ...V1.Value (valueOf) in cardano-loans, and the whole-module ...V1.Data.Value imports in script-contexts V1.Data and V2.Data ScriptContexts. Stacked on the unsafeLovelaceValueOf branch (#7838), which adds the accessor this widening re-exports. --- .../cardano-loans/src/CardanoLoans/Validator.hs | 1 - .../PlutusBenchmark/V1/Data/ScriptContexts.hs | 1 - .../PlutusBenchmark/V2/Data/ScriptContexts.hs | 1 - ...00_yuriy.lazaryev_value_umbrella_reexports.md | 3 +++ plutus-ledger-api/src/PlutusLedgerApi/Data/V1.hs | 16 ++++++++++++++++ plutus-ledger-api/src/PlutusLedgerApi/Data/V2.hs | 16 ++++++++++++++++ plutus-ledger-api/src/PlutusLedgerApi/Data/V3.hs | 16 ++++++++++++++++ plutus-ledger-api/src/PlutusLedgerApi/V2.hs | 16 ++++++++++++++++ plutus-ledger-api/src/PlutusLedgerApi/V3.hs | 16 ++++++++++++++++ 9 files changed, 83 insertions(+), 3 deletions(-) create mode 100644 plutus-ledger-api/changelog.d/20260710_100000_yuriy.lazaryev_value_umbrella_reexports.md diff --git a/plutus-benchmark/cardano-loans/src/CardanoLoans/Validator.hs b/plutus-benchmark/cardano-loans/src/CardanoLoans/Validator.hs index caad6e887d4..cfcb93a8d7c 100644 --- a/plutus-benchmark/cardano-loans/src/CardanoLoans/Validator.hs +++ b/plutus-benchmark/cardano-loans/src/CardanoLoans/Validator.hs @@ -48,7 +48,6 @@ module CardanoLoans.Validator , loanValidatorCode ) where -import PlutusLedgerApi.V1.Value (valueOf) import PlutusLedgerApi.V3 import PlutusLedgerApi.V3.Contexts (valueSpent) import PlutusTx diff --git a/plutus-benchmark/script-contexts/src/PlutusBenchmark/V1/Data/ScriptContexts.hs b/plutus-benchmark/script-contexts/src/PlutusBenchmark/V1/Data/ScriptContexts.hs index fe7f5f4492f..3c4b7d41b33 100644 --- a/plutus-benchmark/script-contexts/src/PlutusBenchmark/V1/Data/ScriptContexts.hs +++ b/plutus-benchmark/script-contexts/src/PlutusBenchmark/V1/Data/ScriptContexts.hs @@ -9,7 +9,6 @@ module PlutusBenchmark.V1.Data.ScriptContexts where import Plinth.Plugin () import PlutusLedgerApi.Data.V1 import PlutusLedgerApi.V1.Data.Address -import PlutusLedgerApi.V1.Data.Value import PlutusTx qualified import PlutusTx.Builtins qualified as PlutusTx import PlutusTx.Data.List qualified as Data.List diff --git a/plutus-benchmark/script-contexts/src/PlutusBenchmark/V2/Data/ScriptContexts.hs b/plutus-benchmark/script-contexts/src/PlutusBenchmark/V2/Data/ScriptContexts.hs index d601e3bd5d6..d6faa1b189c 100644 --- a/plutus-benchmark/script-contexts/src/PlutusBenchmark/V2/Data/ScriptContexts.hs +++ b/plutus-benchmark/script-contexts/src/PlutusBenchmark/V2/Data/ScriptContexts.hs @@ -11,7 +11,6 @@ module PlutusBenchmark.V2.Data.ScriptContexts where import Plinth.Plugin () import PlutusLedgerApi.Data.V2 import PlutusLedgerApi.V1.Data.Address -import PlutusLedgerApi.V1.Data.Value import PlutusTx qualified import PlutusTx.BuiltinList qualified as BuiltinList import PlutusTx.Builtins qualified as PlutusTx diff --git a/plutus-ledger-api/changelog.d/20260710_100000_yuriy.lazaryev_value_umbrella_reexports.md b/plutus-ledger-api/changelog.d/20260710_100000_yuriy.lazaryev_value_umbrella_reexports.md new file mode 100644 index 00000000000..65dc6434a23 --- /dev/null +++ b/plutus-ledger-api/changelog.d/20260710_100000_yuriy.lazaryev_value_umbrella_reexports.md @@ -0,0 +1,3 @@ +### Added + +- `PlutusLedgerApi.V2`, `PlutusLedgerApi.V3`, and `PlutusLedgerApi.Data.V1`/`V2`/`V3` now re-export the same `Value` API that `PlutusLedgerApi.V1` already exposed, including the read accessors (`valueOf`, `lovelaceValueOf`, `unsafeLovelaceValueOf`, `currencySymbolValueOf`, `assetClassValueOf`), the `AssetClass` type and its constructors, and the remaining helpers (`flattenValue`, `symbols`, `isZero`, `split`, `scale`, `lovelaceValue`, `currencySymbol`, `tokenName`). Previously these modules re-exported only the `Value` type and a few constructors, so reading a `Value` from a V2/V3 or `Data.*` context required an extra import from `PlutusLedgerApi.V1.Value` or `PlutusLedgerApi.V1.Data.Value`. diff --git a/plutus-ledger-api/src/PlutusLedgerApi/Data/V1.hs b/plutus-ledger-api/src/PlutusLedgerApi/Data/V1.hs index bbf5af0f46d..98a44bbf62c 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/Data/V1.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/Data/V1.hs @@ -87,6 +87,22 @@ module PlutusLedgerApi.Data.V1 , adaSymbol , adaToken , Lovelace (..) + , AssetClass (..) + , assetClass + , assetClassValue + , assetClassValueOf + , currencySymbol + , currencySymbolValueOf + , flattenValue + , isZero + , lovelaceValue + , lovelaceValueOf + , scale + , split + , symbols + , tokenName + , unsafeLovelaceValueOf + , valueOf -- *** Time , POSIXTime (..) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/Data/V2.hs b/plutus-ledger-api/src/PlutusLedgerApi/Data/V2.hs index eda97272dc1..0166f938c80 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/Data/V2.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/Data/V2.hs @@ -89,6 +89,22 @@ module PlutusLedgerApi.Data.V2 , V1.adaSymbol , V1.adaToken , V1.Lovelace (..) + , V1.AssetClass (..) + , V1.assetClass + , V1.assetClassValue + , V1.assetClassValueOf + , V1.currencySymbol + , V1.currencySymbolValueOf + , V1.flattenValue + , V1.isZero + , V1.lovelaceValue + , V1.lovelaceValueOf + , V1.scale + , V1.split + , V1.symbols + , V1.tokenName + , V1.unsafeLovelaceValueOf + , V1.valueOf -- *** Time , V1.POSIXTime (..) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/Data/V3.hs b/plutus-ledger-api/src/PlutusLedgerApi/Data/V3.hs index 4de8c031919..110b67985e4 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/Data/V3.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/Data/V3.hs @@ -148,6 +148,22 @@ module PlutusLedgerApi.Data.V3 , V2.adaSymbol , V2.adaToken , V2.Lovelace (..) + , V2.AssetClass (..) + , V2.assetClass + , V2.assetClassValue + , V2.assetClassValueOf + , V2.currencySymbol + , V2.currencySymbolValueOf + , V2.flattenValue + , V2.isZero + , V2.lovelaceValue + , V2.lovelaceValueOf + , V2.scale + , V2.split + , V2.symbols + , V2.tokenName + , V2.unsafeLovelaceValueOf + , V2.valueOf -- *** Mint Value , MintValue.MintValue diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V2.hs b/plutus-ledger-api/src/PlutusLedgerApi/V2.hs index 48ef13248e9..71b321aee10 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V2.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V2.hs @@ -71,6 +71,22 @@ module PlutusLedgerApi.V2 , V1.adaSymbol , V1.adaToken , V1.Lovelace (..) + , V1.AssetClass (..) + , V1.assetClass + , V1.assetClassValue + , V1.assetClassValueOf + , V1.currencySymbol + , V1.currencySymbolValueOf + , V1.flattenValue + , V1.isZero + , V1.lovelaceValue + , V1.lovelaceValueOf + , V1.scale + , V1.split + , V1.symbols + , V1.tokenName + , V1.unsafeLovelaceValueOf + , V1.valueOf -- *** Time , V1.POSIXTime (..) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V3.hs b/plutus-ledger-api/src/PlutusLedgerApi/V3.hs index 99df7f4127b..01665ebd3a1 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V3.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V3.hs @@ -84,6 +84,22 @@ module PlutusLedgerApi.V3 , V2.adaSymbol , V2.adaToken , V2.Lovelace (..) + , V2.AssetClass (..) + , V2.assetClass + , V2.assetClassValue + , V2.assetClassValueOf + , V2.currencySymbol + , V2.currencySymbolValueOf + , V2.flattenValue + , V2.isZero + , V2.lovelaceValue + , V2.lovelaceValueOf + , V2.scale + , V2.split + , V2.symbols + , V2.tokenName + , V2.unsafeLovelaceValueOf + , V2.valueOf -- *** Mint Value , MintValue.MintValue From 6dd7c1789af0a0d647758132358f477a6a122483 Mon Sep 17 00:00:00 2001 From: Yuriy Lazaryev Date: Mon, 13 Jul 2026 11:51:11 +0200 Subject: [PATCH 2/4] Shorten changelog entry --- .../20260710_100000_yuriy.lazaryev_value_umbrella_reexports.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plutus-ledger-api/changelog.d/20260710_100000_yuriy.lazaryev_value_umbrella_reexports.md b/plutus-ledger-api/changelog.d/20260710_100000_yuriy.lazaryev_value_umbrella_reexports.md index 65dc6434a23..df66f6047c1 100644 --- a/plutus-ledger-api/changelog.d/20260710_100000_yuriy.lazaryev_value_umbrella_reexports.md +++ b/plutus-ledger-api/changelog.d/20260710_100000_yuriy.lazaryev_value_umbrella_reexports.md @@ -1,3 +1,3 @@ ### Added -- `PlutusLedgerApi.V2`, `PlutusLedgerApi.V3`, and `PlutusLedgerApi.Data.V1`/`V2`/`V3` now re-export the same `Value` API that `PlutusLedgerApi.V1` already exposed, including the read accessors (`valueOf`, `lovelaceValueOf`, `unsafeLovelaceValueOf`, `currencySymbolValueOf`, `assetClassValueOf`), the `AssetClass` type and its constructors, and the remaining helpers (`flattenValue`, `symbols`, `isZero`, `split`, `scale`, `lovelaceValue`, `currencySymbol`, `tokenName`). Previously these modules re-exported only the `Value` type and a few constructors, so reading a `Value` from a V2/V3 or `Data.*` context required an extra import from `PlutusLedgerApi.V1.Value` or `PlutusLedgerApi.V1.Data.Value`. +- `PlutusLedgerApi.V2`, `PlutusLedgerApi.V3`, and `PlutusLedgerApi.Data.V1`/`V2`/`V3` re-export the full `Value` API that `PlutusLedgerApi.V1` already exposed (read accessors, `AssetClass`, helpers), so reading a `Value` from these modules no longer requires importing `PlutusLedgerApi.V1.Value` or `PlutusLedgerApi.V1.Data.Value`. From 82e345f972c9c2f71f04a2c69b53dfb859f6091f Mon Sep 17 00:00:00 2001 From: Yuriy Lazaryev Date: Mon, 13 Jul 2026 12:35:48 +0200 Subject: [PATCH 3/4] Use umbrella-module re-exports instead of V1 Value imports downstream --- doc/docusaurus/static/code/AuctionMintingPolicy.hs | 9 +++++++-- doc/docusaurus/static/code/QuickStart.hs | 7 +++---- .../cardano-loans/src/CardanoLoans/Test.hs | 5 ++--- plutus-benchmark/coop/src/PlutusBenchmark/Coop/Gen.hs | 1 - .../coop/src/PlutusBenchmark/Coop/TestContext.hs | 11 +++++++++-- .../coop/src/PlutusBenchmark/Coop/Types.hs | 2 +- .../linear-vesting/src/LinearVesting/Test.hs | 2 +- .../linear-vesting/src/LinearVesting/Validator.hs | 3 +-- .../marlowe/exe/PlutusBenchmark/Marlowe/RolePayout.hs | 2 +- .../marlowe/exe/PlutusBenchmark/Marlowe/Semantics.hs | 2 +- .../Marlowe/Core/V1/Semantics/Types.hs | 4 ++-- .../src/PlutusBenchmark/V2/ScriptContexts.hs | 1 - .../src/PlutusBenchmark/V3/Data/ScriptContexts.hs | 10 ++++++++-- .../src/PlutusBenchmark/V3/ScriptContexts.hs | 6 +++++- .../testlib/PlutusLedgerApi/Test/V3/Data/MintValue.hs | 2 +- .../test-ledger-api/Spec/Data/MintValue/V3.hs | 2 +- plutus-tx-plugin/test-ledger-api/Spec/MintValue/V3.hs | 2 +- 17 files changed, 44 insertions(+), 27 deletions(-) diff --git a/doc/docusaurus/static/code/AuctionMintingPolicy.hs b/doc/docusaurus/static/code/AuctionMintingPolicy.hs index 53672a65fda..72fb055621f 100644 --- a/doc/docusaurus/static/code/AuctionMintingPolicy.hs +++ b/doc/docusaurus/static/code/AuctionMintingPolicy.hs @@ -27,8 +27,13 @@ import PlutusTx import PlutusTx.Prelude import PlutusCore.Version (plcVersion110) -import PlutusLedgerApi.V1.Value (flattenValue) -import PlutusLedgerApi.V3 (PubKeyHash, ScriptContext (..), TxInfo (..), mintValueMinted) +import PlutusLedgerApi.V3 + ( PubKeyHash + , ScriptContext (..) + , TxInfo (..) + , flattenValue + , mintValueMinted + ) import PlutusLedgerApi.V3.Contexts (ownCurrencySymbol, txSignedBy) -- BLOCK1 diff --git a/doc/docusaurus/static/code/QuickStart.hs b/doc/docusaurus/static/code/QuickStart.hs index cb260696349..a9abc2ec6d0 100644 --- a/doc/docusaurus/static/code/QuickStart.hs +++ b/doc/docusaurus/static/code/QuickStart.hs @@ -11,8 +11,7 @@ import Data.ByteString.Base16 qualified as Base16 import Data.ByteString.Short qualified as BS import PlutusLedgerApi.V1.Crypto qualified as Crypto import PlutusLedgerApi.V1.Time qualified as Time -import PlutusLedgerApi.V1.Value qualified as Value -import PlutusLedgerApi.V3 (serialiseCompiledCode) +import PlutusLedgerApi.V3 (CurrencySymbol (..), serialiseCompiledCode, tokenName) import PlutusTx.Builtins.HasOpaque (stringToBuiltinByteStringHex) main :: IO () @@ -32,13 +31,13 @@ main = ) , apCurrencySymbol = -- Replace with your desired currency symbol (minting policy hash): - Value.CurrencySymbol + CurrencySymbol ( stringToBuiltinByteStringHex "00000000000000000000000000000000000000000000000000000000" ) , apTokenName = -- Replace with your desired token name: - Value.tokenName "MY_TOKEN" + tokenName "MY_TOKEN" , apMinBid = -- Minimal bid in lovelace: 100 diff --git a/plutus-benchmark/cardano-loans/src/CardanoLoans/Test.hs b/plutus-benchmark/cardano-loans/src/CardanoLoans/Test.hs index 5c53694190c..e2914602c6d 100644 --- a/plutus-benchmark/cardano-loans/src/CardanoLoans/Test.hs +++ b/plutus-benchmark/cardano-loans/src/CardanoLoans/Test.hs @@ -13,7 +13,6 @@ import PlutusTx.Prelude import CardanoLoans.Validator (LoanDatum (..), LoanRedeemer (..), loanValidatorCode) import PlutusLedgerApi.V1.Address (pubKeyHashAddress) -import PlutusLedgerApi.V1.Value qualified as Value import PlutusLedgerApi.V2.Tx qualified as Tx import PlutusLedgerApi.V3 import PlutusTx.AssocMap qualified as Map @@ -35,14 +34,14 @@ testScriptContext = { txInfoInputs = [ TxInInfo { txInInfoOutRef = txOutRef - , txInInfoResolved = Tx.pubKeyHashTxOut (Value.lovelaceValue 1000) testBeneficiaryPKH + , txInInfoResolved = Tx.pubKeyHashTxOut (lovelaceValue 1000) testBeneficiaryPKH } ] , txInfoReferenceInputs = mempty , txInfoOutputs = [ TxOut { txOutAddress = pubKeyHashAddress testBeneficiaryPKH - , txOutValue = Value.lovelaceValue 1000 + , txOutValue = lovelaceValue 1000 , txOutDatum = NoOutputDatum , txOutReferenceScript = Nothing } diff --git a/plutus-benchmark/coop/src/PlutusBenchmark/Coop/Gen.hs b/plutus-benchmark/coop/src/PlutusBenchmark/Coop/Gen.hs index 9b63cbbf983..a5fbe7e15a5 100644 --- a/plutus-benchmark/coop/src/PlutusBenchmark/Coop/Gen.hs +++ b/plutus-benchmark/coop/src/PlutusBenchmark/Coop/Gen.hs @@ -34,7 +34,6 @@ import Data.Set (Set) import Data.Set qualified as Set import Data.Traversable (for) import PlutusLedgerApi.V1.Address (pubKeyHashAddress, scriptHashAddress) -import PlutusLedgerApi.V1.Value import PlutusLedgerApi.V2 hiding (Map) import PlutusTx.AssocMap qualified as AssocMap import PlutusTx.Builtins.HasOpaque (stringToBuiltinByteString) diff --git a/plutus-benchmark/coop/src/PlutusBenchmark/Coop/TestContext.hs b/plutus-benchmark/coop/src/PlutusBenchmark/Coop/TestContext.hs index 1e1812579e0..df84393d699 100644 --- a/plutus-benchmark/coop/src/PlutusBenchmark/Coop/TestContext.hs +++ b/plutus-benchmark/coop/src/PlutusBenchmark/Coop/TestContext.hs @@ -14,8 +14,15 @@ module PlutusBenchmark.Coop.TestContext ) where import PlutusLedgerApi.V1.Address (scriptHashAddress) -import PlutusLedgerApi.V1.Value (AssetClass, CurrencySymbol (..), TokenName (..), assetClass) -import PlutusLedgerApi.V2 (Address, ScriptContext, ScriptHash (..)) +import PlutusLedgerApi.V2 + ( Address + , AssetClass + , CurrencySymbol (..) + , ScriptContext + , ScriptHash (..) + , TokenName (..) + , assetClass + ) import Test.QuickCheck.Gen (Gen (unGen)) import Test.QuickCheck.Random (mkQCGen) diff --git a/plutus-benchmark/coop/src/PlutusBenchmark/Coop/Types.hs b/plutus-benchmark/coop/src/PlutusBenchmark/Coop/Types.hs index 852bebbd55b..061a4be33dc 100644 --- a/plutus-benchmark/coop/src/PlutusBenchmark/Coop/Types.hs +++ b/plutus-benchmark/coop/src/PlutusBenchmark/Coop/Types.hs @@ -8,9 +8,9 @@ module PlutusBenchmark.Coop.Types where import Prelude qualified as HS import Control.Lens (makeFields) -import PlutusLedgerApi.V1.Value (AssetClass) import PlutusLedgerApi.V3 ( Address + , AssetClass , CurrencySymbol , Extended , LedgerBytes diff --git a/plutus-benchmark/linear-vesting/src/LinearVesting/Test.hs b/plutus-benchmark/linear-vesting/src/LinearVesting/Test.hs index 5f2e041c5a8..3d452257d21 100644 --- a/plutus-benchmark/linear-vesting/src/LinearVesting/Test.hs +++ b/plutus-benchmark/linear-vesting/src/LinearVesting/Test.hs @@ -12,6 +12,7 @@ import PlutusTx import PlutusTx.Prelude hiding ((<>)) import LinearVesting.Validator (VestingDatum (..), VestingRedeemer (..), validatorCode) +import PlutusLedgerApi.Data.V3 (assetClass) import PlutusLedgerApi.Data.V3 qualified as PV3D import PlutusLedgerApi.Test.ScriptContextBuilder.Builder ( buildScriptContext @@ -22,7 +23,6 @@ import PlutusLedgerApi.Test.ScriptContextBuilder.Builder , withSpendingScript , withValidRange ) -import PlutusLedgerApi.V1.Data.Value (assetClass) import PlutusLedgerApi.V3 qualified as PV3 import Prelude ((<>)) diff --git a/plutus-benchmark/linear-vesting/src/LinearVesting/Validator.hs b/plutus-benchmark/linear-vesting/src/LinearVesting/Validator.hs index 0e56984c700..6ed4d352947 100644 --- a/plutus-benchmark/linear-vesting/src/LinearVesting/Validator.hs +++ b/plutus-benchmark/linear-vesting/src/LinearVesting/Validator.hs @@ -28,8 +28,7 @@ module LinearVesting.Validator ) where -import PlutusLedgerApi.Data.V3 (Address) -import PlutusLedgerApi.V1.Data.Value (AssetClass) +import PlutusLedgerApi.Data.V3 (Address, AssetClass) import PlutusTx (CompiledCode, compile, makeIsDataIndexed, makeLift) import PlutusTx.Bool (Bool (..), not, otherwise) import PlutusTx.Builtins.HasOpaque () diff --git a/plutus-benchmark/marlowe/exe/PlutusBenchmark/Marlowe/RolePayout.hs b/plutus-benchmark/marlowe/exe/PlutusBenchmark/Marlowe/RolePayout.hs index e4351344555..dc16fed7832 100644 --- a/plutus-benchmark/marlowe/exe/PlutusBenchmark/Marlowe/RolePayout.hs +++ b/plutus-benchmark/marlowe/exe/PlutusBenchmark/Marlowe/RolePayout.hs @@ -35,13 +35,13 @@ import PlutusLedgerApi.V2 , ScriptHash , ScriptPurpose (Spending) , SerialisedScript + , TokenName (TokenName) , TxInfo (..) , TxOutRef (TxOutRef) , UpperBound (UpperBound) , singleton ) -import PlutusLedgerApi.V1.Value (TokenName (TokenName)) import PlutusTx.AssocMap qualified as AM (empty) -- | Write a flat UPLC file for a benchmark. diff --git a/plutus-benchmark/marlowe/exe/PlutusBenchmark/Marlowe/Semantics.hs b/plutus-benchmark/marlowe/exe/PlutusBenchmark/Marlowe/Semantics.hs index 33bf8936605..1e127091051 100644 --- a/plutus-benchmark/marlowe/exe/PlutusBenchmark/Marlowe/Semantics.hs +++ b/plutus-benchmark/marlowe/exe/PlutusBenchmark/Marlowe/Semantics.hs @@ -23,7 +23,6 @@ import PlutusBenchmark.Marlowe.Util , makeOutput , makeRedeemerMap ) -import PlutusLedgerApi.V1.Value (TokenName (TokenName)) import PlutusLedgerApi.V2 ( Credential (PubKeyCredential, ScriptCredential) , CurrencySymbol (..) @@ -35,6 +34,7 @@ import PlutusLedgerApi.V2 , ScriptHash , ScriptPurpose (Spending) , SerialisedScript + , TokenName (TokenName) , TxInfo ( TxInfo , txInfoDCert diff --git a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Core/V1/Semantics/Types.hs b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Core/V1/Semantics/Types.hs index a7c0ff7e10c..65a7536ad86 100644 --- a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Core/V1/Semantics/Types.hs +++ b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Core/V1/Semantics/Types.hs @@ -25,7 +25,6 @@ import Control.Newtype.Generics (Newtype) import Data.Data (Data) import GHC.Generics (Generic) import PlutusBenchmark.Marlowe.Core.V1.Semantics.Types.Address (Network) -import PlutusLedgerApi.V1.Value qualified as Val import PlutusLedgerApi.V2 (CurrencySymbol, POSIXTime (..), TokenName) import PlutusLedgerApi.V2 qualified as Ledger ( Address (..) @@ -33,6 +32,7 @@ import PlutusLedgerApi.V2 qualified as Ledger , PubKeyHash (..) , ScriptHash (..) , StakingCredential (..) + , Value ) import PlutusTx.AsData (asData) import PlutusTx.AssocMap (Map) @@ -77,7 +77,7 @@ type AccountId = Party type Timeout = POSIXTime -- | A multi-asset value. -type Money = Val.Value +type Money = Ledger.Value -- | The name of a choice in a contract. type ChoiceName = BuiltinByteString diff --git a/plutus-benchmark/script-contexts/src/PlutusBenchmark/V2/ScriptContexts.hs b/plutus-benchmark/script-contexts/src/PlutusBenchmark/V2/ScriptContexts.hs index c1f210bb70a..854c36fef4c 100644 --- a/plutus-benchmark/script-contexts/src/PlutusBenchmark/V2/ScriptContexts.hs +++ b/plutus-benchmark/script-contexts/src/PlutusBenchmark/V2/ScriptContexts.hs @@ -9,7 +9,6 @@ module PlutusBenchmark.V2.ScriptContexts where import Plinth.Plugin () import PlutusLedgerApi.V1.Address -import PlutusLedgerApi.V1.Value import PlutusLedgerApi.V2 import PlutusTx qualified import PlutusTx.AssocMap qualified as Map diff --git a/plutus-benchmark/script-contexts/src/PlutusBenchmark/V3/Data/ScriptContexts.hs b/plutus-benchmark/script-contexts/src/PlutusBenchmark/V3/Data/ScriptContexts.hs index 3ae80739a16..3e270dc9034 100644 --- a/plutus-benchmark/script-contexts/src/PlutusBenchmark/V3/Data/ScriptContexts.hs +++ b/plutus-benchmark/script-contexts/src/PlutusBenchmark/V3/Data/ScriptContexts.hs @@ -12,13 +12,20 @@ module PlutusBenchmark.V3.Data.ScriptContexts where import Plinth.Plugin () import PlutusLedgerApi.Data.V1 qualified as PlutusTx import PlutusLedgerApi.Data.V3 - ( PubKeyHash (..) + ( CurrencySymbol (..) + , PubKeyHash (..) , Redeemer (..) , ScriptContext + , TokenName (..) , TxId (..) , TxInfo , TxOut + , Value (..) + , adaSymbol + , adaToken , always + , assetClass + , assetClassValue , emptyMintValue , mintValueMinted , txInInfoOutRef @@ -55,7 +62,6 @@ import PlutusLedgerApi.Data.V3 , pattern VotingScript ) import PlutusLedgerApi.V1.Data.Address -import PlutusLedgerApi.V1.Data.Value import PlutusLedgerApi.V3.Data.MintValue (MintValue (..)) import PlutusTx qualified import PlutusTx.Builtins qualified as PlutusTx diff --git a/plutus-benchmark/script-contexts/src/PlutusBenchmark/V3/ScriptContexts.hs b/plutus-benchmark/script-contexts/src/PlutusBenchmark/V3/ScriptContexts.hs index 9788f4c44ae..0d6a23c7543 100644 --- a/plutus-benchmark/script-contexts/src/PlutusBenchmark/V3/ScriptContexts.hs +++ b/plutus-benchmark/script-contexts/src/PlutusBenchmark/V3/ScriptContexts.hs @@ -8,7 +8,6 @@ module PlutusBenchmark.V3.ScriptContexts where import Plinth.Plugin () import PlutusLedgerApi.V1.Address -import PlutusLedgerApi.V1.Value import PlutusLedgerApi.V3 ( OutputDatum (NoOutputDatum) , PubKeyHash (..) @@ -19,7 +18,12 @@ import PlutusLedgerApi.V3 , TxInfo (..) , TxOut (..) , TxOutRef (..) + , Value + , adaSymbol + , adaToken , always + , assetClass + , assetClassValue , emptyMintValue ) import PlutusTx qualified diff --git a/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V3/Data/MintValue.hs b/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V3/Data/MintValue.hs index b644f052fae..79c31d25474 100644 --- a/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V3/Data/MintValue.hs +++ b/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V3/Data/MintValue.hs @@ -8,8 +8,8 @@ module PlutusLedgerApi.Test.V3.Data.MintValue where import Data.Coerce (coerce) import PlutusCore.Generators.QuickCheck.Split (multiSplit0) +import PlutusLedgerApi.Data.V3 (CurrencySymbol (..), TokenName (..)) import PlutusLedgerApi.Test.V1.Data.Value (NoArbitrary (..), uniqueNames) -import PlutusLedgerApi.V1.Data.Value (CurrencySymbol (..), TokenName (..)) import PlutusLedgerApi.V3.Data.MintValue (MintValue (..)) import PlutusTx.Data.AssocMap qualified as Map import PlutusTx.List qualified as List diff --git a/plutus-tx-plugin/test-ledger-api/Spec/Data/MintValue/V3.hs b/plutus-tx-plugin/test-ledger-api/Spec/Data/MintValue/V3.hs index 02b0c8f9cf7..3be8bc9f280 100644 --- a/plutus-tx-plugin/test-ledger-api/Spec/Data/MintValue/V3.hs +++ b/plutus-tx-plugin/test-ledger-api/Spec/Data/MintValue/V3.hs @@ -18,9 +18,9 @@ module Spec.Data.MintValue.V3 where import PlutusTx.Prelude import Data.Coerce (coerce) +import PlutusLedgerApi.Data.V3 (AssetClass (..), Value (..), flattenValue) import PlutusLedgerApi.Test.V1.Data.Value () import PlutusLedgerApi.Test.V3.Data.MintValue () -import PlutusLedgerApi.V1.Data.Value (AssetClass (..), Value (..), flattenValue) import PlutusLedgerApi.V3.Data.MintValue (MintValue (..), mintValueBurned, mintValueMinted) import PlutusTx.Code (CompiledCode, unsafeApplyCode) import PlutusTx.Data.AssocMap qualified as Map diff --git a/plutus-tx-plugin/test-ledger-api/Spec/MintValue/V3.hs b/plutus-tx-plugin/test-ledger-api/Spec/MintValue/V3.hs index 9a9e427019d..e88ef856316 100644 --- a/plutus-tx-plugin/test-ledger-api/Spec/MintValue/V3.hs +++ b/plutus-tx-plugin/test-ledger-api/Spec/MintValue/V3.hs @@ -20,7 +20,7 @@ import PlutusTx.Prelude import Data.Coerce (coerce) import PlutusLedgerApi.Test.V1.Value () import PlutusLedgerApi.Test.V3.MintValue () -import PlutusLedgerApi.V1.Value (AssetClass (..), Value (..), flattenValue) +import PlutusLedgerApi.V3 (AssetClass (..), Value (..), flattenValue) import PlutusLedgerApi.V3.MintValue (MintValue (..), mintValueBurned, mintValueMinted) import PlutusTx.AssocMap qualified as Map import PlutusTx.Code (CompiledCode, unsafeApplyCode) From 57a983fdd8a76df1a84a9552b42f018d91d57693 Mon Sep 17 00:00:00 2001 From: Yuriy Lazaryev Date: Mon, 13 Jul 2026 14:19:43 +0200 Subject: [PATCH 4/4] Re-export geq/gt/leq/lt/withCurrencySymbol from Value umbrellas; drop remaining V1.Value imports --- .../coop/src/PlutusBenchmark/Coop/Scripts.hs | 16 +++++++--------- .../coop/src/PlutusBenchmark/Coop/Utils.hs | 5 ++++- .../Marlowe/Core/V1/Semantics/Types.hs | 2 +- .../Marlowe/Scripts/Data/RolePayout.hs | 2 +- .../Marlowe/Scripts/Data/Semantics.hs | 2 +- .../Marlowe/Scripts/RolePayout.hs | 2 +- .../PlutusBenchmark/Marlowe/Scripts/Semantics.hs | 2 +- ...00_yuriy.lazaryev_value_umbrella_reexports.md | 2 +- plutus-ledger-api/src/PlutusLedgerApi/Data/V1.hs | 5 +++++ plutus-ledger-api/src/PlutusLedgerApi/Data/V2.hs | 5 +++++ plutus-ledger-api/src/PlutusLedgerApi/Data/V3.hs | 5 +++++ plutus-ledger-api/src/PlutusLedgerApi/V1.hs | 5 +++++ plutus-ledger-api/src/PlutusLedgerApi/V2.hs | 5 +++++ plutus-ledger-api/src/PlutusLedgerApi/V3.hs | 5 +++++ 14 files changed, 47 insertions(+), 16 deletions(-) diff --git a/plutus-benchmark/coop/src/PlutusBenchmark/Coop/Scripts.hs b/plutus-benchmark/coop/src/PlutusBenchmark/Coop/Scripts.hs index e282e0aafec..0a6785166f2 100644 --- a/plutus-benchmark/coop/src/PlutusBenchmark/Coop/Scripts.hs +++ b/plutus-benchmark/coop/src/PlutusBenchmark/Coop/Scripts.hs @@ -15,16 +15,9 @@ import PlutusTx.Prelude import Prelude () import PlutusLedgerApi.V1.Interval (contains) -import PlutusLedgerApi.V1.Value - ( AssetClass (AssetClass) - , isZero - , unAssetClass - , valueOf - , withCurrencySymbol - ) -import PlutusLedgerApi.V1.Value qualified as Value import PlutusLedgerApi.V2 - ( Datum + ( AssetClass (AssetClass) + , Datum , Extended (PosInf) , Interval (Interval, ivTo) , LedgerBytes (getLedgerBytes) @@ -48,7 +41,12 @@ import PlutusLedgerApi.V2 , TxOutRef (TxOutRef, txOutRefId, txOutRefIdx) , UpperBound (UpperBound) , Value (Value, getValue) + , isZero + , unAssetClass + , valueOf + , withCurrencySymbol ) +import PlutusLedgerApi.V2 qualified as Value import PlutusTx.AssocMap qualified as AssocMap import PlutusTx.Builtins.Internal qualified as BI import PlutusTx.List (elem, find, foldl, null) diff --git a/plutus-benchmark/coop/src/PlutusBenchmark/Coop/Utils.hs b/plutus-benchmark/coop/src/PlutusBenchmark/Coop/Utils.hs index 1b57796fed5..4491cfb6fb5 100644 --- a/plutus-benchmark/coop/src/PlutusBenchmark/Coop/Utils.hs +++ b/plutus-benchmark/coop/src/PlutusBenchmark/Coop/Utils.hs @@ -7,7 +7,6 @@ module PlutusBenchmark.Coop.Utils where import PlutusTx.Prelude import Prelude () -import PlutusLedgerApi.V1.Value (Value (Value), flattenValue, valueOf, withCurrencySymbol) import PlutusLedgerApi.V2 ( CurrencySymbol , Datum (Datum) @@ -20,6 +19,10 @@ import PlutusLedgerApi.V2 , TxInfo (TxInfo, txInfoInputs, txInfoMint) , TxOut (TxOut, txOutValue) , TxOutRef (TxOutRef) + , Value (Value) + , flattenValue + , valueOf + , withCurrencySymbol ) import PlutusTx.AssocMap (Map, lookup) import PlutusTx.AssocMap qualified as AssocMap diff --git a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Core/V1/Semantics/Types.hs b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Core/V1/Semantics/Types.hs index 65a7536ad86..ce9df9addf2 100644 --- a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Core/V1/Semantics/Types.hs +++ b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Core/V1/Semantics/Types.hs @@ -25,7 +25,7 @@ import Control.Newtype.Generics (Newtype) import Data.Data (Data) import GHC.Generics (Generic) import PlutusBenchmark.Marlowe.Core.V1.Semantics.Types.Address (Network) -import PlutusLedgerApi.V2 (CurrencySymbol, POSIXTime (..), TokenName) +import PlutusLedgerApi.V2 (CurrencySymbol, POSIXTime (..), TokenName (..)) import PlutusLedgerApi.V2 qualified as Ledger ( Address (..) , Credential (..) diff --git a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Data/RolePayout.hs b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Data/RolePayout.hs index ed055361fb8..334cc6964ea 100644 --- a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Data/RolePayout.hs +++ b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Data/RolePayout.hs @@ -50,7 +50,7 @@ import PlutusTx.Prelude as PlutusTxPrelude import Cardano.Crypto.Hash qualified as Hash import Data.ByteString qualified as BS import Data.ByteString.Short qualified as SBS -import PlutusLedgerApi.V1.Value qualified as Val +import PlutusLedgerApi.V2 qualified as Val import PlutusTx qualified -- | Tag for the Marlowe payout validator. diff --git a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Data/Semantics.hs b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Data/Semantics.hs index 176d942a6d2..d76a911f10d 100644 --- a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Data/Semantics.hs +++ b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Data/Semantics.hs @@ -107,8 +107,8 @@ import Data.ByteString qualified as BS import Data.ByteString.Short qualified as SBS import PlutusCore.Version (plcVersion100) import PlutusLedgerApi.V1.Address qualified as Address (scriptHashAddress) -import PlutusLedgerApi.V1.Value qualified as Val import PlutusLedgerApi.V2 qualified as Ledger (Address) +import PlutusLedgerApi.V2 qualified as Val import PlutusTx qualified import PlutusTx.AssocMap qualified as AssocMap import PlutusTx.Builtins qualified as B diff --git a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/RolePayout.hs b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/RolePayout.hs index 3a3dc269e42..1a796b95979 100644 --- a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/RolePayout.hs +++ b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/RolePayout.hs @@ -19,7 +19,6 @@ import Cardano.Crypto.Hash qualified as Hash import Data.ByteString qualified as BS import Data.ByteString.Short qualified as SBS import Plinth.Plugin () -import PlutusLedgerApi.V1.Value qualified as Val import PlutusLedgerApi.V2 ( CurrencySymbol , ScriptContext (scriptContextTxInfo) @@ -28,6 +27,7 @@ import PlutusLedgerApi.V2 , TokenName , serialiseCompiledCode ) +import PlutusLedgerApi.V2 qualified as Val import PlutusLedgerApi.V2.Contexts (valueSpent) import PlutusTx (CompiledCode, unsafeFromBuiltinData) import PlutusTx qualified diff --git a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Semantics.hs b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Semantics.hs index fec2665993f..8354b98ceda 100644 --- a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Semantics.hs +++ b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Semantics.hs @@ -99,8 +99,8 @@ import Data.ByteString qualified as BS import Data.ByteString.Short qualified as SBS import PlutusCore.Version (plcVersion100) import PlutusLedgerApi.V1.Address qualified as Address (scriptHashAddress) -import PlutusLedgerApi.V1.Value qualified as Val import PlutusLedgerApi.V2 qualified as Ledger (Address (Address)) +import PlutusLedgerApi.V2 qualified as Val import PlutusTx qualified import PlutusTx.AssocMap qualified as AssocMap import PlutusTx.Trace (traceError, traceIfFalse) diff --git a/plutus-ledger-api/changelog.d/20260710_100000_yuriy.lazaryev_value_umbrella_reexports.md b/plutus-ledger-api/changelog.d/20260710_100000_yuriy.lazaryev_value_umbrella_reexports.md index df66f6047c1..e6206e2b834 100644 --- a/plutus-ledger-api/changelog.d/20260710_100000_yuriy.lazaryev_value_umbrella_reexports.md +++ b/plutus-ledger-api/changelog.d/20260710_100000_yuriy.lazaryev_value_umbrella_reexports.md @@ -1,3 +1,3 @@ ### Added -- `PlutusLedgerApi.V2`, `PlutusLedgerApi.V3`, and `PlutusLedgerApi.Data.V1`/`V2`/`V3` re-export the full `Value` API that `PlutusLedgerApi.V1` already exposed (read accessors, `AssetClass`, helpers), so reading a `Value` from these modules no longer requires importing `PlutusLedgerApi.V1.Value` or `PlutusLedgerApi.V1.Data.Value`. +- `PlutusLedgerApi.V2`, `PlutusLedgerApi.V3`, and `PlutusLedgerApi.Data.V1`/`V2`/`V3` re-export the full `Value` API that `PlutusLedgerApi.V1` already exposed (read accessors, `AssetClass`, helpers), and all of these umbrellas (including `V1`) now also expose `geq`, `gt`, `leq`, `lt`, and `withCurrencySymbol`. Reading or comparing a `Value` from these modules no longer requires importing `PlutusLedgerApi.V1.Value` or `PlutusLedgerApi.V1.Data.Value`. diff --git a/plutus-ledger-api/src/PlutusLedgerApi/Data/V1.hs b/plutus-ledger-api/src/PlutusLedgerApi/Data/V1.hs index 98a44bbf62c..5addf1383ff 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/Data/V1.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/Data/V1.hs @@ -94,15 +94,20 @@ module PlutusLedgerApi.Data.V1 , currencySymbol , currencySymbolValueOf , flattenValue + , geq + , gt , isZero + , leq , lovelaceValue , lovelaceValueOf + , lt , scale , split , symbols , tokenName , unsafeLovelaceValueOf , valueOf + , withCurrencySymbol -- *** Time , POSIXTime (..) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/Data/V2.hs b/plutus-ledger-api/src/PlutusLedgerApi/Data/V2.hs index 0166f938c80..a8407348460 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/Data/V2.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/Data/V2.hs @@ -96,15 +96,20 @@ module PlutusLedgerApi.Data.V2 , V1.currencySymbol , V1.currencySymbolValueOf , V1.flattenValue + , V1.geq + , V1.gt , V1.isZero + , V1.leq , V1.lovelaceValue , V1.lovelaceValueOf + , V1.lt , V1.scale , V1.split , V1.symbols , V1.tokenName , V1.unsafeLovelaceValueOf , V1.valueOf + , V1.withCurrencySymbol -- *** Time , V1.POSIXTime (..) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/Data/V3.hs b/plutus-ledger-api/src/PlutusLedgerApi/Data/V3.hs index 110b67985e4..b58d57b1eab 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/Data/V3.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/Data/V3.hs @@ -155,15 +155,20 @@ module PlutusLedgerApi.Data.V3 , V2.currencySymbol , V2.currencySymbolValueOf , V2.flattenValue + , V2.geq + , V2.gt , V2.isZero + , V2.leq , V2.lovelaceValue , V2.lovelaceValueOf + , V2.lt , V2.scale , V2.split , V2.symbols , V2.tokenName , V2.unsafeLovelaceValueOf , V2.valueOf + , V2.withCurrencySymbol -- *** Mint Value , MintValue.MintValue diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1.hs index 1ea60d88715..50726518053 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1.hs @@ -105,15 +105,20 @@ module PlutusLedgerApi.V1 , Value.Lovelace (..) , Value.currencySymbolValueOf , Value.flattenValue + , Value.geq + , Value.gt , Value.isZero + , Value.leq , Value.lovelaceValue , Value.lovelaceValueOf + , Value.lt , Value.scale , Value.singleton , Value.split , Value.unionWith , Value.unsafeLovelaceValueOf , Value.valueOf + , Value.withCurrencySymbol -- ** Currency symbols , Value.CurrencySymbol (..) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V2.hs b/plutus-ledger-api/src/PlutusLedgerApi/V2.hs index 71b321aee10..b9a069af076 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V2.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V2.hs @@ -78,15 +78,20 @@ module PlutusLedgerApi.V2 , V1.currencySymbol , V1.currencySymbolValueOf , V1.flattenValue + , V1.geq + , V1.gt , V1.isZero + , V1.leq , V1.lovelaceValue , V1.lovelaceValueOf + , V1.lt , V1.scale , V1.split , V1.symbols , V1.tokenName , V1.unsafeLovelaceValueOf , V1.valueOf + , V1.withCurrencySymbol -- *** Time , V1.POSIXTime (..) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V3.hs b/plutus-ledger-api/src/PlutusLedgerApi/V3.hs index 01665ebd3a1..e9f3db3ebbe 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V3.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V3.hs @@ -91,15 +91,20 @@ module PlutusLedgerApi.V3 , V2.currencySymbol , V2.currencySymbolValueOf , V2.flattenValue + , V2.geq + , V2.gt , V2.isZero + , V2.leq , V2.lovelaceValue , V2.lovelaceValueOf + , V2.lt , V2.scale , V2.split , V2.symbols , V2.tokenName , V2.unsafeLovelaceValueOf , V2.valueOf + , V2.withCurrencySymbol -- *** Mint Value , MintValue.MintValue