learn v0
1.0.0
Это платформа для изучения AO, она состоит из серии интерактивных упражнений, которые помогут вам изучить AO.
Чтобы добавить больше упражнений, вам необходимо создать новый файл в папке src/data с именем файла <number>.<name>.ts
Файл TS должен содержать объект экспорта по умолчанию типа TExerciseData
и его маршрут конечной точки должен быть добавлен в объект в 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 ;
}| Поле | Описание | Тип | Необходимый | Пример значений |
|---|---|---|---|---|
| Prevroute | Конечная точка для предыдущего упражнения (значение должно существовать в файле Data/Index.ts) | нить | истинный | "10-Connect-Wallet" |
| маршрут | Конечная точка для текущего упражнения (значение должно существовать в файле данных/index.ts) | нить | истинный | "20-Create-Wallet" |
| Nextroute | Конечная точка для следующего упражнения (значение должно существовать в файле данных/index.ts) | нить | истинный | "30-Create-Asset" |
| заголовок | Название упражнения | нить | истинный | "Создать кошелек" |
| содержание | Маркдаун поддерживает описание упражнения | нить | истинный | "# Marckdown" |
| DefaultCode | код шаблона по умолчанию для упражнения | нить | истинный | "Печать (" Привет, мир ")" |
| waredresult* | Ожидаемый результат упражнения (либо строка, либо объект) | Строка или TexpectedResult | истинный | "Привет, мир" или { run:"print('Hello World')", "Hello World" } или {run:"Inbox[#Inbox].Data"} |
| Runlua | Boolean определить, проведет ли «Вывод», запустив какой -то код LUA (всегда должен быть правдой, если ожидается, что TexpectedResult) | логический | ЛОЖЬ | истинный |
| allownext | логический, который по умолчанию позволяет перейти к следующему упражнению | логический | ЛОЖЬ | истинный |
| из | В случае, если мы проверяем, получили ли мы сообщение в почти от конкретного процесса (я, если мы отправим его в AO.ID) | «Я» или строка | ЛОЖЬ | "или" я " |
| ValidateTimeStamp | Чтобы проверить, было ли получено сообщение в почте после запуска кода упражнения (сравнивает временные метки) | логический | ЛОЖЬ | истинный |
*wederSult может быть строкой или объектом
type TExpectedResult =
| string
| {
run : string ;
out ?: string ;
} ;| Поле | Описание | Тип | Необходимый | Пример значений |
|---|---|---|---|---|
| бегать | Код LUA для запуска, чтобы получить ожидаемый результат | нить | истинный | "Печать (" Привет, мир! ') " |
| вне | Если объявлено, проверьте, будет ли вывод поля Run равен этому значению, иначе сравнит выход LUA с выводом кода, который пользователь написал в упражнении | нить | необязательный | "Привет, мир!" |
После создания объекта вам необходимо добавить его в файл 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 } ;Важные примечания: