learn v0
1.0.0
Esta es una plataforma para aprender AO, consiste en una serie de ejercicios interactivos para ayudarlo a aprender AO.
Para agregar más ejercicios, debe crear un nuevo archivo en la carpeta src/data con el nombre de archivo <number>.<name>.ts
El archivo TS debe contener un objeto de exportación predeterminado de tipo TExerciseData
y su ruta de punto final debe agregarse al objeto en data/index.ts
export interface TExerciseData {
route : string ;
nextRoute : string ;
prevRoute : string ;
title : string ;
content : string ;
defaultCode : string ;
expectedResult : string | TExpectedResult ;
runLua ?: boolean ;
allowNext ?: boolean ;
fromId ?: "SELF" | string ;
validateTimestamp ?: boolean ;
}| Campo | Descripción | Tipo | Requerido | Valores de ejemplo |
|---|---|---|---|---|
| Prevroute | punto final para el ejercicio anterior (el valor debe existir en el archivo data/index.ts) | cadena | verdadero | "Medilla de 10 conectores" |
| ruta | punto final para el ejercicio actual (el valor debe existir en el archivo data/index.ts) | cadena | verdadero | "Medera de 20 creaciones" |
| nextrou | punto final para el siguiente ejercicio (el valor debe existir en el archivo data/index.ts) | cadena | verdadero | "30-Create-Asset" |
| título | título del ejercicio | cadena | verdadero | "Crea una billetera" |
| contenido | Descripción compatible con Markdown del ejercicio | cadena | verdadero | "# Markdown" |
| código predeterminado | Código de horario predeterminado para el ejercicio | cadena | verdadero | "Imprimir ('Hola mundo')" |
| esperado resumen* | Resultado esperado del ejercicio (ya sea una cadena o un objeto) | cadena o tespectedResult | verdadero | "Hello World" o { run:"print('Hello World')", "Hello World" } o {run:"Inbox[#Inbox].Data"} |
| runlua | booleano para decidir si verifica la salida ejecutando algún código LUA (siempre debe ser cierto si la esperanza es de tipo tespectedResult) | booleano | FALSO | verdadero |
| texto Allow | booleano que permite pasar al siguiente ejercicio por defecto | booleano | FALSO | verdadero |
| chirrido | En caso de que estemos revisando si hemos recibido un mensaje de bandeja de entrada de un proceso particular (yo si lo enviamos a AO.ID) | "Self" o cadena | FALSO | "" o "yo" |
| ValidateTimestamp | Para verificar si se recibió un mensaje de bandeja de entrada después de ejecutar el código de ejercicio (compara las marcas de tiempo) | booleano | FALSO | verdadero |
*EsperadoResult puede ser una cadena o un objeto
type TExpectedResult =
| string
| {
run : string ;
out ?: string ;
} ;| Campo | Descripción | Tipo | Requerido | Valores de ejemplo |
|---|---|---|---|---|
| correr | El código Lua se ejecutará para obtener el resultado esperado | cadena | verdadero | "Imprima ('¡Hola mundo!')" |
| afuera | Si se declara, verificará si la salida del campo Ejecutar es igual a este valor, de lo contrario, comparará la salida LUA con la salida del código que el usuario ha escrito en el ejercicio | cadena | opcional | "¡Hola Mundo!" |
Después de crear un objeto, debe agregarlo al archivo data/index.ts
import { TExerciseData } from "@/types" ;
export default {
prevRoute :... ,
route :... ,
nextRoute :... ,
.
.
.
} as TExerciseData ; import { TExerciseData } from "@/types" ;
export default {
"10-connect-wallet" : require ( "@/data/10.connect-wallet" ) . default ,
"20-spawn-process" : require ( "@/data/20.spawn-process" ) . default ,
"30-hello-ao" : require ( "@/data/30.hello-ao" ) . default ,
.
.
.
"<your-route>" : require ( "@/data/<your-exercise-file" ) . default ,
} as { [ foo : string ] : TExerciseData } ;Notas importantes: