learn v0
1.0.0
Il s'agit d'une plate-forme pour apprendre AO, il se compose d'une série d'exercices interactifs pour vous aider à apprendre AO.
Pour ajouter plus d'exercices, vous devez créer un nouveau fichier dans le dossier src/data avec le nom de fichier <number>.<name>.ts
Le fichier TS doit contenir un objet d'exportation par défaut de type TExerciseData
et son itinéraire de point final doit être ajouté à l'objet dans 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 ;
}| Champ | Description | Taper | Requis | Exemples de valeurs |
|---|---|---|---|---|
| prevRoute | Point de terminaison pour l'exercice précédent (la valeur doit exister dans le fichier data / index.ts) | chaîne | vrai | "Wallet à 10 connexions" |
| itinéraire | Point de terminaison pour l'exercice actuel (la valeur doit exister dans le fichier data / index.ts) | chaîne | vrai | "Wallet de 20 créations" |
| nextroute | Point de terminaison pour l'exercice suivant (la valeur doit exister dans le fichier data / index.ts) | chaîne | vrai | "30-création-actif" |
| titre | titre de l'exercice | chaîne | vrai | "Créer un portefeuille" |
| contenu | Markdown a soutenu la description de l'exercice | chaîne | vrai | "# Markdown" |
| code par défaut | Code de passe-partout par défaut pour l'exercice | chaîne | vrai | "Print ('Hello World')" |
| Result attendu * | Résultat attendu de l'exercice (soit une chaîne ou un objet) | String ou TexpectedResult | vrai | "Hello World" ou { run:"print('Hello World')", "Hello World" } ou {run:"Inbox[#Inbox].Data"} |
| runlua | booléen pour décider de vérifier la sortie en exécutant un code LUA (doit toujours être vrai si le résult | booléen | FAUX | vrai |
| allowNext | booléen qui permet de passer à l'exercice suivant par défaut | booléen | FAUX | vrai |
| fromid | Dans le cas où nous vérifions si nous avons reçu un message de boîte de réception d'un processus particulier (moi si nous l'envoyons à ao.id) | "Self" ou String | FAUX | "" ou "soi" |
| validatetimestamp | Pour vérifier si un message de boîte de réception a été reçu après l'exécution du code d'exercice (compare les horodatages) | booléen | FAUX | vrai |
* Result attendu peut être une chaîne ou un objet
type TExpectedResult =
| string
| {
run : string ;
out ?: string ;
} ;| Champ | Description | Taper | Requis | Exemples de valeurs |
|---|---|---|---|---|
| courir | Code Lua à exécuter pour obtenir le résultat attendu | chaîne | vrai | "Print ('Hello World!')" |
| dehors | S'il est déclaré, vérifiera si la sortie du champ d'exécution est égale à cette valeur, sinon comparer la sortie LUA avec la sortie du code que l'utilisateur a écrit dans l'exercice | chaîne | facultatif | "Bonjour le monde!" |
Après avoir créé un objet, vous devez l'ajouter au fichier 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 } ;Remarques importantes: