Introducción a los contratos inteligentes de Bitcoin (3) -SCrypt Development Tools-Visual Studio Code Plugin

El artículo anterior introdujo principalmente algunos conocimientos básicos del lenguaje de alto nivel sCypt para los contratos inteligentes de Bitcoin. Algunos estudiantes pueden haber estado ansiosos por probar. Como dice el refrán, un trabajador debe primero afilar sus herramientas si quiere hacer bien su trabajo. Antes de que comience el verdadero trabajo de codificación, todavía es necesario dedicar algo de tiempo a aprender a utilizar las herramientas adecuadas.

Creo que muchos desarrolladores y amigos están utilizando Visusal Studio Code, un IDE de Microsoft. Su excelente rendimiento y su mecanismo de complemento flexible brindan una experiencia de programación muy sedosa. Para ayudarlo a escribir contratos inteligentes de Bitcoin de manera más fácil y eficiente, sCrypt proporciona una aplicación de herramientas práctica y rica en funciones : el complemento sCrypt Visual Studio Code . Puede buscar directamente "sCrypt" en la vista Extensiones de VS Code para instalarlo, o puede descargar el paquete de instalación independiente aquí .

Descarga del complemento

A continuación, presentaré las funciones y el uso de este complemento de acuerdo con los tres escenarios típicos en el proceso de desarrollo (codificación -> depuración -> prueba).

codificación

Las principales funciones involucradas en la fase de codificación incluyen:

  • Resaltado de sintaxis : resalte automáticamente palabras clave, nombres de funciones y tipos de datos;
  • Ir a la definición : haga clic con el botón derecho en una función o variable en el área de edición del documento y seleccione "Ir a la definición" en el menú emergente para saltar el cursor a la función o la definición de la variable;
  • Buscar referencias de variables : haga clic con el botón derecho en una función o variable en el área de edición del documento y seleccione "Ir a referencias" en el menú emergente para mostrar todas las referencias;
  • Cambiar nombre : haga clic con el botón derecho en la función o variable en el área de edición del documento y seleccione "Cambiar nombre de símbolo" en el menú emergente para cambiarle el nombre;
  • Indicación flotante : muestra la definición de la variable o función donde se encuentra el mouse;
  • Salida del resultado de la compilación : haga clic con el botón derecho en el área de edición del documento y seleccione "Compilar en Bitcoin Script" en el menú emergente para enviar el resultado de la compilación a un archivo;
  • Indicación automática : en el proceso de edición del código, las indicaciones para posibles funciones o nombres de variables se dan automáticamente de acuerdo con la información ingresada actualmente;

Aviso automático

  • Ayuda de firma de función : en el proceso de edición de código, se dan automáticamente solicitudes de firma de función de acuerdo con la información ingresada actualmente;

Ayuda de firma

  • Formato de código : haga clic con el botón derecho en el área de edición del documento y seleccione "Dar formato a documento" en el menú emergente para formatear el archivo;

Formato de código

  • Comprobación automática de errores : durante el proceso de edición del código, la información del error de compilación se mostrará en la ventana "Problemas" automáticamente en tiempo real;

Comprobación de errores

depuración

La función de depuración puede ayudar a los desarrolladores a localizar y resolver rápidamente errores en el código. Antes de comenzar a depurar, debe .vscode/launch.jsonagregar algo como las siguientes configuraciones:

{
            "type": "scrypt",
            "request": "launch",
            "name": "Debug sCrypt",
            "program": "${workspaceFolder}/contracts/xxx.scrypt",
            "constructorParams": "123456",
            "entryMethod": "unlock",
            "entryMethodParams": "123, 456",
            "txContext": {
                "hex": "01000000015884e5db9de218238671572340b207ee85b628074e7e467096c267266baf77a40000000000ffffffff0000000000",
                "inputIndex": 0,
                "inputSatoshis": 100000
            }
        }

Durante el proceso de depuración, las funciones disponibles incluyen:

  • Establecer / cancelar punto de interrupción ;
  • Depuración / ejecución de un solo paso ;
  • Entrar / salir de la función objetivo ;
  • Ver valor de variable ;
  • Ver la pila de llamadas ;
  • Agregar / eliminar expresión de observación o valor de variable ;
  • Admite REPL 1 (es decir, permite la entrada y ejecución de la instrucción sCrypt en "DEBUG CONSOLE", como se muestra a continuación);

REPL

prueba

sCrypt proporciona un paquete npm denominado scrypttest2 para ayudar a los desarrolladores a realizar pruebas de contrato. Puede usar Javascript o TypeScript para escribir pruebas unitarias, y puede ejecutar un solo archivo de prueba haciendo clic derecho en el editor y seleccionando "Ejecutar prueba sCrypt". Por supuesto, también puede ejecutar mediante la línea de comandos un npm testorden de ejecución de caso de prueba similar .

Nota : Si desea ejecutar el archivo de prueba haciendo clic con el botón derecho en el editor, debe cumplir con dos requisitos previos:

  1. La extensión del archivo solo puede ser .scrypttest.jso .scrypttest.ts;
  2. En package.json, el directorio de prueba debe tener un single-testscript con nombre que especifique el comando de prueba operativo específico. P.ej:
  "scripts": {
    "single-test": "mocha -r ts-node/register --timeout 120000"
  },

Lo anterior es una breve introducción al complemento sCrypt Visual Studio Code . En el próximo artículo, entraremos en la fase práctica y completaremos todo el proceso de un contrato simple desde el desarrollo hasta la implementación.

apéndice


  1. REPL (bucle de lectura-evaluación-impresión): intérprete interactivo, conveniente para depurar, probar o experimentar algunos códigos; ↩︎

  2. scrypttest : kit de herramientas de prueba sCrypt, encapsula algunas funciones de la herramienta necesarias para admitir escenarios de prueba unitaria JS y TS; ↩︎

Supongo que te gusta

Origin blog.csdn.net/freedomhero/article/details/107127341
Recomendado
Clasificación