

Now equipped with a “software” version of our device that can be piloted by an API, we were ready to start working on the bot. To do this, we rely on a technology developed at Ledger and released in 2019: Speculos. One of our main bottleneck is obviously the use of real, physical devices to go through all the different flows and transactions.
LEDGER LIVE COINS HOW TO
How to automate device testing with Speculos, the Ledger hardware wallet emulator Automated: I can run on Github Actions (runners) and comment on the Pull Requests and Commits.Completeness: I can technically do anything a user can do in Ledger Live with their account (send, but also any feature from Leger Live like delegations, freeze, staking…), but I do it faster 🤖.Realistic: I am very close to the flow used by Ledger Live users and what they do with their device.coinapps: a folder containing the apps needed by Speculos (closed source).

Speculos: the Ledger devices emulator (open source).live-common: the library behind Ledger Live logic (deriving accounts, transaction logic…) (open source).End to End: I rely on the complete “Ledger stack”.Data Driven: My engine is simple and I do actions based on data specs that drive my capabilities.Generative: I send funds to sibling accounts to create new accounts and rotate funds.Autonomous: I simply restore my accounts using the seeds and continue from here.Configless: I only need a seed and a coinapps folder.When we built the bot, we set a few principles that would help us make it into the tool we needed. => INSERT SCREENSHOT ON A COMMIT TEST REPORT Philosophy The Ledger Live Bot test implicitly a lot of things with a very simple spec file. The Ledger Live Bot is a framework we build internally to allow the automation of transaction testing on all Ledger Live supported coins and features, in the most end-to-end approach possible. So, with the context and the real life conditions in mind, we decided to create the Ledger Live Bot. This means we would not be able to replay any test case or scenario.Īt some point we considered testnet blockchains, but it still might not yield the same result as a mainnet. Once an operation has been broadcasted, there is no way to come back to a previous state of the blockchain. We are talking about end-to-end testing on different blockchains. Let’s rewind a bit and have a look at the context here. That is when we decided to tackle this problem with a new approach: automate end-to-end testing for each family of coins alongside its respective features! With both increasing in number, the process was becoming longer and more tedious. Previously, our QA Team needed to test all the different features for each coin manually. We went from 3 to 9 families of supported coins, and shipped features like Secure Swap for Staking (Tezos delegation, Tron votes, Cosmos validation, Algorand staking and very recently, Polkadot) …Īs the list of new supported features and coins in Ledger Live grew, we quickly realized that our testing flow would not scale. Last year has been a great scaling period for the Ledger Live software.
