What are the key milestones you need to achieve in order to complete your project successfully?
First, familiarize myself with the VSCode debugger API. Investigate if VSCode supports backstepping.
Design and implement a VSCode widget that allows running any Helios entry point script in the current VSCode workspace. The user will be able to enter either JSON or CBOR-hex argument data into input fields.
The result of an evaluation will be printed in the debugger console.
The Helios scripts will be compiled JIT, and the resulting UPLC will be cached in a user-specific location.
Acceptance criteria:
A video showing the ability to launch any entry point script from within VSCode, and then display the UPLC result.
>Import the UPLC CEK machine into VSCode dynamically and allow VSCode to hook into it using callbacks upon starting a UPLC evaluation. The plugin will be able to access the code-map sites through these callbacks.
These code-map sites will then be used to detect when breakpoints are hit and display progress when stepping through an evaluation.
Acceptance criteria:
A video showing the ability to launch an entry point script and stop at a breakpoint set in any of the Helios scripts that formed part of the compilation input for a given entry point. Subsequently, show the ability to step manually to the end.
>Display live stack/scope info in the relevant VSCode widgets. Be able to interact with the variables in the debugger console.
Acceptance criteria:
Be able to do everything that is currently possible in the Helios playground. Then deprecate the Helios playground and replace it with a preconfigured version of VSCode-web.
>Create a cloud service that stores the details of failed transactions in an AWS DynamoDB table. Implement an AWS Lambda function (behind AWS APIGateway) to allow polling the failed transactions table. Implement another AWS Lambda function that pushes failed transactions into the table.
Allow creating authentication tokens via the HyperionBT or Helios (WiP) website, using the wallet Cip-30 connector to authenticate the users initially. These authentication tokens will then be stored in another DynamoDB table.
Modify the Helios CLI to connect the JS contract bundle to this service. Modify the VSCode plugin to auto-detect Helios debugging service authentication tokens, and then poll frequently for failed transactions which are then used to auto-populate the debug launch widget.
Acceptance criteria:
A public video demo of the complete debugging process with a contract running in production.