Let’s talk about the motivation for writing such a client and then the details.
Solana is an awesome Rust blockchain. The top Solana priority is performance. However, the trade-off for the speed and universality of the Solana API is a pretty low-level smart contract (aka Solana program) API. Fortunately, there is the Anchor framework. It’s an opinionated framework designed to mitigate many issues caused by error-prone Solana API and reduce the developer’s cognitive load and the number of non-business decisions needed (e.g., choosing the most suitable account data encoding).
As a result, many Solana projects based on Anchor are growing, and we – the auditors – have to adapt to this trend. And since we want to be as efficient as possible to find all security issues and save our clients time and money, we need the best tooling for the job. But the Solana ecosystem, especially the Anchor one, is super new, and the necessary tools haven’t been developed yet.
We decided to change that, and the first step is to write the Rust testing client.
What can trdelnik help us with?
The Rust testing client for Anchor will do all these things automatically for you. You can think of it as a Brownie for Solana (for those familiar with Ethereum tooling). It will consist of a CLI tool and a library with test helpers and APIs for connecting various plugins. A fuzzer will be one of the plugins.
PS: You might ask – why Trdelnik? Well, since we plan to write Brownie for Solana, we were looking for a similar name. Ackee Blockchain comes from Prague, where the typical sweet that everyone sells to tourists on the street is called Trdelnik. So we decided to adopt it, haha.