Skip to content

Commit 0ec49f3

Browse files
committed
WIP: fixing the tests
1 parent 151527f commit 0ec49f3

File tree

122 files changed

+2041
-3051
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+2041
-3051
lines changed

CHANGELOG.md

+16
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,22 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
9999
- `ToData`/`FromData` Instances for `purescript-noble-secp256k1` types (PS does not allow orphans)
100100
- `ToMetadata`/`FromMetadata` instance for `BigInt`: it was partial and unsafe
101101
- `Cardano.Types.BigNum.toInt'` method
102+
- `Contract.Address`:
103+
- `scriptHashAddress` - use `Contract.Address.mkAddress`
104+
- `payPubKeyHashBaseAddress` - use `Contract.Address.mkAddress`
105+
- `payPubKeyHashEnterpriseAddress` - use `Contract.Address.mkAddress`
106+
- `Contract.Value`:
107+
- `flattenNonAdaAssets` - use `Cardano.Types.Value.flatten`.
108+
- `Contract.PlutusData`:
109+
- `Datum`: removed, use `Cardano.Types.PlutusData`
110+
- `unitDatum`
111+
- `Contract.TextEnvelope`:
112+
- `plutusScriptV1FromEnvelope` - use `plutusScriptFromEnvelope`
113+
- `Contract.Hashing`
114+
- `Contract.Transaction`:
115+
- `TransactionOutputWithRefScript` - use `Cardano.Types.TransactionOutput`. It comes with refscript included.
116+
- `getTxFinalFee`
117+
102118

103119

104120

examples/AdditionalUtxos.purs

+9-6
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ module Ctl.Examples.AdditionalUtxos
55

66
import Contract.Prelude
77

8-
import Contract.Address (scriptHashAddress)
8+
import Cardano.Types.BigNum as BigNum
9+
import Cardano.Types.Credential (Credential(..))
10+
import Cardano.Types.PlutusScript as PlutusScript
11+
import Contract.Address (mkAddress)
912
import Contract.BalanceTxConstraints (BalanceTxConstraintsBuilder)
1013
import Contract.BalanceTxConstraints (mustUseAdditionalUtxos) as BalancerConstraints
1114
import Contract.Config (ContractParams, testnetNamiConfig)
@@ -75,10 +78,9 @@ payToValidator vhash = do
7578
scriptRef <- liftEffect (NativeScriptRef <$> randomSampleOne arbitrary)
7679
let
7780
value :: Value
78-
value = Value.lovelaceValueOf $ BigInt.fromInt 2_000_000
81+
value = Value.lovelaceValueOf $ BigNum.fromInt 2_000_000
7982

80-
datum :: Datum
81-
datum = wrap $ Integer $ BigInt.fromInt 42
83+
datum = Integer $ BigInt.fromInt 42
8284

8385
constraints :: TxConstraints
8486
constraints =
@@ -95,12 +97,13 @@ payToValidator vhash = do
9597

9698
spendFromValidator :: Validator -> UtxoMap -> Datum -> Contract Unit
9799
spendFromValidator validator additionalUtxos datum = do
100+
addr <- mkAddress (wrap $ ScriptHashCredential $ PlutusScript.hash validator)
101+
Nothing
98102
let
99103
scriptUtxos :: UtxoMap
100104
scriptUtxos =
101105
additionalUtxos # Map.filter \out ->
102-
(unwrap (unwrap out).output).address
103-
== scriptHashAddress (validatorHash validator) Nothing
106+
(unwrap out).address == addr
104107

105108
scriptOrefs :: Array TransactionInput
106109
scriptOrefs = Array.fromFoldable $ Map.keys scriptUtxos

examples/BalanceTxConstraints.purs

+20-15
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ module Ctl.Examples.BalanceTxConstraints
55

66
import Contract.Prelude
77

8+
import Cardano.Types (Asset(Asset), BigNum)
9+
import Cardano.Types.BigNum as BigNum
10+
import Cardano.Types.Int as Int
11+
import Cardano.Types.Mint as Mint
812
import Contract.Address (Address)
913
import Contract.BalanceTxConstraints
1014
( BalanceTxConstraintsBuilder
@@ -38,22 +42,22 @@ import Contract.TxConstraints as Constraints
3842
import Contract.UnbalancedTx (mkUnbalancedTx)
3943
import Contract.Utxos (utxosAt)
4044
import Contract.Value (CurrencySymbol, TokenName, Value)
41-
import Contract.Value (singleton, valueOf) as Value
45+
import Contract.Value (valueOf) as Value
4246
import Contract.Wallet
4347
( KeyWallet
44-
, getWalletAddressesWithNetworkTag
48+
, getWalletAddresses
4549
, getWalletCollateral
4650
, ownPaymentPubKeyHashes
4751
, withKeyWallet
4852
)
4953
import Control.Monad.Trans.Class (lift)
5054
import Ctl.Examples.AlwaysMints (alwaysMintsPolicy)
51-
import Ctl.Examples.Helpers (mkCurrencySymbol, mkTokenName) as Helpers
55+
import Ctl.Examples.Helpers (mkAssetName, mkCurrencySymbol) as Helpers
5256
import Data.Array (head)
5357
import Data.Array (sort) as Array
5458
import Data.Map (fromFoldable, keys, member) as Map
5559
import Data.Set (findMin) as Set
56-
import JS.BigInt (BigInt, fromInt)
60+
import JS.BigInt as BigInt
5761

5862
newtype ContractParams = ContractParams
5963
{ aliceKeyWallet :: KeyWallet
@@ -87,13 +91,13 @@ assertChangeOutputsPartitionedCorrectly = assertionToCheck
8791
let
8892
values :: Array Value
8993
values =
90-
changeOutputs <#> _.amount <<< unwrap <<< _.output <<< unwrap
94+
changeOutputs <#> _.amount <<< unwrap
9195

92-
tokenQuantities :: Array BigInt
96+
tokenQuantities :: Array BigNum
9397
tokenQuantities =
94-
Array.sort $ values <#> \v -> Value.valueOf v cs tn
98+
Array.sort $ values <#> \v -> Value.valueOf (Asset cs tn) v
9599

96-
tokenQuantities == map fromInt [ 3, 4, 4 ]
100+
tokenQuantities == map BigNum.fromInt [ 3, 4, 4 ]
97101

98102
-- | Checks that the utxo with the specified output reference
99103
-- | (`nonSpendableOref`) is not consumed during transaction balancing.
@@ -124,7 +128,7 @@ contract (ContractParams p) = do
124128
aliceAddress <-
125129
liftedM "Failed to get Alice's address"
126130
$ head
127-
<$> (withKeyWallet p.aliceKeyWallet getWalletAddressesWithNetworkTag)
131+
<$> (withKeyWallet p.aliceKeyWallet getWalletAddresses)
128132

129133
alicePubKeyHash <-
130134
liftedM "Failed to get own PKH" $ head <$> ownPaymentPubKeyHashes
@@ -137,7 +141,7 @@ contract (ContractParams p) = do
137141
bobAddress <-
138142
liftedM "Failed to get Bob's address"
139143
$ head
140-
<$> (withKeyWallet p.bobKeyWallet getWalletAddressesWithNetworkTag)
144+
<$> (withKeyWallet p.bobKeyWallet getWalletAddresses)
141145

142146
bobsCollateralArray <- withKeyWallet p.bobKeyWallet do
143147
fold <$> getWalletCollateral
@@ -151,19 +155,20 @@ contract (ContractParams p) = do
151155
(Set.findMin <<< Map.keys <$> utxosAt aliceAddress)
152156

153157
mp /\ cs <- Helpers.mkCurrencySymbol alwaysMintsPolicy
154-
tn <- Helpers.mkTokenName "The Token"
158+
tn <- Helpers.mkAssetName "The Token"
155159
let
156160
constraints :: Constraints.TxConstraints
157161
constraints =
158-
Constraints.mustMintValue (Value.singleton cs tn $ fromInt 11)
162+
Constraints.mustMintValue (Mint.singleton cs tn $ Int.fromInt 11)
159163
<> foldMap Constraints.mustBeSignedBy [ alicePubKeyHash, bobPubKeyHash ]
160164

161165
lookups :: Lookups.ScriptLookups
162166
lookups = Lookups.mintingPolicy mp
163167

164168
balanceTxConstraints :: BalanceTxConstraints.BalanceTxConstraintsBuilder
165169
balanceTxConstraints =
166-
BalanceTxConstraints.mustGenChangeOutsWithMaxTokenQuantity (fromInt 4)
170+
BalanceTxConstraints.mustGenChangeOutsWithMaxTokenQuantity
171+
(BigInt.fromInt 4)
167172
<> BalanceTxConstraints.mustUseUtxosAtAddress bobAddress
168173
<> BalanceTxConstraints.mustSendChangeToAddress bobAddress
169174
<> BalanceTxConstraints.mustNotSpendUtxoWithOutRef nonSpendableOref
@@ -184,11 +189,11 @@ contract (ContractParams p) = do
184189
awaitTxConfirmed txHash
185190
logInfo' "Tx submitted successfully!"
186191

187-
let changeAddress = (unwrap bobAddress).address
192+
let changeAddress = bobAddress
188193
pure
189194
{ txHash
190195
, changeAddress
191-
, nonSpendableAddress: (unwrap aliceAddress).address
196+
, nonSpendableAddress: aliceAddress
192197
, mintedToken: cs /\ tn
193198
, nonSpendableOref
194199
}

examples/ChangeGeneration.purs

+6-7
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ module Ctl.Examples.ChangeGeneration (checkChangeOutputsDistribution) where
22

33
import Prelude
44

5+
import Cardano.Types.BigNum as BigNum
56
import Contract.BalanceTxConstraints (mustSendChangeWithDatum)
67
import Contract.Monad (Contract)
78
import Contract.PlutusData
8-
( Datum(Datum)
9-
, OutputDatum(OutputDatum)
9+
( OutputDatum(OutputDatum)
1010
, PlutusData(Integer)
1111
, unitDatum
1212
)
@@ -27,9 +27,8 @@ import Contract.Value as Value
2727
import Contract.Wallet (ownPaymentPubKeyHashes, ownStakePubKeyHashes)
2828
import Ctl.Examples.AlwaysSucceeds as AlwaysSucceeds
2929
import Data.Array (fold, length, replicate, take, zip)
30-
import Data.Lens (to, (^.))
30+
import Data.Lens ((^.))
3131
import Data.Maybe (Maybe(Just, Nothing))
32-
import Data.Newtype (unwrap)
3332
import Data.Tuple (Tuple(Tuple))
3433
import JS.BigInt (fromInt) as BigInt
3534
import Test.Spec.Assertions (shouldEqual)
@@ -45,7 +44,7 @@ checkChangeOutputsDistribution outputsToScript outputsToSelf expectedOutputs =
4544
validator <- AlwaysSucceeds.alwaysSucceedsScript
4645
let
4746
vhash = validatorHash validator
48-
value = Value.lovelaceValueOf $ BigInt.fromInt 1000001
47+
value = Value.lovelaceValueOf $ BigNum.fromInt 1000001
4948

5049
constraintsToSelf :: TxConstraints
5150
constraintsToSelf = fold <<< take outputsToSelf <<< fold
@@ -67,11 +66,11 @@ checkChangeOutputsDistribution outputsToScript outputsToSelf expectedOutputs =
6766
unbalancedTx <- mkUnbalancedTx lookups constraints
6867
balancedTx <- balanceTxWithConstraints unbalancedTx
6968
-- just to check that attaching datums works
70-
( mustSendChangeWithDatum $ OutputDatum $ Datum $ Integer $ BigInt.fromInt
69+
( mustSendChangeWithDatum $ OutputDatum $ Integer $ BigInt.fromInt
7170
1000
7271
)
7372
balancedSignedTx <- signTransaction balancedTx
74-
let outputs = balancedTx ^. to unwrap <<< _body <<< _outputs
73+
let outputs = balancedTx ^. _body <<< _outputs
7574
length outputs `shouldEqual` expectedOutputs
7675
txHash <- submit balancedSignedTx
7776
awaitTxConfirmed txHash

examples/Cip30.purs

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import Cardano.Wallet.Cip30.TypeSafe as Cip30
1818
import Contract.Config (ContractParams, testnetNamiConfig)
1919
import Contract.Log (logInfo')
2020
import Contract.Monad (Contract, launchAff_, liftContractAffM, runContract)
21-
import Contract.Prim.ByteArray (rawBytesFromAscii)
21+
import Contract.Prim.ByteArray (byteArrayFromAscii)
2222
import Contract.Wallet
2323
( getChangeAddress
2424
, getRewardAddresses
@@ -62,7 +62,7 @@ contract = do
6262
_ <- performAndLog "getUnusedAddresses" getUnusedAddresses
6363
dataBytes <- liftContractAffM
6464
("can't convert : " <> msg <> " to RawBytes")
65-
(pure mDataBytes)
65+
(pure $ wrap <$> mDataBytes)
6666
mRewardAddress <- performAndLog "getRewardAddresses" getRewardAddresses
6767
rewardAddr <- liftMaybe (error "can't get reward address")
6868
$ head mRewardAddress
@@ -71,7 +71,7 @@ contract = do
7171
void $ performAndLog "signData rewardAddress" $ signData rewardAddr dataBytes
7272
where
7373
msg = "hello world!"
74-
mDataBytes = rawBytesFromAscii msg
74+
mDataBytes = byteArrayFromAscii msg
7575

7676
performAndLog
7777
:: forall (a :: Type)

0 commit comments

Comments
 (0)