Ok so easy question first:
The linked examples (rps, tic tac toe) conform to a legacy ForceMoveApp interface.
What exactly is the difference?
The difference is in the function signature for
validSignature. If you look at the Tic Tac Toe example, it accepts
(bytes _old, bytes _new) . We don’t use this anymore (instead you should have
( VariablePart memory a, VariablePart memory b, uint256 turnNumB, uint256 nParticipants )
I just realised that we actually migrated the Rock Paper Scissors contract so that does in fact conform to the latest interface. I will update the docs.
As for your other questions, I’ll try and clear a few things up. The
wallet package was deleted from our monorepo – it was deprecated in favour of the
xstate-wallet package. The parts of this package that can run in the browser and on the server are being factored out into
wallet-core – but it’s early days in that process. All of this code is targeting the full-fat, nitro mindset.
To help you figure out where to start, it would be useful to know a bit more about what your aims are? For example, if by “focused on nitro based usecases” you mean that you’d like to build a Dapp that runs on nitro, the fastest way to achieve that is to install the
xstate-wallet in an iframe on your page. I am planning on pushing out the relevant documentation on that in the coming days/weeks (we will aim to make it as easy as possible, using the channel-client and channel-provider packages you may have spotted).