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 | نقطة النهاية للتمرين السابق (يجب أن توجد القيمة في ملف البيانات/الفهرس) | خيط | حقيقي | "10-Connect-Wallet" |
| طريق | نقطة النهاية للتمرين الحالي (يجب أن تكون القيمة في ملف البيانات/الفهرس) | خيط | حقيقي | "20 محفوظات" |
| Nextroute | نقطة النهاية للتمرين التالي (يجب أن تكون القيمة في ملف البيانات/index.ts) | خيط | حقيقي | "30-ASSET" |
| عنوان | عنوان التمرين | خيط | حقيقي | "إنشاء محفظة" |
| محتوى | وصف تدعم التخفيض للتمرين | خيط | حقيقي | "# Markdown" |
| DefaultCode | رمز Boilerplate الافتراضي للتمرين | خيط | حقيقي | "طباعة ('Hello World')" |
| المتوقع* | النتيجة المتوقعة للتمرين (إما سلسلة أو كائن) | سلسلة أو texpectedResult | حقيقي | "Hello World" أو { run:"print('Hello World')", "Hello World" } أو {run:"Inbox[#Inbox].Data"} |
| Runlua | Boolean أن تقرر Wether للتحقق من الإخراج عن طريق تشغيل بعض كود Lua (يجب أن يكون دائمًا صحيحًا إذا كان متوقعًا من النوع TexpiredResult) | منطقية | خطأ شنيع | حقيقي |
| allownext | منطقية تسمح بالانتقال إلى التمرين التالي افتراضيًا | منطقية | خطأ شنيع | حقيقي |
| Fromid | في حال نتحقق مما إذا كنا قد تلقينا رسالة صندوق الوارد من عملية معينة (إذا كنا نرسلها إلى AO.ID) | "الذات" أو السلسلة | خطأ شنيع | "" أو "الذات" |
| ValyAteMestamp | للتحقق مما إذا تم استلام رسالة صندوق الوارد بعد تشغيل رمز التمرين (يقارن الطوابع الزمنية) | منطقية | خطأ شنيع | حقيقي |
*يمكن أن يكون متوقع أن يكون سلسلة أو كائن
type TExpectedResult =
| string
| {
run : string ;
out ?: string ;
} ;| مجال | وصف | يكتب | مطلوب | مثال القيم |
|---|---|---|---|---|
| يجري | رمز لوا للتشغيل للحصول على النتيجة المتوقعة | خيط | حقيقي | "طباعة ('hello world!') |
| خارج | إذا تم الإعلان عنها ، فسيتحقق مما إذا كان إخراج حقل التشغيل مساوياً لهذه القيمة ، فسيقارن إخراج 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 } ;ملاحظات مهمة: