o1-labs / o1js

TypeScript framework for zk-SNARKs and zkApps
https://docs.minaprotocol.com/en/zkapps/how-to-write-a-zkapp
Apache License 2.0
531 stars 121 forks source link

Advanced smart contract testing framework #1677

Open Trivo25 opened 5 months ago

Trivo25 commented 5 months ago

our current "testing framework" for smart contracts is very simple, we should provide an advanced framework that tests smart contracts á la quick check or fuzzing. I think we already have a good chunk of whats needed to expose this to developers available internally

nicc commented 5 months ago

Testing concurrent user load would also be helpful imo

mitschabaude commented 5 months ago

Testing concurrent user load would also be helpful imo

I think we can emulate this with creating several local blockchain transactions without sending them, and them sending all of them at the same time!

mitschabaude commented 5 months ago

our current "testing framework" for smart contracts is very simple, we should provide an advanced framework that tests smart contracts á la quick check or fuzzing.

what would already be extremely helpful is if we could more easily lay out a succession of interactions (possibly concurrent) & expected state, where boilerplate stuff like creating a zkapp keypair, deploying the zkapp etc is abstracted away

mitschabaude commented 5 months ago

for quickcheck like testing, I think there are three things to add: