learn v0
1.0.0
Dies ist eine Plattform zum Lernen von AO, sie besteht aus einer Reihe interaktiver Übungen, die Ihnen helfen, AO zu lernen.
Um weitere Übungen hinzuzufügen, müssen Sie eine neue Datei im src/data mit dem Dateinamen <number>.<name>.ts erstellen
Die TS -Datei sollte ein Standard -Exportobjekt vom Typ TExerciseData enthalten
und seine Endpunktroute muss dem Objekt in data/index.ts hinzugefügt werden
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 ;
}| Feld | Beschreibung | Typ | Erforderlich | Beispielwerte |
|---|---|---|---|---|
| Prävroute | Endpunkt für die vorherige Übung (der Wert muss in der Datei data/index.ts vorhanden sein) | Saite | WAHR | "10-Connect-Wallet" |
| Route | Endpunkt für die aktuelle Übung (der Wert muss in der Datei data/index.ts vorhanden sein) | Saite | WAHR | "20-create-wallet" |
| NexTroute | Endpunkt für die nächste Übung (der Wert muss in der Datei data/index.ts vorhanden sein) | Saite | WAHR | "30-create-asset" |
| Titel | Titel der Übung | Saite | WAHR | "Erstellen Sie eine Brieftasche" |
| Inhalt | Markdown unterstützte Beschreibung der Übung | Saite | WAHR | "# Markdown" |
| StandardCode | Standard -Boilerplate -Code für die Übung | Saite | WAHR | "Print ('Hallo Welt')" |
| erwartungsgemäß* | Erwartete Ergebnisse der Übung (entweder eine Zeichenfolge oder ein Objekt) | String oder TexworedResult | WAHR | "Hallo Welt" oder { run:"print('Hello World')", "Hello World" } oder {run:"Inbox[#Inbox].Data"} |
| Runlua | Boolean, um sich zu entscheiden, um die Ausgabe zu überprüfen, indem Sie einen LUA -Code ausführen (muss immer wahr sein, wenn erwartungsgemäße type texworedResult ist) | boolean | FALSCH | WAHR |
| lagownext | boolean, mit dem standardmäßig die nächste Übung übergehen kann | boolean | FALSCH | WAHR |
| von id | Falls wir überprüfen, ob wir eine Posteingangsnachricht von einem bestimmten Prozess erhalten haben (Selbst wenn wir sie an ao.id senden) | "Selbst" oder Zeichenfolge | FALSCH | "oder" Selbst " |
| validatetimestamp | Um zu überprüfen, ob eine Posteingangsnachricht nach dem Ausführen des Trainingscode empfangen wurde (vergleicht die Zeitstempel) | boolean | FALSCH | WAHR |
*erwartungsgemäß kann eine Zeichenfolge oder ein Objekt sein
type TExpectedResult =
| string
| {
run : string ;
out ?: string ;
} ;| Feld | Beschreibung | Typ | Erforderlich | Beispielwerte |
|---|---|---|---|---|
| laufen | Lua -Code zum Ausführen, um das erwartete Ergebnis zu erzielen | Saite | WAHR | "Print ('Hallo Welt!')" |
| aus | Wenn deklariert wird, prüft, ob die Ausgabe des Lauffelds gleich diesem Wert ist, sonst vergleichen die LUA -Ausgabe mit der Ausgabe des Code, den der Benutzer in der Übung geschrieben hat | Saite | optional | "Hallo Welt!" |
Nachdem Sie data/index.ts Objekt erstellt haben
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 } ;Wichtige Anmerkungen: