It means type application.
In this case, the function is polymorphic with the following type:
logInfo :: forall a effs. Member (LogMsg a) effs => a -> Eff effs ()
by using TypeApplications extension, you can use @SomeType hint for the compiler, so the logInfo call is not ambiguous.
logInfo @String "Hello world" means apply type String to ...
It may help to use IOHK's binary caches.
You can set these up globally for your system by adding/creating these lines in /etc/nix/nix.conf:
substituters = https://hydra.iohk.io https://iohk.cachix.org https://cache.nixos.org/
trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= iohk.cachix.org-1:DpRUyj7h7V830dp/i6Nti+NEO2/...
All the techniques you have learned for development on the Playground (or using the EmulatorTrace-monad) will still be valuable and relevant for Goguen.
The only difference is that with Goguen, you will additionally write a UI for your contract(s).
But you still need to write on- and off-chain contracts and test them on the Playground or in the EmulatorTrace-...
You can run the Playground locally in Week 3 if you checkout the Plutus branch referenced in the Week03 cabal.project. See the tag option below.
I believe your issue is stemming from the fact that the plutus team is updating the plutus library relatively quickly, and since the code written in the plutus-pioneer-program is now a month or two old, it is outdated and will only compile on the older version of the plutus playground.
I suggest you keep using the publicly hosted playground and then ...
Although there may have been changes, this remains a valid question.
The code shown in the question is the boilerplate code that accompanies a validator implementation for on-chain execution. A simple validator implementation can be seen below. It is the recent 42 redeemer validator code of Pioneer (before switch from Data to BuildinData).
-- This is the ...
There are now test capabilities in the Plutus.Contract.Test module which uses the Tasty library.
This is explained more fully in the unit tests section of lecture 8 of iteration 1 of the Plutus Pioneer Program.
checkPredicate :: String -> TracePredicate -> EmulatorTrace () -> TestTree
There are a number of functions for producing a ...
WSL is a hack for running Linux programs. Plutus Playground is very stable once it is installed on a stable platform. I had hosted a playground without any issue for more than a month that too without restart. It is highly recommended that Ubuntu or other Linux OS be used as a base platform than Windows.
If I recall correctly there is some problem/bug in the playground, such that when a wallet/transaction fails, no more transactions from that wallet is accepted.
But as you noted when first bid is accepted, the next bid from wallet2 also works.
Okay. I think you are asking a couple different questions:
Is there any keyword to get the epoch details or stake-pool details in Plutus Smart Contract?
It really depends on what information you need. There are ways for a script to validate certain information about an epoch, e.g. check that the current slot is within a defined epoch.
For example, to check ...
I found a resolution to the problem.
In sheer frustration, I spun up a Windows Hyper-Visor VM and started provisioning it from scratch with WSL2, Nix, etc, and nothing else. After cloning the plutus repository, I got a strange git error (https://github.com/docker/for-win/issues/6284). The resolution was to move the git repository from the windows-hosted ...