EOSCommunity.org Forums

Clsdk and cltester

Mike Manfredi and I recorded a video introducing clsdk with cltester. clsdk is a fork of the abieos-based eosiolib variant (from the CDT’s eosio-cdt-2.1-staging-c branch), ported to the wasi-sdk. cltester is a fork of the not-fully-released eosio-tester. cltester allows you to write test cases which rapidly create transient chains to test your contracts. It gives you full control over timing (which transaction happens in which block), helping you to make repeatable tests, and helping you to test contracts with time-based rules. It also gives your test cases access to the same database apis that contracts use, simplifying test development. We use clsdk and cltester to develop the Eden contract. clsdk and cltester work with eosio 2.0.x.

Video Introduction

Example repo, including clsdk/cltester installation instructions

We’re looking for feedback to help us determine cltester’s future direction. To prevent feedback from getting accidentally lost in the various forums and TG groups, please use this feedback form . I encourage discussion here and in the EOSIO Developers telegram group.

18 Likes

Amazing work Fellas!

I know you all have been working hard on this for a bit and deserve funding from more than just one source. Excited to see who is wise enough to the future to invest first. :wink:

Keep up the great work everyone, a real dream team here.

EdenOS is on track to cleaning the floor with innovation.

3 Likes

Great work. Keep it up. Go eos

clsdk now supports ABI generation. See the updated example.

Debugging support in clsdk is now released.

New features:

  • Errors which stop the tester now include a backtrace
  • Support for debugging both tests and contracts in cltester using:
    • gdb
    • vscode’s gdb integration

See demo-sdk for usage

Want to see debugging in action, but don’t want to install anything? Try the demo container. vscode runs in a browser, stepping through contract code.

docker run -it -p 8080:8080 ghcr.io/eoscommunity/demo-clsdk

Open http://localhost:8080/

1 Like