learn v0
1.0.0
Esta é uma plataforma para aprender AO, consiste em uma série de exercícios interativos para ajudá -lo a aprender AO.
Para adicionar mais exercícios, você precisa criar um novo arquivo na pasta src/data com o nome do arquivo <number>.<name>.ts
O arquivo TS deve conter um objeto de exportação padrão do tipo TExerciseData
e sua rota de endpoint deve ser adicionada ao objeto em 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 | Descrição | Tipo | Obrigatório | Valores de exemplo |
|---|---|---|---|---|
| PrevRoute | terminal para o exercício anterior (o valor deve existir no arquivo Data/Index.ts) | corda | verdadeiro | "Wallet de 10 conexões" |
| rota | terminal para o exercício atual (o valor deve existir no arquivo Data/Index.ts) | corda | verdadeiro | "Wallet de 20 criates" |
| Nextroute | endpoint para o próximo exercício (o valor deve existir no arquivo dados/index.ts) | corda | verdadeiro | "30-Create-atire" |
| título | título do exercício | corda | verdadeiro | "Crie uma carteira" |
| contente | Descrição suportada por desanimação do exercício | corda | verdadeiro | "# Markdown" |
| defaultCode | Código de caldeira padrão para o exercício | corda | verdadeiro | "Print ('Hello World')" |
| esperadoResult* | resultado esperado do exercício (uma corda ou um objeto) | string ou texpetedResult | verdadeiro | "Hello World" ou { run:"print('Hello World')", "Hello World" } ou {run:"Inbox[#Inbox].Data"} |
| runlua | Boolean para decidir Wether para verificar a saída executando algum código Lua (deve sempre ser verdadeiro se o esperado resultação for do tipo texpetedResult) | booleano | falso | verdadeiro |
| AllOwnExt | booleano que permite mudar para o próximo exercício por padrão | booleano | falso | verdadeiro |
| deid | Caso estejamos verificando se recebemos uma mensagem de entrada de um processo específico (se estiver enviando para ao.id) | "Self" ou string | falso | "" ou "eu" |
| validateTeTimestamp | Para verificar se uma mensagem da caixa de entrada foi recebida após a execução do código de exercício (compara os registros de data e hora) | booleano | falso | verdadeiro |
*esperado o SULT pode ser uma string ou um objeto
type TExpectedResult =
| string
| {
run : string ;
out ?: string ;
} ;| Campo | Descrição | Tipo | Obrigatório | Valores de exemplo |
|---|---|---|---|---|
| correr | Código Lua para executar para obter o resultado esperado | corda | verdadeiro | "Print ('Hello World!')" |
| fora | Se declarado, verificará se a saída do campo de execução é igual a esse valor, senão comparará a saída Lua com a saída do código que o usuário escreveu no exercício | corda | opcional | "Olá mundo!" |
Depois de criar um objeto, você precisa adicioná -lo ao arquivo 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: